2022-10-24 00:02:00 +0200 | tog | (~tog@196.sub-75-245-142.myvzw.com) (Quit: Connection closed) |
2022-10-24 00:04:36 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds) |
2022-10-24 00:05:02 +0200 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2022-10-24 00:05:02 +0200 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) |
2022-10-24 00:08:17 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-10-24 00:09:12 +0200 | mastarija | (~mastarija@2a05:4f46:e03:6000:1c72:188f:b3b3:3a5b) (Quit: Leaving) |
2022-10-24 00:09:26 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-10-24 00:10:05 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-210.elisa-laajakaista.fi) |
2022-10-24 00:12:47 +0200 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
2022-10-24 00:13:53 +0200 | acidjnk | (~acidjnk@p200300d6e7137a39185a556c4ffa1a9f.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2022-10-24 00:15:12 +0200 | birdgoose | (~birdgoose@151.210.175.160) (Quit: Iridium IRC Client) |
2022-10-24 00:15:21 +0200 | birdgoose | (~birdgoose@151.210.175.160) |
2022-10-24 00:19:19 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-10-24 00:23:17 +0200 | axeman | (~quassel@2a02:8109:a380:78:55ee:b3a8:1110:20bb) (Ping timeout: 272 seconds) |
2022-10-24 00:26:29 +0200 | axeman | (~quassel@2a02:8109:a380:78:75a8:c262:9acb:200a) |
2022-10-24 00:27:27 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2022-10-24 00:28:45 +0200 | Guest51 | (~Guest51@50.47.90.28) |
2022-10-24 00:29:44 +0200 | birdgoose | (~birdgoose@151.210.175.160) (Quit: Iridium IRC Client) |
2022-10-24 00:29:55 +0200 | birdgoose | (~birdgoose@151.210.175.160) |
2022-10-24 00:34:52 +0200 | Tuplanolla | (~Tuplanoll@91-159-68-210.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-10-24 00:38:36 +0200 | <Guest51> | I'm new to the `machines` library. `Tee` lets me write a machine that uses two input streams. What's the best way to write one that uses three or more? I assume there's a better way than just rewriting `tee` to use `data T3 = C1 | C2 | C3` but idk what it would be |
2022-10-24 00:38:42 +0200 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
2022-10-24 00:40:28 +0200 | <dsal> | I was going to ask if one of the things could be a Tee, but missed my chance. |
2022-10-24 00:41:48 +0200 | Guest51 | (~Guest51@50.47.90.28) |
2022-10-24 00:41:50 +0200 | <jackdk> | I would combine tees, but I know nothing of this library. If I was combining way more than three, I might make an effort to produce a balanced tree of tees instead of a big list |
2022-10-24 00:45:03 +0200 | <Guest51> | I don't think that would work in the general case. My reasoning is that, once you combine two input streams with one Tee, you can no longer choose the order in which you take values from them. (You can think of a machine as being a conduit but with the ability to read more than 1 input stream) |
2022-10-24 00:46:34 +0200 | beteigeuze1 | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) |
2022-10-24 00:47:41 +0200 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 276 seconds) |
2022-10-24 00:47:41 +0200 | beteigeuze1 | beteigeuze |
2022-10-24 00:50:03 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-10-24 00:55:57 +0200 | emanon42 | (~emanon42@103.120.19.44) (Ping timeout: 272 seconds) |
2022-10-24 00:56:02 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-24 01:01:01 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2022-10-24 01:05:59 +0200 | <dsal> | If that works for two, then why wouldn't it work if one of the two was also two? |
2022-10-24 01:07:05 +0200 | <dsal> | In any case, yeah, making a special type for N is probably a good step after 2. I don't think I'd do anything special for 3. |
2022-10-24 01:09:33 +0200 | paulpaul1076 | (~paulpaul1@95-29-5-52.broadband.corbina.ru) |
2022-10-24 01:10:11 +0200 | <paulpaul1076> | hey everyone, i started learning haskell, and when i type in an example from the book by Graham Hutton I get an error saying "non-exhaustive patterns in function" |
2022-10-24 01:10:25 +0200 | <paulpaul1076> | sum [] = 0 |
2022-10-24 01:10:30 +0200 | Topsi | (~Topsi@dyndsl-037-138-064-075.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2022-10-24 01:10:31 +0200 | <paulpaul1076> | sum (x:xs) = x + sum xs |
2022-10-24 01:10:40 +0200 | <paulpaul1076> | what is non-exhaustive about this definition? |
2022-10-24 01:10:49 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2022-10-24 01:10:54 +0200 | <c_wraith> | ghci treats each line as a separate definition |
2022-10-24 01:11:10 +0200 | <c_wraith> | The example is intended to be put in a file, not entered into ghci |
2022-10-24 01:11:17 +0200 | <paulpaul1076> | oh, i see, let me try |
2022-10-24 01:11:37 +0200 | redmp | (~redmp@mobile-166-137-178-164.mycingular.net) |
2022-10-24 01:13:02 +0200 | <hpc> | you can do multiline inputs with :{ and :}, but bleh |
2022-10-24 01:13:04 +0200 | <paulpaul1076> | it worked thanks! i was using haskell for mac IDE's playground, it uses ghci |
2022-10-24 01:13:14 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-24 01:14:32 +0200 | <c_wraith> | yeah, ghci works a bit differently from ghc, in terms of how definitions are entered there. It's often good to use a file for definitions plus ghci for experimenting with them. |
2022-10-24 01:15:09 +0200 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:d4cb:6221:97a6:c0bc) |
2022-10-24 01:15:58 +0200 | <paulpaul1076> | https://stackoverflow.com/questions/2846050/how-to-define-a-function-in-ghci-across-multiple-lines |
2022-10-24 01:16:07 +0200 | <paulpaul1076> | seems like you can do ":set +m" |
2022-10-24 01:16:24 +0200 | <geekosaur> | yes, that's a different kind of multiline input mode |
2022-10-24 01:16:34 +0200 | <geekosaur> | it requires you to hit enter twice in most cases |
2022-10-24 01:16:53 +0200 | <c_wraith> | Or you can use :{ and :} to start end end multiline mode in ghci. Or you can use semicolons to put everything on one line. |
2022-10-24 01:16:56 +0200 | <geekosaur> | otherwise it just keeps adding to the current "definition" |
2022-10-24 01:17:22 +0200 | <c_wraith> | But I really like having a file. It makes restarting your experiments much easier |
2022-10-24 01:17:24 +0200 | <hpc> | ultimately :r is the easiest |
2022-10-24 01:17:32 +0200 | <hpc> | yeah |
2022-10-24 01:17:35 +0200 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 276 seconds) |
2022-10-24 01:18:10 +0200 | <paulpaul1076> | thanks, i will try it out as well |
2022-10-24 01:18:10 +0200 | <geekosaur> | also if you enter stuff at the prompt the only way to go back and collect it later is to dig it out of the history file |
2022-10-24 01:18:24 +0200 | <paulpaul1076> | how do you guys code in haskell, do you use text editors or some ide? |
2022-10-24 01:18:28 +0200 | <geekosaur> | can't save source, can't save current workspace, etc. |
2022-10-24 01:19:01 +0200 | <geekosaur> | I switch between emacs (with haskell-mode but no IDE support) and vscode (with IDE support) |
2022-10-24 01:19:04 +0200 | <hpc> | all vim all the time |
2022-10-24 01:19:35 +0200 | <hpc> | no plugins or anything |
2022-10-24 01:19:55 +0200 | <paulpaul1076> | and you use haskell professionally? I use scala, but i find myself writing non-functional code all the time, so I decided to learn a bit of haskell |
2022-10-24 01:21:26 +0200 | <c_wraith> | Many of us have at one point or another. Most probably aren't at this moment. |
2022-10-24 01:22:30 +0200 | mmhat | (~mmh@p200300f1c7307610ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1) |
2022-10-24 01:22:55 +0200 | <dsal> | I do Haskell professionally. Just emacs. |
2022-10-24 01:23:02 +0200 | <dsal> | I keep meaning to do something with vscode, but it's never stuck. |
2022-10-24 01:24:39 +0200 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
2022-10-24 01:25:14 +0200 | <hpc> | dsal: same, i never quite get to the point where more IDE-like features would help me more than just being brutally efficient at text editing |
2022-10-24 01:25:25 +0200 | <paulpaul1076> | I've always wondered why people use emacs and vim. Isn't vscode better and easier to use? (sorry, I've only been a programmer for 5 years professionally, maybe most of you have been programming for a long time and vim and emacs is what you're used to) |
2022-10-24 01:25:31 +0200 | <hpc> | (plus i write in too many other languages) |
2022-10-24 01:25:58 +0200 | <geekosaur> | I've been using vi and variants since 1982 and emacs since 1987 |
2022-10-24 01:26:03 +0200 | Guest7754 | polo |
2022-10-24 01:26:07 +0200 | <hpc> | i can't speak for emacs, but vim's command language is an entire... language |
2022-10-24 01:26:23 +0200 | <dsal> | hpc: yeah. I never really learned most of emacs. heh. But I can remember my goals |
2022-10-24 01:26:26 +0200 | <geekosaur> | emacs has its own bloody lisp dialect |
2022-10-24 01:26:57 +0200 | <dsal> | The only time I felt that I *needed* an IDE professionally was when I was doing Java and the ecosystem basically pushed requirements into tooling. |
2022-10-24 01:27:01 +0200 | <hpc> | as you learn it, the amount of stuff you can do instantly just grows and grows |
2022-10-24 01:27:36 +0200 | <dsal> | I've been using vscode for tla+ because it's a lot better at it than the tla+ tools. |
2022-10-24 01:27:42 +0200 | <geekosaur> | also vscode is, quite honestly, *slower* |
2022-10-24 01:28:30 +0200 | <hpc> | and vim/emacs are at full power without any configuration, and more likely to be pre-installed |
2022-10-24 01:28:47 +0200 | <paulpaul1076> | I recently had to search for text in a 4 gb text file, vscode wasn't able to open it, the only text editor that worked was sublime text (i didn't try vim or emacs) |
2022-10-24 01:29:11 +0200 | <dsal> | Pretty sure I just wouldn't try that in a text editor. |
2022-10-24 01:29:22 +0200 | <hpc> | at that point i would just grep it |
2022-10-24 01:29:58 +0200 | <paulpaul1076> | true, but i was asked to help a non-technical person with this text searching stuff |
2022-10-24 01:30:08 +0200 | <paulpaul1076> | who uses windows |
2022-10-24 01:31:28 +0200 | <dsal> | emacs has this cool feature where if you try to open a large file, it just says "seriously?" and then you can tell it that you want to do things that aren't good ideas. :) I use it with tens of megs. I do have some pretty good tools for that sort of thing, but I'd probably just fix the "I have a 4GB text file" thing first. :) |
2022-10-24 01:32:11 +0200 | <geekosaur> | sometimes the right tool for the job is split |
2022-10-24 01:34:12 +0200 | <olivermead[m]> | <paulpaul1076> "I recently had to search for..." <- yeh vim would have been fine, emacs would have chugged a bit |
2022-10-24 01:34:46 +0200 | <geekosaur> | (I also remember bfs from before the visual editor days. ed but read only and worked in chunks. then again, 4GB was bigger than your disk back then…) |
2022-10-24 01:35:34 +0200 | <paulpaul1076> | I see, maybe I'll learn it if I have the time, although I don't know if it'll be useful for me. The only argument I've heard for learning vim is that we have to ssh into servers nowadays and have to be able to edit files there, but I already do that with nano. |
2022-10-24 01:36:00 +0200 | <dsal> | I use emacs on my mac to edit files remotely on my other machines. |
2022-10-24 01:36:20 +0200 | <dsal> | Or emacs there. Or sometimes vi. Depends on what I'm doing. |
2022-10-24 01:37:07 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 272 seconds) |
2022-10-24 01:38:30 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3df4:aa3e:43b0:5de8) (Remote host closed the connection) |
2022-10-24 01:38:42 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-10-24 01:39:07 +0200 | redmp | (~redmp@mobile-166-137-178-164.mycingular.net) (Ping timeout: 260 seconds) |
2022-10-24 01:40:59 +0200 | danza | (~francesco@151.43.90.41) (Ping timeout: 276 seconds) |
2022-10-24 01:43:24 +0200 | <yushyin> | paulpaul1076: the text editing features of vim are useful if you don't have a decent IDE support for the language you're writing for yet or if the language doesn't benefit much from it. also there are languages i wouldn't want to write without IDE features either. |
2022-10-24 01:43:58 +0200 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2022-10-24 01:45:17 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-10-24 01:45:47 +0200 | <jle`> | nshepperd2: hey, how's it going :) saw your name show up in a blog post and was wondering if i could ask about a haskell snippet |
2022-10-24 01:46:11 +0200 | <paulpaul1076> | 👍🏻 thanks. I'll look into it, does that mean that vim supports some kind of config files that can define keywords to highlight syntax? |
2022-10-24 01:46:18 +0200 | <jle`> | in https://www.gwern.net/Problem-14#haskell is this solution correctly labeled as O(l) space? as soon as you call the nested generate we're already in O(l^2) right? |
2022-10-24 01:51:26 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
2022-10-24 01:53:17 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-10-24 01:53:34 +0200 | danza | (~francesco@151.43.239.176) |
2022-10-24 01:54:31 +0200 | Guest62 | (~Guest62@43.21.135.77.rev.sfr.net) |
2022-10-24 01:54:40 +0200 | <Guest62> | hello, i have a question |
2022-10-24 01:54:43 +0200 | frost1 | (~frost@user/frost) |
2022-10-24 01:55:18 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-10-24 01:56:00 +0200 | <Guest62> | is there a way to use a fold but to work on two consecutive elements of a list instead of one? |
2022-10-24 01:57:19 +0200 | <Guest62> | for instance, [1,2,3,4] turned into [1-0, 2-1, 3-2, 4-3] through a fold ? |
2022-10-24 01:57:53 +0200 | <jle`> | Guest62: simplest way for lists is probably to zip with its tail |
2022-10-24 01:57:55 +0200 | <jackdk> | I generally zip the list against its own tail |
2022-10-24 01:58:04 +0200 | <Guest62> | ok ty |
2022-10-24 01:58:04 +0200 | <jle`> | > let xs = [1,2,3,4] in zip xs (drop 1 xs) |
2022-10-24 01:58:06 +0200 | <lambdabot> | [(1,2),(2,3),(3,4)] |
2022-10-24 01:58:10 +0200 | <hpc> | @quote aztec.god |
2022-10-24 01:58:10 +0200 | <lambdabot> | quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers |
2022-10-24 01:58:32 +0200 | <jle`> | > let xs = [1,2,3,4] in map (\(a, b) -> b - a) (zip xs (drop 1 xs)) |
2022-10-24 01:58:33 +0200 | <lambdabot> | [1,1,1] |
2022-10-24 01:58:44 +0200 | <jle`> | or you could fold instead of map |
2022-10-24 01:59:21 +0200 | <Guest62> | great |
2022-10-24 01:59:24 +0200 | <Guest62> | ty |
2022-10-24 02:00:03 +0200 | <jle`> | np! yup it's the power of stream combinators, and it should only take O(1) space in most circumstances bc you're never allocating the actual zipped list |
2022-10-24 02:00:16 +0200 | <Guest62> | interesting |
2022-10-24 02:00:48 +0200 | <Guest62> | it must be better than my pattern matching recursion |
2022-10-24 02:01:13 +0200 | <jle`> | readability-wise, probably. but in the end it basically simplifies down to pattern matching recursion in the source code |
2022-10-24 02:01:24 +0200 | <jle`> | if we're talking performance- or space-wise |
2022-10-24 02:03:32 +0200 | <Guest62> | ok |
2022-10-24 02:03:43 +0200 | <Guest62> | tyvm |
2022-10-24 02:04:00 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 250 seconds) |
2022-10-24 02:07:14 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 02:13:29 +0200 | beteigeuze | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) (Ping timeout: 276 seconds) |
2022-10-24 02:13:46 +0200 | birdgoose | (~birdgoose@151.210.175.160) (Quit: Iridium IRC Client) |
2022-10-24 02:13:47 +0200 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-10-24 02:13:56 +0200 | birdgoose | (~birdgoose@151.210.175.160) |
2022-10-24 02:14:19 +0200 | Guest62 | (~Guest62@43.21.135.77.rev.sfr.net) (Quit: Client closed) |
2022-10-24 02:15:21 +0200 | Kaipei | (~Kaiepi@108.175.84.104) (Remote host closed the connection) |
2022-10-24 02:15:45 +0200 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-10-24 02:17:02 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2022-10-24 02:22:19 +0200 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) (Remote host closed the connection) |
2022-10-24 02:22:39 +0200 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) |
2022-10-24 02:24:44 +0200 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
2022-10-24 02:25:41 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 02:28:45 +0200 | hgolden | (~hgolden@cpe-172-251-233-141.socal.res.rr.com) |
2022-10-24 02:29:08 +0200 | birdgoose | (~birdgoose@151.210.175.160) (Ping timeout: 250 seconds) |
2022-10-24 02:31:53 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-10-24 02:31:53 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-10-24 02:31:53 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-10-24 02:33:22 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2022-10-24 02:36:51 +0200 | paulpaul1076 | (~paulpaul1@95-29-5-52.broadband.corbina.ru) (Remote host closed the connection) |
2022-10-24 02:36:53 +0200 | axeman | (~quassel@2a02:8109:a380:78:75a8:c262:9acb:200a) (Ping timeout: 276 seconds) |
2022-10-24 02:37:09 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 02:41:05 +0200 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) |
2022-10-24 02:58:59 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
2022-10-24 03:02:24 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Remote host closed the connection) |
2022-10-24 03:05:47 +0200 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) (Ping timeout: 272 seconds) |
2022-10-24 03:07:08 +0200 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) |
2022-10-24 03:08:22 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-10-24 03:10:25 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-10-24 03:13:46 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds) |
2022-10-24 03:14:11 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-10-24 03:15:31 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3df4:aa3e:43b0:5de8) |
2022-10-24 03:16:11 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 03:16:32 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-10-24 03:21:12 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2022-10-24 03:28:50 +0200 | xff0x | (~xff0x@2405:6580:b080:900:5aef:465a:6bf7:395b) (Ping timeout: 272 seconds) |
2022-10-24 03:29:32 +0200 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 276 seconds) |
2022-10-24 03:30:45 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
2022-10-24 03:36:31 +0200 | birdgoose | (~birdgoose@151.210.175.160) |
2022-10-24 03:37:17 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 03:37:28 +0200 | BananaKing69441 | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 03:37:52 +0200 | BananaKing69441 | j4cc3b |
2022-10-24 03:38:13 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 03:42:38 +0200 | jbayardo | (~jbayardo@20.83.116.49) (Remote host closed the connection) |
2022-10-24 03:43:26 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2022-10-24 03:43:57 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2022-10-24 03:48:25 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-10-24 03:54:49 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2022-10-24 03:57:07 +0200 | ski | (~ski@remote11.chalmers.se) (Remote host closed the connection) |
2022-10-24 03:58:10 +0200 | <j4cc3b> | can you create a data type that has a subset of integers? For example, something like this - data Id = 100 | ... | 999 |
2022-10-24 03:58:57 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2022-10-24 03:59:14 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-10-24 04:02:46 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-10-24 04:03:21 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 04:03:21 +0200 | <dsal> | j4cc3b: You can create a data type with a constructor that isn't exported and only allow whatever you want. |
2022-10-24 04:04:06 +0200 | <dsal> | But there's also this: |
2022-10-24 04:04:10 +0200 | <dsal> | @hoogle Data.Finite |
2022-10-24 04:04:10 +0200 | <lambdabot> | Database.PostgreSQL.Simple.Time Finite :: a -> Unbounded a |
2022-10-24 04:04:10 +0200 | <lambdabot> | Data.Universe.Class class Universe a => Finite a |
2022-10-24 04:04:10 +0200 | <lambdabot> | Data.Monoid.Inf Finite :: a -> Inf p a |
2022-10-24 04:04:22 +0200 | <dsal> | @hackage finite-typelits |
2022-10-24 04:04:22 +0200 | <lambdabot> | https://hackage.haskell.org/package/finite-typelits |
2022-10-24 04:04:22 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-10-24 04:04:40 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-10-24 04:05:12 +0200 | <j4cc3b> | Thank you so much |
2022-10-24 04:06:01 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-10-24 04:07:14 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-10-24 04:08:11 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-10-24 04:10:57 +0200 | jargon | (~jargon@184.101.208.112) |
2022-10-24 04:13:00 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-10-24 04:13:34 +0200 | td_ | (~td@83.135.9.27) (Ping timeout: 250 seconds) |
2022-10-24 04:14:03 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-10-24 04:14:44 +0200 | birdgoose | (~birdgoose@151.210.175.160) (Quit: Iridium IRC Client) |
2022-10-24 04:14:57 +0200 | birdgoose | (~birdgoose@151.210.175.160) |
2022-10-24 04:15:33 +0200 | td_ | (~td@83.135.9.20) |
2022-10-24 04:18:27 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-10-24 04:22:08 +0200 | finsternis | (~X@23.226.237.192) |
2022-10-24 04:23:10 +0200 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) |
2022-10-24 04:25:26 +0200 | redmp | (~redmp@mobile-166-137-178-099.mycingular.net) (Ping timeout: 276 seconds) |
2022-10-24 04:25:47 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-24 04:25:47 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-10-24 04:25:47 +0200 | finn_elija | FinnElija |
2022-10-24 04:25:48 +0200 | birdgoose | (~birdgoose@151.210.175.160) (Remote host closed the connection) |
2022-10-24 04:25:51 +0200 | bilegeek | (~bilegeek@2600:1008:b06e:7748:1ed2:154:a290:4ce6) (Ping timeout: 272 seconds) |
2022-10-24 04:27:47 +0200 | zaquest | (~notzaques@5.130.79.72) |
2022-10-24 04:28:37 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-10-24 04:29:39 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
2022-10-24 04:32:43 +0200 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
2022-10-24 04:38:16 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds) |
2022-10-24 04:40:32 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2022-10-24 04:47:10 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-24 04:49:23 +0200 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2022-10-24 04:50:44 +0200 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2022-10-24 04:51:42 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 250 seconds) |
2022-10-24 04:54:26 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2022-10-24 04:55:11 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-10-24 04:55:52 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Max SendQ exceeded) |
2022-10-24 04:56:33 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Remote host closed the connection) |
2022-10-24 04:56:44 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-10-24 05:00:52 +0200 | j4cc3b | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds) |
2022-10-24 05:01:14 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 250 seconds) |
2022-10-24 05:02:22 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-24 05:04:52 +0200 | king_gs | (~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) |
2022-10-24 05:05:09 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-10-24 05:08:13 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-10-24 05:08:33 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 05:09:49 +0200 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) (Remote host closed the connection) |
2022-10-24 05:10:10 +0200 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) |
2022-10-24 05:13:22 +0200 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
2022-10-24 05:17:35 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 05:18:09 +0200 | boxscape_ | (~boxscape_@81.191.27.107) |
2022-10-24 05:19:00 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
2022-10-24 05:28:37 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 05:32:52 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
2022-10-24 05:33:59 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
2022-10-24 05:37:02 +0200 | boxscape_ | (~boxscape_@81.191.27.107) (Ping timeout: 244 seconds) |
2022-10-24 05:38:04 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
2022-10-24 05:42:13 +0200 | Guest51 | (~Guest51@50.47.90.28) |
2022-10-24 05:43:36 +0200 | danza | (~francesco@151.43.239.176) (Read error: Connection reset by peer) |
2022-10-24 05:43:58 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 05:45:08 +0200 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2022-10-24 05:49:56 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
2022-10-24 05:59:03 +0200 | redmp | (~redmp@mobile-166-137-178-116.mycingular.net) |
2022-10-24 05:59:30 +0200 | danza | (~francesco@ca-18-216-127.service.infuturo.it) |
2022-10-24 06:00:32 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 06:04:35 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-10-24 06:05:56 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 06:06:02 +0200 | <Unicorn_Princess> | hoogle generate "Found 7569 warnings when processing items", and also gave me a list of packages that are missing documentation. are these errors caused by something on my system, or is it simply a report on the packages themselves? |
2022-10-24 06:06:17 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-10-24 06:06:55 +0200 | <Unicorn_Princess> | (i installed hoogle by first installing ghcup, then `cabal install hoogle`, and finally `hoogle generate`) |
2022-10-24 06:07:29 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 276 seconds) |
2022-10-24 06:08:27 +0200 | biberu | (~biberu@user/biberu) |
2022-10-24 06:08:41 +0200 | <Unicorn_Princess> | it reports in total 30 packages missing docs. stuff like 'lzma-clib' and 'rocksdb-haskell' |
2022-10-24 06:09:49 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-10-24 06:09:50 +0200 | <Unicorn_Princess> | ah, https://hackage.haskell.org/package/lzma-clib says "docs not available", so maybe it's the pacakges |
2022-10-24 06:10:52 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-10-24 06:11:26 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
2022-10-24 06:11:32 +0200 | <Unicorn_Princess> | ah, but https://hackage.haskell.org/package/minisat-solver has "docs uploaded by user", so who knows. but it's another abandoned package it seems |
2022-10-24 06:12:02 +0200 | <Unicorn_Princess> | (minisat-solver being another of the packages that hoogle generate reports are missing docs) |
2022-10-24 06:12:46 +0200 | <jackdk> | When you installed your packages locally, they were probably built without documentation. I don't remember how to coerce cabal to rebuild installed packages with documentation. |
2022-10-24 06:13:12 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-24 06:17:56 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
2022-10-24 06:17:58 +0200 | <Unicorn_Princess> | oh i never installed any of them really. installing ghcup, `cabal install hoogle` and `hoogle generate` are the only haskell-related commands i ran on this system. just installed ubuntu 22.04 from scratch, so it's quite fresh |
2022-10-24 06:18:18 +0200 | adanwan | (~adanwan@gateway/tor-sasl/adanwan) |
2022-10-24 06:18:27 +0200 | <jackdk> | Those packages are probably the dependencies of hoogle |
2022-10-24 06:19:53 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 06:20:36 +0200 | king_gs | (~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Quit: king_gs) |
2022-10-24 06:20:54 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 06:23:40 +0200 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-10-24 06:24:46 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 06:25:12 +0200 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
2022-10-24 06:27:44 +0200 | bilegeek_ | (~bilegeek@43.sub-174-209-36.myvzw.com) (Quit: Leaving) |
2022-10-24 06:29:05 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 272 seconds) |
2022-10-24 06:29:51 +0200 | Guest7606 | (~aaa@49.207.231.197) |
2022-10-24 06:31:37 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 272 seconds) |
2022-10-24 06:32:00 +0200 | <Unicorn_Princess> | hmmm, thanks |
2022-10-24 06:34:50 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
2022-10-24 06:35:05 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-10-24 06:43:11 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 06:43:46 +0200 | Lumia | (~Lumia@user/Lumia) |
2022-10-24 06:51:53 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
2022-10-24 06:57:54 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 06:59:37 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-10-24 07:06:16 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
2022-10-24 07:13:41 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-10-24 07:13:58 +0200 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) |
2022-10-24 07:26:06 +0200 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) |
2022-10-24 07:38:59 +0200 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) (Quit: BRB) |
2022-10-24 07:40:43 +0200 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) |
2022-10-24 07:45:28 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds) |
2022-10-24 07:50:07 +0200 | michalz | (~michalz@185.246.207.193) |
2022-10-24 07:50:45 +0200 | Neuromancer | (~Neuromanc@user/neuromancer) (Quit: Going offline, see ya! (www.adiirc.com)) |
2022-10-24 07:53:37 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 07:54:01 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-10-24 07:55:19 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2022-10-24 07:58:39 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 07:59:48 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-10-24 08:03:11 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 276 seconds) |
2022-10-24 08:04:40 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 08:06:14 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 08:10:52 +0200 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2022-10-24 08:11:16 +0200 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) |
2022-10-24 08:11:38 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
2022-10-24 08:12:07 +0200 | Lumia | (~Lumia@user/Lumia) (Quit: ,-) |
2022-10-24 08:19:28 +0200 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-10-24 08:20:33 +0200 | redmp | (~redmp@mobile-166-137-178-116.mycingular.net) (Ping timeout: 272 seconds) |
2022-10-24 08:20:47 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-10-24 08:21:37 +0200 | rembo10 | (~rembo10@main.remulis.com) |
2022-10-24 08:26:40 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-10-24 08:29:11 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds) |
2022-10-24 08:33:17 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 08:37:10 +0200 | mmhat | (~mmh@p200300f1c7307610ee086bfffe095315.dip0.t-ipconnect.de) |
2022-10-24 08:38:33 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-10-24 08:41:51 +0200 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-10-24 08:46:05 +0200 | mncheck | (~mncheck@193.224.205.254) |
2022-10-24 08:47:39 +0200 | acidjnk | (~acidjnk@p200300d6e7137a39185a556c4ffa1a9f.dip0.t-ipconnect.de) |
2022-10-24 08:47:51 +0200 | <Clinton[m]> | just checking is there an extension that allows me to have record field names of the same name but different types in the same module? |
2022-10-24 08:48:24 +0200 | <Clinton[m]> | like... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/018c991b074f6aa3afe4ec1ab06076fa4352…>) |
2022-10-24 08:48:46 +0200 | <Clinton[m]> | Or is that just very naughty. |
2022-10-24 08:52:32 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:ad98:9d00:b84f:455) |
2022-10-24 08:53:04 +0200 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Read error: Connection reset by peer) |
2022-10-24 08:53:19 +0200 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) |
2022-10-24 08:54:53 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-10-24 08:55:47 +0200 | <c_wraith> | DuplicateRecordFields should do that |
2022-10-24 09:06:25 +0200 | <Clinton[m]> | c_wraith: yep, that did the job. Although I've got another issue more like this:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/b2de1ff05816fa066d62b0d6181a0a0c9b7e…>) |
2022-10-24 09:06:57 +0200 | <c_wraith> | Oh. I don't think that's gonna work. |
2022-10-24 09:12:55 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-10-24 09:19:01 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2022-10-24 09:19:56 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2022-10-24 09:19:57 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 09:24:19 +0200 | titibandit | (~titibandi@xdsl-87-78-36-34.nc.de) |
2022-10-24 09:30:56 +0200 | <dminuoso> | How would one write a rewrite rule for say `pure a` |
2022-10-24 09:31:12 +0200 | <dminuoso> | Specifically, I cant figure out how to specify a type annmotation for it. |
2022-10-24 09:31:15 +0200 | <Clinton[m]> | c_wraith: all good I've just put them subtypes now |
2022-10-24 09:31:39 +0200 | <dminuoso> | `"foo" forall a. pure a = XXX` is not good enough, I want to constrain it to a particualr type of `a` |
2022-10-24 09:31:47 +0200 | <dminuoso> | Or rather, that example is not good enough |
2022-10-24 09:31:57 +0200 | <dminuoso> | Say rewriting `a >> b` |
2022-10-24 09:33:48 +0200 | <dminuoso> | https://play-haskell.tomsmeding.com/saved/3Nts9F5o |
2022-10-24 09:37:32 +0200 | <dminuoso> | Or do I have to define a top level binding, say choice, define <+> = choice, specify INLINE[0] on the instance, and specify the rewrite rule in terms of `choice`? |
2022-10-24 09:38:07 +0200 | <nshepperd2> | jle`: hey! you're right, that solution is O(l^2) space. I do have a O(l) version though, that does it as a fold |
2022-10-24 09:38:25 +0200 | <dminuoso> | Mmm, no. Inlining on (<+>) prevents the rule from firing. |
2022-10-24 09:40:27 +0200 | <dminuoso> | This also causes weird type errors: "flatparse/reassoc-alt" forall l m r. (l :: Maybe a) <+> m <+> r = Nothing :: Maybe a |
2022-10-24 09:40:41 +0200 | <dminuoso> | Or dropping that final `:: Maybe a` too. |
2022-10-24 09:42:38 +0200 | <nshepperd2> | jle`: https://paste.zlkj.in/uploads/e4d73710d9d7e786/fourteen.txt |
2022-10-24 09:42:47 +0200 | danza | (~francesco@ca-18-216-127.service.infuturo.it) (Read error: Connection reset by peer) |
2022-10-24 09:44:32 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-24 09:45:10 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
2022-10-24 09:49:43 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 09:50:52 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 09:51:25 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3df4:aa3e:43b0:5de8) (Remote host closed the connection) |
2022-10-24 09:51:44 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-10-24 09:54:37 +0200 | kuribas | (~user@ptr-17d51emnxyldefiap63.18120a2.ip6.access.telenet.be) |
2022-10-24 09:56:42 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2022-10-24 09:57:12 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
2022-10-24 09:59:14 +0200 | danza | (~francesco@151.34.187.38) |
2022-10-24 10:05:20 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-10-24 10:09:46 +0200 | jakalx | (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
2022-10-24 10:09:47 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-10-24 10:13:14 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 10:15:50 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 250 seconds) |
2022-10-24 10:17:55 +0200 | titibandit | (~titibandi@xdsl-87-78-36-34.nc.de) (Remote host closed the connection) |
2022-10-24 10:24:54 +0200 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-10-24 10:25:04 +0200 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
2022-10-24 10:25:18 +0200 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-10-24 10:25:25 +0200 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
2022-10-24 10:25:40 +0200 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-10-24 10:25:51 +0200 | fserucas_eod | (~fserucas_@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit) |
2022-10-24 10:26:06 +0200 | fserucas|eod | (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-10-24 10:29:37 +0200 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Quit: Konversation terminated!) |
2022-10-24 10:29:49 +0200 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) |
2022-10-24 10:30:15 +0200 | akegalj | (~akegalj@93-138-77-86.adsl.net.t-com.hr) |
2022-10-24 10:32:28 +0200 | nschoe | (~q@141.101.51.197) |
2022-10-24 10:34:42 +0200 | gmg | (~user@user/gehmehgeh) |
2022-10-24 10:37:19 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-10-24 10:37:32 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 10:41:28 +0200 | shapr | (~user@net-5-88-239-29.cust.vodafonedsl.it) |
2022-10-24 10:46:37 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2022-10-24 10:51:28 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 10:51:42 +0200 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) |
2022-10-24 10:51:53 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:8908:183b:c2f1:b2ec) |
2022-10-24 10:56:05 +0200 | Guest65 | (~Guest65@206.119.125.191) |
2022-10-24 10:56:08 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:8908:183b:c2f1:b2ec) (Ping timeout: 250 seconds) |
2022-10-24 10:57:19 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2022-10-24 11:00:01 +0200 | <dminuoso> | RULES are officially magical. |
2022-10-24 11:00:06 +0200 | polykernel[m] | (~polykerne@user/polykernel) (Quit: You have been kicked for being idle) |
2022-10-24 11:09:09 +0200 | <lyxia> | dminuoso: How about "forall (a :: Int)" ? |
2022-10-24 11:10:02 +0200 | <lyxia> | or using TypeApplications |
2022-10-24 11:10:14 +0200 | <dminuoso> | Well so Ive came up with: https://play-haskell.tomsmeding.com/saved/KqLymSwL |
2022-10-24 11:10:28 +0200 | <dminuoso> | Which I think is the right specification, but it may be that the diagnostic is just a false positive |
2022-10-24 11:11:02 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
2022-10-24 11:11:10 +0200 | arahael | (~arahael@14-202-55-135.tpgi.com.au) |
2022-10-24 11:11:12 +0200 | <dminuoso> | I guess the mere type annotation does not cause GHC to look for whether a NOINLINE exists at the specific instance for (<+>), that would be selected after type unification |
2022-10-24 11:13:12 +0200 | Guest65 | (~Guest65@206.119.125.191) (Quit: Client closed) |
2022-10-24 11:14:04 +0200 | <dminuoso> | I cant also make heads or tails of this: https://play-haskell.tomsmeding.com/saved/vsW3F1R8 |
2022-10-24 11:14:18 +0200 | <dminuoso> | Im beginning to suspect the diagnostic is a very sketchy heuristic |
2022-10-24 11:14:35 +0200 | ubert1 | (~Thunderbi@91.141.49.34.wireless.dyn.drei.com) |
2022-10-24 11:15:21 +0200 | ubert | (~Thunderbi@178.115.71.141.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2022-10-24 11:15:21 +0200 | ubert1 | ubert |
2022-10-24 11:17:56 +0200 | <dminuoso> | What I really want is something like: |
2022-10-24 11:19:42 +0200 | <dminuoso> | {-# RULES "flatparse/reassoc-alt" [1] forall a. forall l m r. l (<|> @Maybe) m (<|> @Maybe) r = Nothing #-} |
2022-10-24 11:21:34 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 11:26:34 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:d960:d98a:f624:8ef) |
2022-10-24 11:26:45 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
2022-10-24 11:30:04 +0200 | Guest51 | (~Guest51@50.47.90.28) |
2022-10-24 11:33:06 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) |
2022-10-24 11:36:15 +0200 | __monty__ | (~toonn@user/toonn) |
2022-10-24 11:37:24 +0200 | ft | (~ft@p3e9bc845.dip0.t-ipconnect.de) (Quit: leaving) |
2022-10-24 11:39:29 +0200 | Guest7606 | (~aaa@49.207.231.197) (Quit: Leaving) |
2022-10-24 11:39:38 +0200 | acidjnk | (~acidjnk@p200300d6e7137a39185a556c4ffa1a9f.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2022-10-24 11:40:08 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 11:47:59 +0200 | <lyxia> | What's confusing about the diagnostic? if choice gets inlined first, the rule won't apply since there is no choice to match. |
2022-10-24 11:51:19 +0200 | <dminuoso> | Ah, I must specify INLINE[~0] on the instance method |
2022-10-24 11:51:27 +0200 | <dminuoso> | That makes sense, lyxia. |
2022-10-24 11:52:24 +0200 | Guest16 | (~Guest16@p200300ef971835b5517f7031904fbb79.dip0.t-ipconnect.de) (Quit: Client closed) |
2022-10-24 11:54:38 +0200 | acidjnk | (~acidjnk@p200300d6e7137a390804478ada777c16.dip0.t-ipconnect.de) |
2022-10-24 11:55:17 +0200 | <dminuoso> | Or ~1 rather I suppose |
2022-10-24 11:56:52 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 12:05:21 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-10-24 12:07:30 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 12:10:20 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 12:12:47 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
2022-10-24 12:15:05 +0200 | <dminuoso> | lyxia: Ah but hold on, the rewrite rule starts from phase 1, but choice cant get inlined until phase 2. |
2022-10-24 12:19:20 +0200 | <dminuoso> | I mean yeah, I can set the `choice` inline phase to 2, and the rewrite rule to ~1 |
2022-10-24 12:19:55 +0200 | <dminuoso> | But whats slightly absurd, is that not specifying a phase for the rule makes the diagnostic go away too. |
2022-10-24 12:20:47 +0200 | <dminuoso> | That is, why does the diagnostic fire for one but not the other https://play-haskell.tomsmeding.com/saved/sBjYWK7T |
2022-10-24 12:20:54 +0200 | <dminuoso> | In either case choice might get inlined first. |
2022-10-24 12:26:58 +0200 | axeman | (~quassel@2a02:8109:a380:78:e069:1455:8f12:523c) |
2022-10-24 12:30:20 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 276 seconds) |
2022-10-24 12:31:40 +0200 | shapr` | (~user@net-5-88-239-29.cust.vodafonedsl.it) |
2022-10-24 12:33:12 +0200 | shapr | (~user@net-5-88-239-29.cust.vodafonedsl.it) (Ping timeout: 250 seconds) |
2022-10-24 12:33:20 +0200 | shapr` | shapr |
2022-10-24 12:36:03 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
2022-10-24 12:38:24 +0200 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 250 seconds) |
2022-10-24 12:41:29 +0200 | axeman | (~quassel@2a02:8109:a380:78:e069:1455:8f12:523c) (Quit: No Ping reply in 180 seconds.) |
2022-10-24 12:42:25 +0200 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2022-10-24 12:42:39 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-10-24 12:42:45 +0200 | axeman | (~quassel@2a02:8109:a380:78:47a:28c0:4f2:c5d2) |
2022-10-24 12:44:01 +0200 | biberu | (~biberu@user/biberu) |
2022-10-24 12:44:30 +0200 | Maeda | (~Maeda@91-161-10-149.subs.proxad.net) |
2022-10-24 12:48:13 +0200 | gmg | (~user@user/gehmehgeh) |
2022-10-24 12:49:13 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Remote host closed the connection) |
2022-10-24 12:50:18 +0200 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-10-24 12:50:57 +0200 | yaroot | (~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) |
2022-10-24 12:54:48 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
2022-10-24 12:55:43 +0200 | freeside_ | (~mengwong@103.252.202.193) |
2022-10-24 12:56:41 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2022-10-24 12:57:02 +0200 | birdgoose | (~jesse@2406:e003:1d87:6601:e725:b6b4:ace8:4ebe) (Ping timeout: 250 seconds) |
2022-10-24 12:57:35 +0200 | Kaipei | (~Kaiepi@108.175.84.104) (Remote host closed the connection) |
2022-10-24 12:57:58 +0200 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-10-24 12:59:21 +0200 | shapr | (~user@net-5-88-239-29.cust.vodafonedsl.it) (Remote host closed the connection) |
2022-10-24 12:59:29 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 272 seconds) |
2022-10-24 13:00:53 +0200 | acidjnk | (~acidjnk@p200300d6e7137a390804478ada777c16.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2022-10-24 13:06:42 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-10-24 13:07:59 +0200 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-10-24 13:12:48 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2022-10-24 13:19:07 +0200 | <Profpatsch> | partitionEithers returns ([left], [right]), and then is usually matched like ([], rights) -> … ; (errs, _) -> errs |
2022-10-24 13:19:10 +0200 | xff0x | (~xff0x@2405:6580:b080:900:274f:8858:84b:2f95) |
2022-10-24 13:19:36 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 13:19:57 +0200 | <Profpatsch> | I usually like to go via Validation instead, traversing the [Either left right] with a (Either left right -> Validation (NonEmpty left) right) |
2022-10-24 13:20:16 +0200 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-10-24 13:20:18 +0200 | <Profpatsch> | So I get back a `Validation (NonEmpty left) right` and can just match on it |
2022-10-24 13:21:00 +0200 | <Profpatsch> | But I always wonder how efficient using the Semigroup instance of NonEmpty is in this case, first wrapping every error in a NonEmpty.singleton and then (<>) those |
2022-10-24 13:22:09 +0200 | acidjnk | (~acidjnk@p200300d6e7137a399c67b611784f46e2.dip0.t-ipconnect.de) |
2022-10-24 13:22:32 +0200 | <Profpatsch> | Intuitively, do I have to worry about performance here? |
2022-10-24 13:23:24 +0200 | <Profpatsch> | I always have to traverse the list afaik, be it via partitionEithers or Validation, because otherwise I can’t figure out if the list of errors is empty |
2022-10-24 13:24:22 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 13:27:19 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-10-24 13:28:11 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 276 seconds) |
2022-10-24 13:28:46 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-10-24 13:35:35 +0200 | axeman | (~quassel@2a02:8109:a380:78:47a:28c0:4f2:c5d2) (Ping timeout: 272 seconds) |
2022-10-24 13:39:00 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 13:40:49 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-10-24 13:45:09 +0200 | danza | (~francesco@151.34.187.38) (Read error: Connection reset by peer) |
2022-10-24 13:49:37 +0200 | <dminuoso> | f the non-empty list of error is empty? |
2022-10-24 13:51:05 +0200 | <dminuoso> | Profpatsch: I think you meant `Validation [left]` rather than `Validation (NonEmpty left)`, right? |
2022-10-24 13:51:28 +0200 | Midjak | (~Midjak@82.66.147.146) |
2022-10-24 13:57:01 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 13:58:43 +0200 | <Profpatsch> | dminuoso: NonEmpty |
2022-10-24 13:59:04 +0200 | danza | (~francesco@151.43.124.110) |
2022-10-24 13:59:36 +0200 | <dminuoso> | That NonEmpty will never be empty. |
2022-10-24 13:59:59 +0200 | <Profpatsch> | because Semigroup e => instance Applicative (Validation e a) |
2022-10-24 14:00:05 +0200 | frost1 | (~frost@user/frost) (Quit: Client closed) |
2022-10-24 14:00:07 +0200 | <dminuoso> | Yes, but that NonEmpty will never be empty. |
2022-10-24 14:00:11 +0200 | <Profpatsch> | dminuoso: exactly |
2022-10-24 14:00:15 +0200 | <Profpatsch> | that’s the idea |
2022-10-24 14:00:17 +0200 | <dminuoso> | What exactly? |
2022-10-24 14:00:21 +0200 | <dminuoso> | Profpatsch | I always have to traverse the list afaik, be it via partitionEithers or Validation, because otherwise I can’t figure out if the list of errors is empty |
2022-10-24 14:00:36 +0200 | <dminuoso> | Im just telling you, on `Validation (NonEmpty T)` there is no need to figure out iof the list of errors is empty |
2022-10-24 14:00:44 +0200 | <Profpatsch> | dminuoso: Ah, I was referring to the pattern match after partitionEithers |
2022-10-24 14:01:02 +0200 | <Profpatsch> | which is ([], vals) -> … ; (errs, _) -> …; |
2022-10-24 14:01:10 +0200 | <dminuoso> | `(Either left right -> Validation (NonEmpty left) right)` is partial. |
2022-10-24 14:01:24 +0200 | <dminuoso> | Ah hold on! |
2022-10-24 14:01:26 +0200 | <dminuoso> | I see what you mean |
2022-10-24 14:01:40 +0200 | <Profpatsch> | basically it’s “collect all errors \/ success” |
2022-10-24 14:01:43 +0200 | <dminuoso> | Yeah |
2022-10-24 14:01:55 +0200 | <dminuoso> | So I wouldnt worry about performance unless this was measurably in a hotspot. |
2022-10-24 14:02:02 +0200 | <Profpatsch> | but partitionEither’s codomain is “too big” |
2022-10-24 14:02:10 +0200 | <Profpatsch> | it could in theory also have both errors and successes |
2022-10-24 14:02:32 +0200 | <Profpatsch> | the only real difference is one gives you a nonEmpty error list |
2022-10-24 14:02:32 +0200 | <dminuoso> | If constant memory usage and short cut fusion was highly desirable, I would just write a CPS'ed state monad on the spot |
2022-10-24 14:02:37 +0200 | <dminuoso> | And use it instead of Either |
2022-10-24 14:02:53 +0200 | <dminuoso> | (with either a difference list, or a reveresed list of errors as state) |
2022-10-24 14:02:59 +0200 | <Profpatsch> | err, sorry, *neither* errors nor successes |
2022-10-24 14:03:03 +0200 | <Profpatsch> | so ([], []) |
2022-10-24 14:03:35 +0200 | <Profpatsch> | dminuoso: yeah, I guess it’s at most constant overhead |
2022-10-24 14:03:41 +0200 | constxd | (~brad@47.55.121.233) |
2022-10-24 14:04:13 +0200 | <Profpatsch> | cause [a] <> ([b] <> [c]) is relatively efficient |
2022-10-24 14:04:30 +0200 | <Profpatsch> | as compared to ([a] <> [b]) <> [c] |
2022-10-24 14:04:39 +0200 | <dminuoso> | THe latter is fine with DList though |
2022-10-24 14:04:43 +0200 | <Profpatsch> | yep |
2022-10-24 14:05:01 +0200 | <dminuoso> | Lately Ive become quite comfortable with continuations, so I would just use that instead |
2022-10-24 14:05:51 +0200 | <Profpatsch> | dminuoso: I mean, there’s a non-empty Seq as well |
2022-10-24 14:05:59 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 272 seconds) |
2022-10-24 14:06:33 +0200 | <Profpatsch> | which has O(1) on both ends, so you don’t have to worry whether all your stuff is bracketed the right way |
2022-10-24 14:06:46 +0200 | <Profpatsch> | tho even more constant overhead |
2022-10-24 14:07:10 +0200 | <Profpatsch> | I default to non-empty lists right now, might have to benchmark once that becomes an actual problem |
2022-10-24 14:09:22 +0200 | <Profpatsch> | but in general, non-empty lists are a very good pragmatic datastructure, more Haskell code should use them. |
2022-10-24 14:09:32 +0200 | <dminuoso> | Profpatsch: https://gist.github.com/dminuoso/3452157cebdbb2397b914e02f3a17cb4 |
2022-10-24 14:09:36 +0200 | <Profpatsch> | removes a bunch of unnecessary branches from most code |
2022-10-24 14:09:50 +0200 | <dminuoso> | Here, gives you a CPS state monad in which you can just collect errors as you go. |
2022-10-24 14:10:52 +0200 | <Profpatsch> | dminuoso: hm, Validation is not in Monad cause there is no mempty in NonEmpty |
2022-10-24 14:11:21 +0200 | <Profpatsch> | the missing mempty for the error list really removes a bunch of non-branches from the state-space |
2022-10-24 14:11:22 +0200 | <dminuoso> | Profpatsch: Yes, but you are producing [Either a b], which means the error-free case exists. |
2022-10-24 14:12:01 +0200 | <dminuoso> | This is just a CPSed `State [s]` with a newtype wrapper (such that you cant accidentally modify the state) |
2022-10-24 14:12:12 +0200 | <Profpatsch> | it’s nice yep |
2022-10-24 14:12:13 +0200 | <dminuoso> | (Or StateT [s] even) |
2022-10-24 14:12:29 +0200 | <Profpatsch> | Is there no CPSed State in base? |
2022-10-24 14:12:34 +0200 | <Profpatsch> | or transformers? |
2022-10-24 14:12:48 +0200 | <dminuoso> | There is not |
2022-10-24 14:13:16 +0200 | <dminuoso> | Ill have to do actual analysis whether it actually matters |
2022-10-24 14:13:35 +0200 | <Profpatsch> | there’s one for WriterT at least https://hackage.haskell.org/package/transformers-0.6.0.4/docs/Control-Monad-Trans-Writer-CPS.html#… |
2022-10-24 14:13:41 +0200 | <dminuoso> | Yeah but thats not really CPSed |
2022-10-24 14:13:46 +0200 | Guest1875 | (~a@49.207.231.197) |
2022-10-24 14:13:48 +0200 | <dminuoso> | Or not fully anyway |
2022-10-24 14:13:49 +0200 | <Profpatsch> | which is—incidentally—the only one that does not always leak memory :P |
2022-10-24 14:13:50 +0200 | <dminuoso> | newtype WriterT w m a = WriterT { unWriterT :: w -> m (a, w) } |
2022-10-24 14:14:01 +0200 | <Profpatsch> | ah, it’s just StateT |
2022-10-24 14:14:06 +0200 | <dminuoso> | Yup |
2022-10-24 14:14:35 +0200 | freeside_ | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
2022-10-24 14:14:42 +0200 | <dminuoso> | I mean in most cases either is fine |
2022-10-24 14:14:55 +0200 | <Profpatsch> | dminuoso: do you always pro-actively apply INLINE(ABLE) pragmas to things? |
2022-10-24 14:15:02 +0200 | <dminuoso> | Its just that with the CPS variant you can easily just introduce an error case |
2022-10-24 14:15:15 +0200 | <dminuoso> | Profpatsch: Only for things I *expect* to be inlined, such that I dont have to rely on the mood of the simplifier. |
2022-10-24 14:15:17 +0200 | <Profpatsch> | I’ve been not keen on doing that as long as it’s not performance-crical |
2022-10-24 14:16:12 +0200 | <Profpatsch> | e.g. most of the stuff in https://hackage.haskell.org/package/error-1.0.0.0/docs/src/Data.Error.html should probably have an INLINEABLE |
2022-10-24 14:16:20 +0200 | <dminuoso> | Profpatsch: so continuations allow for introduction of error cases (or multiple modes) which can assist stream fusion in some cases. |
2022-10-24 14:16:37 +0200 | <dminuoso> | if you dont ever care for that, might as well use State/StateT (possibly newtyped) |
2022-10-24 14:16:52 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2022-10-24 14:16:53 +0200 | biberu\ | (~biberu@user/biberu) |
2022-10-24 14:16:55 +0200 | <dminuoso> | Profpatsch: INLINEABLE is definitely good for such things, yes. |
2022-10-24 14:17:27 +0200 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-10-24 14:18:56 +0200 | <dminuoso> | Profpatsch: Another option by the way, to maintain fatal/non-fatal errors, if you have ST or IO available, is to keep `data Env = Env { fatal :: IORef [FatalError]; nonFatal :: IORef [Error]; warnings :: IORef [Warning]` |
2022-10-24 14:19:09 +0200 | <dminuoso> | This is more imperative, and perhaps sometimes an overlooked option |
2022-10-24 14:19:26 +0200 | <Profpatsch> | dminuoso: Ah, that’s probably the most performant one? |
2022-10-24 14:19:32 +0200 | <Profpatsch> | depends on how many errors happen |
2022-10-24 14:19:33 +0200 | <dminuoso> | Not necessarily |
2022-10-24 14:19:49 +0200 | <Profpatsch> | Also the errors will be in reverse order :P |
2022-10-24 14:20:04 +0200 | <dminuoso> | You can fix that with a DList or Seq |
2022-10-24 14:20:11 +0200 | <dminuoso> | Or just accept to reverse them at the end ocne |
2022-10-24 14:20:16 +0200 | <dminuoso> | (I just accept to reverse them) |
2022-10-24 14:20:37 +0200 | <dminuoso> | Profpatsch: the beauty of this, is that you get write IO heavy code, but not use StateT. |
2022-10-24 14:20:41 +0200 | <dminuoso> | So MonadUnliftIO is available |
2022-10-24 14:20:42 +0200 | <Profpatsch> | I’d probably newtype to ErrorList |
2022-10-24 14:20:46 +0200 | <dminuoso> | (And dont need to rely on MonadBaseControl) |
2022-10-24 14:20:47 +0200 | <Profpatsch> | then I can’t forget |
2022-10-24 14:20:55 +0200 | biberu | (~biberu@user/biberu) (Ping timeout: 272 seconds) |
2022-10-24 14:20:55 +0200 | biberu\ | biberu |
2022-10-24 14:20:59 +0200 | <Profpatsch> | dminuoso: ah, yeah |
2022-10-24 14:21:21 +0200 | <dminuoso> | We use this in our SDN compiler precisely for that reason. |
2022-10-24 14:21:29 +0200 | <Profpatsch> | what’s a SDN? |
2022-10-24 14:21:33 +0200 | <dminuoso> | Networking stuff |
2022-10-24 14:21:44 +0200 | <Profpatsch> | Ah |
2022-10-24 14:22:09 +0200 | <Profpatsch> | yeah my use-case here is mostly parsing, which is as pure as it gets |
2022-10-24 14:22:20 +0200 | <dminuoso> | We even have combinators like >|> that sequence only if there are no errors set |
2022-10-24 14:22:31 +0200 | <dminuoso> | Or combinators that degrade fatal errors into non-fatal errors temporarily |
2022-10-24 14:22:38 +0200 | <dminuoso> | Bunch of tools to get fine flow control |
2022-10-24 14:22:40 +0200 | <Profpatsch> | wow so cool |
2022-10-24 14:22:43 +0200 | <Profpatsch> | I love Haskell |
2022-10-24 14:22:47 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
2022-10-24 14:22:55 +0200 | <dminuoso> | Well I mean you can do this in any language, honestly |
2022-10-24 14:23:40 +0200 | <Profpatsch> | the “combinators” part is where most other static languages fail with the type inference though |
2022-10-24 14:23:42 +0200 | jonathanx__ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 250 seconds) |
2022-10-24 14:23:56 +0200 | <dminuoso> | Profpatsch: https://gist.github.com/dminuoso/a29d323eb25c8a6d48bdbf982c0892e2 |
2022-10-24 14:24:05 +0200 | <dminuoso> | Well *this* does not need type infereence |
2022-10-24 14:24:06 +0200 | jonathanx | (~jonathan@c-5eea678b-74736162.cust.telenor.se) |
2022-10-24 14:24:18 +0200 | <dminuoso> | The only cute part is that we can define arbitrary combinators? |
2022-10-24 14:24:48 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-10-24 14:25:02 +0200 | <dminuoso> | And condemn just inspects the errors, and throws a BailOut exception by the way. :) |
2022-10-24 14:25:24 +0200 | <Profpatsch> | I tend not to go heavy on the operators but yeah |
2022-10-24 14:25:34 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 14:26:27 +0200 | <Profpatsch> | My fav thing currently is newtype FieldParser err from to = FieldParser (from -> Either err to) instance Profunctor, Category, Semigroupoid |
2022-10-24 14:26:41 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-24 14:28:06 +0200 | <Profpatsch> | Might submit it to hackage at one point |
2022-10-24 14:28:12 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 14:28:38 +0200 | <dminuoso> | Meaning I have to depend on semigroupoids to use it? :S |
2022-10-24 14:28:50 +0200 | <Profpatsch> | utf8 >>> unsignedDecimal >>> clamp 1 10 :: FieldParser ByteString Natural |
2022-10-24 14:28:54 +0200 | <Profpatsch> | it’s really not much more than that |
2022-10-24 14:29:06 +0200 | <Profpatsch> | But I think the concept & UX is pretty good |
2022-10-24 14:29:15 +0200 | dminuoso | shrugs |
2022-10-24 14:29:31 +0200 | <dminuoso> | Im not sure I like Category as a user interface much |
2022-10-24 14:29:54 +0200 | <dminuoso> | Is it really better than >>= here? |
2022-10-24 14:30:10 +0200 | <Profpatsch> | dminuoso: that’s what I’m trying to figure out yeah |
2022-10-24 14:30:12 +0200 | shriekingnoise | (~shrieking@186.137.167.202) (Ping timeout: 250 seconds) |
2022-10-24 14:30:32 +0200 | <Profpatsch> | which is why I’ve not pushed it to hackage yeg |
2022-10-24 14:30:34 +0200 | <Profpatsch> | *yet |
2022-10-24 14:30:46 +0200 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-10-24 14:32:14 +0200 | <Profpatsch> | it just composes nicely with other things, e.g. jsonString :: FieldParser Json.Value Text or attoparsecText :: Atto.Parser a -> FieldParser Text a |
2022-10-24 14:33:37 +0200 | jonathanx | (~jonathan@c-5eea678b-74736162.cust.telenor.se) (Remote host closed the connection) |
2022-10-24 14:34:00 +0200 | axeman | (~quassel@2a02:8109:a380:78:bc30:5eb7:62c9:6689) |
2022-10-24 14:38:04 +0200 | vglfr | (~vglfr@145.224.100.190) |
2022-10-24 14:40:36 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 250 seconds) |
2022-10-24 14:43:22 +0200 | <dminuoso> | And it will make inlining *much* harder |
2022-10-24 14:44:17 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
2022-10-24 14:45:39 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-10-24 14:45:39 +0200 | <Profpatsch> | dminuoso: newtypes influence inlining? |
2022-10-24 14:45:47 +0200 | Guest1875 | (~a@49.207.231.197) (Remote host closed the connection) |
2022-10-24 14:45:48 +0200 | <Profpatsch> | that’s a first |
2022-10-24 14:46:34 +0200 | <dminuoso> | Well no, but each such combinator better be inlineable or inline'd |
2022-10-24 14:46:46 +0200 | <dminuoso> | Though.. for attoparsec I dont think it matters much |
2022-10-24 14:47:29 +0200 | <Profpatsch> | dminuoso: Ah, well, but they all specify an error message in the Left case, so idk if inlining is a good idea |
2022-10-24 14:47:47 +0200 | <dminuoso> | Oh right, there's that Either |
2022-10-24 14:47:59 +0200 | <dminuoso> | *that* will definitely ruin performance in a lot of examples |
2022-10-24 14:48:12 +0200 | <dminuoso> | It will prevent short cut fusion, it will make inlining hard |
2022-10-24 14:48:15 +0200 | <Profpatsch> | yes, the price to pay for good error messages :P |
2022-10-24 14:48:21 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 14:49:28 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-10-24 14:49:54 +0200 | <[Leary]> | I don't think it needs to go on hackage; we have `Kleisli` in base. |
2022-10-24 14:49:56 +0200 | <Profpatsch> | dminuoso: I’m guessing CPSsing would help here as well? |
2022-10-24 14:50:11 +0200 | stackdroid18 | (14094@user/stackdroid) |
2022-10-24 14:50:16 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2022-10-24 14:50:28 +0200 | <dminuoso> | Oh right, FieldParser ~ Kleisli Either |
2022-10-24 14:50:32 +0200 | <dminuoso> | Profpatsch: Perhaps. |
2022-10-24 14:50:55 +0200 | <dminuoso> | It will still make inlining more difficult for some types of parsers. |
2022-10-24 14:51:04 +0200 | <Profpatsch> | [Leary]: yes, it’s a specialised thing which solidifies a good practice |
2022-10-24 14:51:21 +0200 | <Profpatsch> | I personally think that’s a useful thing to have |
2022-10-24 14:52:26 +0200 | <Profpatsch> | [Leary]: also Kleisli has a lot of Arrow a => operators for legacy reasons |
2022-10-24 14:52:52 +0200 | <Profpatsch> | well, it’s from Control.Arrow |
2022-10-24 14:53:15 +0200 | <Profpatsch> | Personally, I’m more fond of Bifunctor, Profunctor etc |
2022-10-24 14:53:32 +0200 | <Profpatsch> | But I can understand that some people might prefer Arrows |
2022-10-24 14:53:35 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 14:55:19 +0200 | <[Leary]> | It may be in Control.Arrow, but that doesn't mean you need to use Arrow. It has all the other instances you want, Profunctor etc. |
2022-10-24 14:56:14 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
2022-10-24 14:56:15 +0200 | <dminuoso> | Nobody prefers arrows. :> |
2022-10-24 14:56:16 +0200 | <[Leary]> | I would at least derive all that via Kleisli. |
2022-10-24 14:56:33 +0200 | <Profpatsch> | [Leary]: why though? It makes it harder to understand |
2022-10-24 14:56:54 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 14:57:09 +0200 | <[Leary]> | I don't see how. Most people understand Kleisli, so they'll know what you're doing at a glance. |
2022-10-24 14:57:22 +0200 | <[Leary]> | A new type requires inspection. |
2022-10-24 14:57:22 +0200 | <dminuoso> | "most" depends on your target audience. |
2022-10-24 14:57:22 +0200 | <Profpatsch> | Part of a production codebase is reducing the mental overhead of how things work |
2022-10-24 14:57:46 +0200 | <Profpatsch> | I wouldn’t want to explain to a new hire what Kleisli is if they want to understand FieldParser |
2022-10-24 14:57:56 +0200 | axeman | (~quassel@2a02:8109:a380:78:bc30:5eb7:62c9:6689) (Ping timeout: 250 seconds) |
2022-10-24 14:58:05 +0200 | <dminuoso> | Yes, but now you have to explain FieldParser to them |
2022-10-24 14:58:14 +0200 | <Profpatsch> | It’s the classic “Having problem understanding 4 dimensions? Just imagine n dimensions and set n=4!” |
2022-10-24 14:58:16 +0200 | <dminuoso> | And why you have a separate type from Parser (from say attoparseec) |
2022-10-24 14:58:32 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
2022-10-24 14:59:53 +0200 | <Profpatsch> | dminuoso: one parses horizontally (i.e. from a stream of tokens to a structure), the other vertically (from a bounded value to a smaller bounded value) |
2022-10-24 15:00:18 +0200 | <Profpatsch> | both are mostly orthogonal concepts |
2022-10-24 15:00:27 +0200 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) |
2022-10-24 15:00:40 +0200 | <dminuoso> | My flatparse parser does this by keeping combinators in separate modules. *shrugs* |
2022-10-24 15:00:40 +0200 | Guest16 | (~Guest16@p200300ef971835175dc5e8e509d3babc.dip0.t-ipconnect.de) |
2022-10-24 15:00:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-10-24 15:01:05 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Ping timeout: 272 seconds) |
2022-10-24 15:01:10 +0200 | <dminuoso> | That is, I have a Foo.Lexer module which exposes `Get T` type of things that parse tokens, and Foo.Parser that uses Foo.Lexer combinators to produce high level things |
2022-10-24 15:01:18 +0200 | <dminuoso> | It's all just `Get a` |
2022-10-24 15:01:27 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
2022-10-24 15:01:50 +0200 | <Profpatsch> | dminuoso: is flatparse a Haskell version of nom? |
2022-10-24 15:01:55 +0200 | <dminuoso> | Yes |
2022-10-24 15:02:02 +0200 | <Profpatsch> | dminuoso: pretty cool, I might want to use that |
2022-10-24 15:02:48 +0200 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) (Remote host closed the connection) |
2022-10-24 15:03:00 +0200 | <Profpatsch> | dminuoso: Ah, I had never mapped your IRC nick to your github handle before |
2022-10-24 15:03:18 +0200 | <Profpatsch> | dminuoso: were you at Zurihac and/or Munihac? |
2022-10-24 15:03:42 +0200 | <dminuoso> | We met at Zurihac |
2022-10-24 15:04:05 +0200 | <Profpatsch> | Me and my brain are best frens |
2022-10-24 15:04:47 +0200 | <Profpatsch> | dminuoso: the good thing, this way my brain can meet you next Zurihac, for the first time, all over again! |
2022-10-24 15:06:09 +0200 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) |
2022-10-24 15:06:13 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-10-24 15:06:30 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 15:12:11 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 276 seconds) |
2022-10-24 15:12:47 +0200 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
2022-10-24 15:13:22 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Read error: Connection timed out) |
2022-10-24 15:15:36 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 15:16:01 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:d960:d98a:f624:8ef) (Read error: Connection reset by peer) |
2022-10-24 15:16:11 +0200 | sameer | (~sameer@2409:4070:2d3d:53f6::c049:8101) |
2022-10-24 15:18:19 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-10-24 15:23:51 +0200 | Guest16 | (~Guest16@p200300ef971835175dc5e8e509d3babc.dip0.t-ipconnect.de) (Quit: Client closed) |
2022-10-24 15:24:03 +0200 | <tdammers> | heh... I, for one, am not always on speaking terms with my brain :D |
2022-10-24 15:24:22 +0200 | <merijn> | tdammers: facts |
2022-10-24 15:24:30 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds) |
2022-10-24 15:24:45 +0200 | <merijn> | Hell, most of my body tends to occasionally not be on speaking terms :p |
2022-10-24 15:25:19 +0200 | geekosaur | resembles that one |
2022-10-24 15:26:35 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-10-24 15:28:09 +0200 | beteigeuze1 | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) |
2022-10-24 15:29:44 +0200 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 276 seconds) |
2022-10-24 15:29:44 +0200 | beteigeuze1 | beteigeuze |
2022-10-24 15:31:06 +0200 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) (Remote host closed the connection) |
2022-10-24 15:31:30 +0200 | chomwitt | (~chomwitt@2a02:587:dc10:8200:1ac0:4dff:fedb:a3f1) |
2022-10-24 15:32:17 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2022-10-24 15:32:42 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
2022-10-24 15:32:45 +0200 | ystael | (~ystael@user/ystael) |
2022-10-24 15:33:38 +0200 | acidjnk | (~acidjnk@p200300d6e7137a399c67b611784f46e2.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2022-10-24 15:34:39 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 15:34:43 +0200 | mrvdb | (~mrvdb@2001:19f0:5000:8582:5400:ff:fe07:3df5) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-10-24 15:35:30 +0200 | mrvdb | (~mrvdb@185.92.221.186) |
2022-10-24 15:35:57 +0200 | <Profpatsch> | Okay, weird error: I changed some -> IO a to Applicative m => … -> m a |
2022-10-24 15:36:09 +0200 | <Profpatsch> | And suddenly a TypeApplication does not type check anymore |
2022-10-24 15:36:59 +0200 | <Profpatsch> | foo @Bar a b <- “Cannot apply expression of type a0 -> b -> a0 to visible type argument Bar” |
2022-10-24 15:37:22 +0200 | <Profpatsch> | Is this some weird interaction between the ApplicativeDo desugaring and TypeApplications? |
2022-10-24 15:37:36 +0200 | <Profpatsch> | the definition of `foo` is in a let-block above the code that fails |
2022-10-24 15:37:45 +0200 | <Profpatsch> | I will try moving it into a where clause, maybe this helps |
2022-10-24 15:38:15 +0200 | <Profpatsch> | Removing the type application seems to work, but that’s bad for code readability |
2022-10-24 15:39:06 +0200 | <lortabac> | are there other type variables in the signature before 'm'? |
2022-10-24 15:39:15 +0200 | <Profpatsch> | oh huh moving it to the where seems to work |
2022-10-24 15:39:28 +0200 | <Profpatsch> | lortabac: no, just the m |
2022-10-24 15:39:46 +0200 | <Profpatsch> | I’m a bit too lazy to produce a minimal example right now |
2022-10-24 15:40:13 +0200 | <Profpatsch> | It might interact with the enabled extensions in a weird way |
2022-10-24 15:40:20 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-10-24 15:41:06 +0200 | <Profpatsch> | I guess GHC removes the `a` from the definition of `foo` before it actually does the TypeApplication, so it’s gone at that point |
2022-10-24 15:43:07 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 15:45:35 +0200 | <Profpatsch> | funny, interspersing a `let` between the last _ <- ma and the final `pure $ …` will also switch from Applicative to Monad |
2022-10-24 15:45:40 +0200 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 244 seconds) |
2022-10-24 15:45:43 +0200 | <Profpatsch> | ApplicativeDo is really unstable holy crap |
2022-10-24 15:47:22 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Remote host closed the connection) |
2022-10-24 15:47:34 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 15:48:17 +0200 | <Profpatsch> | Ah, the algorithm is O(n^2) well |
2022-10-24 15:51:57 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2022-10-24 15:52:32 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-10-24 15:52:32 +0200 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-10-24 15:52:32 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-10-24 15:56:21 +0200 | BananaKing69441 | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 15:56:38 +0200 | BananaKing69441 | (~BananaKin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Client Quit) |
2022-10-24 15:57:04 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) () |
2022-10-24 15:57:20 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 15:57:40 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 15:58:16 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 15:58:56 +0200 | BananaKing694 | j4cc3b_ |
2022-10-24 15:59:29 +0200 | j4cc3b_ | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Client Quit) |
2022-10-24 16:01:08 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 16:02:29 +0200 | <kuribas> | Profpatsch: maybe the `m` is not the first type argument of foo? |
2022-10-24 16:02:32 +0200 | <kuribas> | now |
2022-10-24 16:03:57 +0200 | akegalj | (~akegalj@93-138-77-86.adsl.net.t-com.hr) (Quit: leaving) |
2022-10-24 16:04:33 +0200 | <Profpatsch> | kuribas: I had foo defined as let foo :: Read a -> a -> Maybe Text -> a |
2022-10-24 16:04:39 +0200 | <Profpatsch> | So m did not even appear in foo’s signature |
2022-10-24 16:04:48 +0200 | <Profpatsch> | I wanted to instantiate the `a` |
2022-10-24 16:05:30 +0200 | BananaKing694 | (~bananakin@pool-74-105-2-138.nwrknj.fios.verizon.net) (Remote host closed the connection) |
2022-10-24 16:05:31 +0200 | <Profpatsch> | Which is why I’m confused why the `a` suddenly disappears when you switch the m of the do-block outside from IO to Applicative m |
2022-10-24 16:05:43 +0200 | <Profpatsch> | and switch on ApplicativeDo |
2022-10-24 16:05:54 +0200 | <geekosaur> | is one of those ->s supposed to be a =>? |
2022-10-24 16:05:59 +0200 | <Profpatsch> | geekosaur: yes |
2022-10-24 16:06:02 +0200 | <Profpatsch> | the first |
2022-10-24 16:06:29 +0200 | <Profpatsch> | I thought maybe ScopedTypeVariables might fix it, but it doesn’t look like it does |
2022-10-24 16:06:32 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2022-10-24 16:06:40 +0200 | <Profpatsch> | moving the definition of foo from let to a where fixes it |
2022-10-24 16:06:48 +0200 | <Profpatsch> | I guess I can live with that |
2022-10-24 16:07:19 +0200 | <geekosaur> | istr that applicativedo has issues whth lets |
2022-10-24 16:07:33 +0200 | <Profpatsch> | geekosaur: is that a well-known fact? |
2022-10-24 16:07:58 +0200 | <geekosaur> | it's well known that it has lots of oddities and failure modes that "ought to" work |
2022-10-24 16:08:02 +0200 | <Profpatsch> | I’d prefer a separate `ado` tbh |
2022-10-24 16:08:07 +0200 | <geekosaur> | it's really fragile |
2022-10-24 16:08:09 +0200 | <Profpatsch> | or something along those lines |
2022-10-24 16:08:42 +0200 | <tdammers> | I'm still pretty convinced that there's no fundamental reason why applicative do couldn't work, but the problem seems to be that it's an afterthought |
2022-10-24 16:08:48 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-10-24 16:09:00 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 16:09:29 +0200 | <kuribas> | Profpatsch: ApplicativeDo is quit buggy. |
2022-10-24 16:09:39 +0200 | <Profpatsch> | Hrm, maybe I’m gonna do Overloaded-Do and have a module for Applicative |
2022-10-24 16:09:42 +0200 | <Profpatsch> | Applicative.do |
2022-10-24 16:09:45 +0200 | <Profpatsch> | should work, no? |
2022-10-24 16:10:19 +0200 | <kuribas> | it also doesn't handle some obvious stuff, like let bindings. |
2022-10-24 16:10:36 +0200 | <kuribas> | Still, it's pretty handy with records. |
2022-10-24 16:11:07 +0200 | <Profpatsch> | Ah no, QualifiedDo just converts <- to >>= |
2022-10-24 16:12:31 +0200 | <Profpatsch> | You can always “prove” that it’s not Monad by returning `Applicative m => … -> m` and passing all required functions in `m` as arguments |
2022-10-24 16:12:42 +0200 | <Profpatsch> | I think that’s okay-ish |
2022-10-24 16:13:57 +0200 | <Profpatsch> | although … hm … that might not work with mtl-style class functions since they always depend on Monad |
2022-10-24 16:14:14 +0200 | <Profpatsch> | nvm it does |
2022-10-24 16:14:26 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Quit: Client closed) |
2022-10-24 16:14:35 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 276 seconds) |
2022-10-24 16:14:37 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 16:18:04 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-24 16:19:35 +0200 | LukeHoersten_ | (~LukeHoers@user/lukehoersten) |
2022-10-24 16:20:47 +0200 | LukeHoersten__ | (~LukeHoers@user/lukehoersten) |
2022-10-24 16:21:06 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) (Ping timeout: 260 seconds) |
2022-10-24 16:23:47 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 272 seconds) |
2022-10-24 16:24:10 +0200 | LukeHoersten_ | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
2022-10-24 16:27:19 +0200 | Guest51 | (~Guest51@50.47.90.28) |
2022-10-24 16:28:33 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) |
2022-10-24 16:30:31 +0200 | <kuribas> | :t ask |
2022-10-24 16:30:32 +0200 | <lambdabot> | MonadReader r m => m r |
2022-10-24 16:31:32 +0200 | LukeHoersten__ | (~LukeHoers@user/lukehoersten) (Ping timeout: 250 seconds) |
2022-10-24 16:31:52 +0200 | <kuribas> | Profpatsch: why do you need to prove it's not a Monad? A Monad is an Applicative too :) |
2022-10-24 16:32:46 +0200 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
2022-10-24 16:37:56 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-10-24 16:40:08 +0200 | rembo10 | (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-10-24 16:40:56 +0200 | jonathanx | (~jonathan@94.234.103.139) |
2022-10-24 16:42:21 +0200 | rembo10 | (~rembo10@main.remulis.com) |
2022-10-24 16:43:27 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-10-24 16:43:29 +0200 | glguy | (~glguy@libera/staff-emeritus/glguy) |
2022-10-24 16:44:18 +0200 | alternateved | (~user@staticline-31-183-175-205.toya.net.pl) (Remote host closed the connection) |
2022-10-24 16:46:50 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
2022-10-24 16:47:05 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-10-24 16:48:33 +0200 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-10-24 16:49:03 +0200 | edrx | (~Eduardo@2804:56c:d2d8:400:7ffb:83a1:5d67:a122) |
2022-10-24 16:49:44 +0200 | jonathanx | (~jonathan@94.234.103.139) (Ping timeout: 250 seconds) |
2022-10-24 16:50:43 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: Textual IRC Client: www.textualapp.com) |
2022-10-24 16:51:55 +0200 | sameer | (~sameer@2409:4070:2d3d:53f6::c049:8101) (Ping timeout: 272 seconds) |
2022-10-24 16:52:50 +0200 | sameer | (~sameer@2409:4070:6e10:74c0::81c8:d301) |
2022-10-24 17:03:43 +0200 | <edrx> | hi all... this is slightly off-topic, but right now this channel is the only in which I think I can an answer in less than one hour... =/ I'm trying to learn Tikz - mostly to draw string diagrams - and I'm mostly trying to translate its high-level constructs into lower-level ones... |
2022-10-24 17:04:52 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 17:05:24 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 17:06:19 +0200 | <edrx> | but 1) I don't know if the two notions of "rectangle" below can be integrated, and how... and 2) I don't know any chats in which I can ask those questions. Any ideas? |
2022-10-24 17:07:03 +0200 | <edrx> | http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf#page=34 |
2022-10-24 17:07:11 +0200 | <edrx> | http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf#page=785 |
2022-10-24 17:08:50 +0200 | Guest51 | (~Guest51@50.47.90.28) |
2022-10-24 17:11:38 +0200 | axeman | (~quassel@2a02:8109:a380:78:7810:2127:b425:57c7) |
2022-10-24 17:13:05 +0200 | motherfsck | (~motherfsc@user/motherfsck) (Ping timeout: 276 seconds) |
2022-10-24 17:15:38 +0200 | Guest2956 | (~Guest29@pool-108-54-69-191.nycmny.fios.verizon.net) |
2022-10-24 17:15:55 +0200 | <Guest2956> | why is this outputting an error? |
2022-10-24 17:16:00 +0200 | <Guest2956> | *Main> mapMaybe (+2) [Just 10, Nothing] |
2022-10-24 17:16:01 +0200 | <Guest2956> | <interactive>:15:1: error: |
2022-10-24 17:16:01 +0200 | <Guest2956> | • Non type-variable argument in the constraint: Num (Maybe b) |
2022-10-24 17:16:02 +0200 | <Guest2956> | (Use FlexibleContexts to permit this) |
2022-10-24 17:16:02 +0200 | <Guest2956> | • When checking the inferred type |
2022-10-24 17:16:03 +0200 | <Guest2956> | it :: forall b. (Num b, Num (Maybe b)) => [b] |
2022-10-24 17:16:50 +0200 | <merijn> | :t mapMaybe |
2022-10-24 17:16:51 +0200 | <lambdabot> | (a -> Maybe b) -> [a] -> [b] |
2022-10-24 17:17:08 +0200 | <merijn> | (+2) does not return a Maybe |
2022-10-24 17:17:30 +0200 | <merijn> | Or rather |
2022-10-24 17:17:37 +0200 | <geekosaur> | I think you have the sense of mapMaybe reversed |
2022-10-24 17:17:38 +0200 | <merijn> | :t (+2) |
2022-10-24 17:17:39 +0200 | <lambdabot> | Num a => a -> a |
2022-10-24 17:18:09 +0200 | <merijn> | It's interpreting "(+2)" as having type "Num (Maybe b) => Maybe b -> Maybe b" |
2022-10-24 17:18:46 +0200 | Guest51 | (~Guest51@50.47.90.28) (Quit: Client closed) |
2022-10-24 17:19:03 +0200 | Everything | (~Everythin@static.208.206.21.65.clients.your-server.de) |
2022-10-24 17:22:53 +0200 | <Guest2956> | can you give an example of a correct function using mapMaybe? |
2022-10-24 17:22:56 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
2022-10-24 17:26:32 +0200 | <ridcully> | Data.Maybe.mapMaybe Data.Maybe.listToMaybe [[], [1]] |
2022-10-24 17:26:33 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 17:28:47 +0200 | juri_ | (~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 260 seconds) |
2022-10-24 17:29:00 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds) |
2022-10-24 17:30:03 +0200 | motherfsck | (~motherfsc@user/motherfsck) |
2022-10-24 17:30:04 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:ad98:9d00:b84f:455) (Quit: WeeChat 2.8) |
2022-10-24 17:32:11 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-240.elisa-laajakaista.fi) |
2022-10-24 17:33:02 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-10-24 17:33:30 +0200 | axeman | (~quassel@2a02:8109:a380:78:7810:2127:b425:57c7) (Ping timeout: 250 seconds) |
2022-10-24 17:37:46 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-10-24 17:40:27 +0200 | <merijn> | > let x `divBy` y | y == 0 = Nothing; | otherwise = Just (x `div` y) in 5 `divBy` 2 |
2022-10-24 17:40:37 +0200 | <lambdabot> | <hint>:1:37: error: parse error on input ‘|’ |
2022-10-24 17:40:43 +0200 | <merijn> | bah |
2022-10-24 17:40:45 +0200 | <merijn> | ok, I don't know how to do guards to an easy example :p |
2022-10-24 17:44:02 +0200 | boxscape_ | (~boxscape_@81.191.27.107) |
2022-10-24 17:44:21 +0200 | jespada | (~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com) |
2022-10-24 17:46:04 +0200 | danza | (~francesco@151.43.124.110) (Ping timeout: 250 seconds) |
2022-10-24 17:46:46 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-10-24 17:48:11 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-10-24 17:49:15 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7) |
2022-10-24 17:49:36 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-10-24 17:49:40 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
2022-10-24 17:50:26 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 17:51:58 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) |
2022-10-24 17:52:02 +0200 | <geekosaur> | drop the semicolon |
2022-10-24 17:52:15 +0200 | <geekosaur> | > let x `divBy` y | y == 0 = Nothing | otherwise = Just (x `div` y) in 5 `divBy` 2 |
2022-10-24 17:52:17 +0200 | <lambdabot> | Just 2 |
2022-10-24 17:53:23 +0200 | <Profpatsch> | kuribas: because I can do more with an Applicative than what I can do with a Monad |
2022-10-24 17:56:28 +0200 | darkstardevx | (~darkstard@50.126.124.156) (Ping timeout: 250 seconds) |
2022-10-24 17:57:20 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-10-24 17:58:53 +0200 | danza | (~francesco@rm-19-18-125.service.infuturo.it) |
2022-10-24 17:59:30 +0200 | juri_ | (~juri@79.140.114.58) |
2022-10-24 18:06:11 +0200 | edrx | (~Eduardo@2804:56c:d2d8:400:7ffb:83a1:5d67:a122) (Killed buffer) |
2022-10-24 18:07:00 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
2022-10-24 18:07:18 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-10-24 18:10:11 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
2022-10-24 18:10:17 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 276 seconds) |
2022-10-24 18:11:09 +0200 | erisco_ | (~erisco@d24-141-66-165.home.cgocable.net) |
2022-10-24 18:11:42 +0200 | econo | (uid147250@user/econo) |
2022-10-24 18:13:28 +0200 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 268 seconds) |
2022-10-24 18:13:28 +0200 | erisco_ | erisco |
2022-10-24 18:14:56 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 18:18:41 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 18:23:28 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 18:23:37 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 18:24:46 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 18:31:47 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 18:34:27 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 18:36:56 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 276 seconds) |
2022-10-24 18:38:23 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
2022-10-24 18:39:31 +0200 | acidjnk | (~acidjnk@p54ad5adb.dip0.t-ipconnect.de) |
2022-10-24 18:40:06 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
2022-10-24 18:41:04 +0200 | cytokine_storm | (~cytokine_@user/cytokine-storm/x-1083107) |
2022-10-24 18:41:07 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-24 18:43:37 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Quit: Client closed) |
2022-10-24 18:44:01 +0200 | siraben | (~siraben@user/siraben) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | ormaaj | (~ormaaj@user/ormaaj) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | mekeor[m] | (~mekeormat@2001:470:69fc:105::17e4) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:01 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | famubu[m] | (~famubumat@2001:470:69fc:105::1081) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | sm | (~sm@plaintextaccounting/sm) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | Tisoxin | (~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | vladan[m] | (~vladanmat@2001:470:69fc:105::2:24df) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | jinsun_ | (~jinsun@user/jinsun) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | nicmollel[m] | (~nicmollel@2001:470:69fc:105::1:feeb) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | aviladev[m] | (~aviladevm@2001:470:69fc:105::1:cbc7) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | cp1313[m] | (~cp1313mat@2001:470:69fc:105::2:9293) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | loosh[m] | (~looshchat@2001:470:69fc:105::2:5ddd) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | Deide | (~deide@user/deide) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | chreekat | (~chreekat@2001:470:69fc:105::16b5) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | sektor[m] | (~sektor@2001:470:69fc:105::2:3f60) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | fr33domlover[m] | (~fr33domlo@2001:470:69fc:105::1:3bb6) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | lawt | (~lawtonmat@2001:470:69fc:105::2:97b8) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | BB[m] | (~cashmagem@2001:470:69fc:105::f6dc) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | jmcantrell | (~jmcantrel@user/jmcantrell) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | schuelermine[m] | (~schuelerm@user/schuelermine) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:02 +0200 | olivermead[m] | (~olivermea@2001:470:69fc:105::2:4289) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | SridharRatnakuma | (~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | aaronv | (~aaronv@user/aaronv) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | baaash[m] | (~baaashmat@2001:470:69fc:105::2:1e90) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | jz99[m] | (~jz99matri@2001:470:69fc:105::1:d5f1) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | foghorn | (~foghorn@user/foghorn) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | drsooch[m] | (~drsoochma@2001:470:69fc:105::1:c8a1) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | july541[m] | (~july541ma@2001:470:69fc:105::1:e416) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | expipiplus1 | (~expipiplu@2001:470:69fc:105::d713) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | sibnull[m] | (~sibnullma@2001:470:69fc:105::1:1291) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | silky[m] | (~noonvande@2001:470:69fc:105::2:943c) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | rockymarine[m] | (~rockymari@2001:470:69fc:105::2:9a0c) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | CeNiEi[m] | (~cenieimat@2001:470:69fc:105::1:894c) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | pareto-optimal-d | (~pareto-op@2001:470:69fc:105::1:b61f) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | cafkafk[m] | (~cafkafkma@2001:470:69fc:105::1:cea8) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | jbggs[m] | (~jbggsmatr@2001:470:69fc:105::2:995f) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | M3g-mentok[m] | (~M3g-mento@2001:470:69fc:105::2:9a49) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:03 +0200 | weeezes[m] | (~weeezesma@2001:470:69fc:105::1:da65) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:04 +0200 | Neosake[m] | (~neosakema@2001:470:69fc:105::2:989e) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:04 +0200 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:04 +0200 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:05 +0200 | disco-dave[m] | (~disco-dav@2001:470:69fc:105::2:1892) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:05 +0200 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:05 +0200 | kiri1606[m] | (~kiri1606m@2001:470:69fc:105::2:8ec9) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:05 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:05 +0200 | JonathanWatson[m | (~jjwmatrix@2001:470:69fc:105::2:a544) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:13 +0200 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:13 +0200 | psydroid | (~psydroid@user/psydroid) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:13 +0200 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:14 +0200 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:14 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:14 +0200 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:14 +0200 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:14 +0200 | mesaoptimizer2 | (~mesaoptim@user/PapuaHardyNet) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:14 +0200 | kadoban | (~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:18 +0200 | RowanG[m] | (~rowang077@2001:470:69fc:105::1:ca9f) (Quit: Bridge terminating on SIGTERM) |
2022-10-24 18:44:22 +0200 | <cheater> | what's your favourite clean way to do this without writing your own recursion? myLoop acc = do { ended <- ioIsEnded; if ended { putStrLn "ended" } else { x <- myIO; let acc = pureFun acc x; myLoop acc; } |
2022-10-24 18:45:17 +0200 | danza | (~francesco@rm-19-18-125.service.infuturo.it) (Read error: Connection reset by peer) |
2022-10-24 18:45:29 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 18:45:41 +0200 | danza | (~francesco@rm-19-18-125.service.infuturo.it) |
2022-10-24 18:45:41 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-10-24 18:46:52 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-10-24 18:48:16 +0200 | <Rembane> | cheater: Perhaps using whileM? https://hackage.haskell.org/package/monad-loops-0.4.3/docs/Control-Monad-Loops.html |
2022-10-24 18:48:24 +0200 | fgaz | (~fgaz@2001:470:69fc:105::842) |
2022-10-24 18:48:36 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-24 18:48:42 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2022-10-24 18:49:28 +0200 | <cheater> | i'm just wondering what everyone uses since it's a good idea to ask about simple stuff like that |
2022-10-24 18:49:30 +0200 | peddie | (~peddie@2001:470:69fc:105::25d) |
2022-10-24 18:49:30 +0200 | ericson2314 | (~ericson23@2001:470:69fc:105::70c) |
2022-10-24 18:49:30 +0200 | famubu[m] | (~famubumat@2001:470:69fc:105::1081) |
2022-10-24 18:49:30 +0200 | maralorn | (~maralorn@2001:470:69fc:105::251) |
2022-10-24 18:49:30 +0200 | sm | (~sm@plaintextaccounting/sm) |
2022-10-24 18:49:42 +0200 | Christoph[m] | (~hpotsirhc@2001:470:69fc:105::2ff8) |
2022-10-24 18:49:42 +0200 | ongy[m] | (~ongymatri@2001:470:69fc:105::5018) |
2022-10-24 18:49:56 +0200 | kiri1606[m] | (~kiri1606m@2001:470:69fc:105::2:8ec9) |
2022-10-24 18:49:56 +0200 | siraben | (~siraben@user/siraben) |
2022-10-24 18:50:08 +0200 | july541[m] | (~july541ma@2001:470:69fc:105::1:e416) |
2022-10-24 18:50:09 +0200 | smichel17[m] | (~smichel17@2001:470:69fc:105::2d32) |
2022-10-24 18:50:21 +0200 | SridharRatnakuma | (~sridmatri@2001:470:69fc:105::1c2) |
2022-10-24 18:50:22 +0200 | chreekat | (~chreekat@2001:470:69fc:105::16b5) |
2022-10-24 18:50:23 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
2022-10-24 18:50:28 +0200 | <cheater> | whileM keeps a partial list around |
2022-10-24 18:50:43 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 272 seconds) |
2022-10-24 18:50:49 +0200 | <cheater> | but i guess i actually do need to keep one hmm |
2022-10-24 18:50:56 +0200 | sibnull[m] | (~sibnullma@2001:470:69fc:105::1:1291) |
2022-10-24 18:51:10 +0200 | expipiplus1 | (~expipiplu@2001:470:69fc:105::d713) |
2022-10-24 18:51:22 +0200 | ManofLetters[m] | (~manoflett@2001:470:69fc:105::3be) |
2022-10-24 18:51:22 +0200 | fendor[m] | (~fendormat@2001:470:69fc:105::fcbd) |
2022-10-24 18:51:37 +0200 | bb010g | (~bb010g@2001:470:69fc:105::9a5) |
2022-10-24 18:51:37 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) |
2022-10-24 18:51:37 +0200 | jmcantrell | (~jmcantrel@user/jmcantrell) |
2022-10-24 18:51:38 +0200 | maerwald[m] | (~maerwaldm@2001:470:69fc:105::1ee) |
2022-10-24 18:51:38 +0200 | jinsun_ | (~jinsun@user/jinsun) |
2022-10-24 18:51:38 +0200 | romes[m] | (~romesmatr@2001:470:69fc:105::2:1660) |
2022-10-24 18:51:38 +0200 | JensPetersen[m] | (~juhp@2001:470:69fc:105::6e9) |
2022-10-24 18:51:38 +0200 | ormaaj | (~ormaaj@user/ormaaj) |
2022-10-24 18:51:38 +0200 | cp1313[m] | (~cp1313mat@2001:470:69fc:105::2:9293) |
2022-10-24 18:51:38 +0200 | kadoban | (~kadoban@user/kadoban) |
2022-10-24 18:51:38 +0200 | BB[m] | (~cashmagem@2001:470:69fc:105::f6dc) |
2022-10-24 18:51:39 +0200 | Guillaum[m] | (~guiboumat@2001:470:69fc:105::1:72ac) |
2022-10-24 18:51:53 +0200 | silky[m] | (~noonvande@2001:470:69fc:105::2:943c) |
2022-10-24 18:51:54 +0200 | nicmollel[m] | (~nicmollel@2001:470:69fc:105::1:feeb) |
2022-10-24 18:51:54 +0200 | RosarioPulella[m | (~rosariopu@2001:470:69fc:105::a57) |
2022-10-24 18:51:54 +0200 | alexfmpe[m] | (~alexfmpem@2001:470:69fc:105::38ba) |
2022-10-24 18:51:54 +0200 | jneira[m] | (~jneiramat@2001:470:69fc:105::d729) |
2022-10-24 18:51:54 +0200 | Matthew|m | (~arathorn@2001:470:69fc:105::1f) |
2022-10-24 18:51:54 +0200 | lawt | (~lawtonmat@2001:470:69fc:105::2:97b8) |
2022-10-24 18:51:54 +0200 | RowanG[m] | (~rowang077@2001:470:69fc:105::1:ca9f) |
2022-10-24 18:51:54 +0200 | Morrow[m] | (~morrowmma@2001:470:69fc:105::1d0) |
2022-10-24 18:51:54 +0200 | vaibhavsagar[m] | (~vaibhavsa@2001:470:69fc:105::ffe) |
2022-10-24 18:52:06 +0200 | CeNiEi[m] | (~cenieimat@2001:470:69fc:105::1:894c) |
2022-10-24 18:52:08 +0200 | drsooch[m] | (~drsoochma@2001:470:69fc:105::1:c8a1) |
2022-10-24 18:52:08 +0200 | olivermead[m] | (~olivermea@2001:470:69fc:105::2:4289) |
2022-10-24 18:52:21 +0200 | Neosake[m] | (~neosakema@2001:470:69fc:105::2:989e) |
2022-10-24 18:52:34 +0200 | aidy | (~aidy@2001:470:69fc:105::c7b4) |
2022-10-24 18:52:46 +0200 | jbggs[m] | (~jbggsmatr@2001:470:69fc:105::2:995f) |
2022-10-24 18:52:58 +0200 | rockymarine[m] | (~rockymari@2001:470:69fc:105::2:9a0c) |
2022-10-24 18:52:58 +0200 | loosh[m] | (~looshchat@2001:470:69fc:105::2:5ddd) |
2022-10-24 18:53:10 +0200 | M3g-mentok[m] | (~M3g-mento@2001:470:69fc:105::2:9a49) |
2022-10-24 18:53:24 +0200 | disco-dave[m] | (~disco-dav@2001:470:69fc:105::2:1892) |
2022-10-24 18:53:25 +0200 | Orbstheorem | (~orbstheor@2001:470:69fc:105::a56) |
2022-10-24 18:53:25 +0200 | Tisoxin | (~ikosit@user/ikosit) |
2022-10-24 18:53:25 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
2022-10-24 18:53:25 +0200 | Artem[m] | (~artemtype@2001:470:69fc:105::75b) |
2022-10-24 18:53:26 +0200 | foghorn | (~foghorn@user/foghorn) |
2022-10-24 18:53:26 +0200 | unclechu | (~unclechu@2001:470:69fc:105::354) |
2022-10-24 18:53:26 +0200 | baaash[m] | (~baaashmat@2001:470:69fc:105::2:1e90) |
2022-10-24 18:53:26 +0200 | mimi1vx[m] | (~osukupmat@2001:470:69fc:105::2:418d) |
2022-10-24 18:53:26 +0200 | sektor[m] | (~sektor@2001:470:69fc:105::2:3f60) |
2022-10-24 18:53:38 +0200 | Clinton[m] | (~clintonme@2001:470:69fc:105::2:31d4) |
2022-10-24 18:53:38 +0200 | mekeor[m] | (~mekeormat@2001:470:69fc:105::17e4) |
2022-10-24 18:53:38 +0200 | vladan[m] | (~vladanmat@2001:470:69fc:105::2:24df) |
2022-10-24 18:53:38 +0200 | elvishjerricco | (~elvishjer@2001:470:69fc:105::6172) |
2022-10-24 18:53:39 +0200 | geekosaur[m] | (~geekosaur@xmonad/geekosaur) |
2022-10-24 18:53:39 +0200 | VarikValefor[m] | (~varikvale@2001:470:69fc:105::a5d) |
2022-10-24 18:53:39 +0200 | jz99[m] | (~jz99matri@2001:470:69fc:105::1:d5f1) |
2022-10-24 18:53:39 +0200 | nomagno | (~nomagno@2001:470:69fc:105::c1f0) |
2022-10-24 18:53:39 +0200 | jean-paul[m] | (~jean-paul@2001:470:69fc:105::d1ab) |
2022-10-24 18:53:39 +0200 | aviladev[m] | (~aviladevm@2001:470:69fc:105::1:cbc7) |
2022-10-24 18:53:39 +0200 | Deide | (~deide@user/deide) |
2022-10-24 18:53:39 +0200 | fr33domlover[m] | (~fr33domlo@2001:470:69fc:105::1:3bb6) |
2022-10-24 18:53:54 +0200 | afotgkmnzj7asv3r | (~afotgkmnz@2001:470:69fc:105::c24b) |
2022-10-24 18:53:55 +0200 | cafkafk[m] | (~cafkafkma@2001:470:69fc:105::1:cea8) |
2022-10-24 18:53:56 +0200 | VanceIsM7[m] | (~vanceism7@2001:470:69fc:105::3ad) |
2022-10-24 18:54:10 +0200 | juri_ | (~juri@79.140.114.58) (Read error: Connection reset by peer) |
2022-10-24 18:54:31 +0200 | pareto-optimal-d | (~pareto-op@2001:470:69fc:105::1:b61f) |
2022-10-24 18:54:34 +0200 | SeanKing[m] | (~seankingm@2001:470:69fc:105::cf9c) |
2022-10-24 18:54:35 +0200 | aaronv | (~aaronv@user/aaronv) |
2022-10-24 18:54:35 +0200 | MangoIV[m] | (~mangoivma@2001:470:69fc:105::2:8417) |
2022-10-24 18:54:35 +0200 | psydroid | (~psydroid@user/psydroid) |
2022-10-24 18:54:35 +0200 | schuelermine[m] | (~schuelerm@user/schuelermine) |
2022-10-24 18:54:35 +0200 | mesaoptimizer2 | (~mesaoptim@user/PapuaHardyNet) |
2022-10-24 18:54:47 +0200 | JonathanWatson[m | (~jjwmatrix@2001:470:69fc:105::2:a544) |
2022-10-24 18:54:59 +0200 | weeezes[m] | (~weeezesma@2001:470:69fc:105::1:da65) |
2022-10-24 18:57:57 +0200 | juri_ | (~juri@79.140.114.58) |
2022-10-24 19:00:08 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-10-24 19:01:01 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-10-24 19:01:52 +0200 | Guest2956 | (~Guest29@pool-108-54-69-191.nycmny.fios.verizon.net) (Quit: Client closed) |
2022-10-24 19:02:36 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
2022-10-24 19:03:10 +0200 | juri_ | (~juri@79.140.114.58) (Ping timeout: 252 seconds) |
2022-10-24 19:03:12 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:f433:1323:4e67:752d) |
2022-10-24 19:04:04 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) |
2022-10-24 19:04:21 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-24 19:04:52 +0200 | juri_ | (~juri@84-19-175-179.pool.ovpn.com) |
2022-10-24 19:06:50 +0200 | rockystone | (~rocky@user/rockymarine) (Read error: Connection reset by peer) |
2022-10-24 19:07:32 +0200 | nschoe | (~q@141.101.51.197) (Ping timeout: 250 seconds) |
2022-10-24 19:08:14 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-10-24 19:09:27 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-10-24 19:10:08 +0200 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
2022-10-24 19:10:11 +0200 | zer0bitz_ | (~zer0bitz@2001:2003:f748:2000:48a6:74bf:500d:5c90) |
2022-10-24 19:10:24 +0200 | boxscape_ | (~boxscape_@81.191.27.107) |
2022-10-24 19:11:37 +0200 | littlefinger | (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) |
2022-10-24 19:12:19 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:f433:1323:4e67:752d) (Ping timeout: 255 seconds) |
2022-10-24 19:12:45 +0200 | kuribas | (~user@ptr-17d51emnxyldefiap63.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1)) |
2022-10-24 19:13:15 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-10-24 19:15:00 +0200 | oak- | (~oakuniver@2001:470:69fc:105::fcd) (Quit: Reconnecting) |
2022-10-24 19:15:16 +0200 | oak- | (~oak-@2001:470:69fc:105::fcd) |
2022-10-24 19:17:05 +0200 | darkstardevx | (~darkstard@50.126.124.156) |
2022-10-24 19:17:36 +0200 | kimjetwav | (~user@2607:fea8:235e:b600:b115:f56:940e:2252) |
2022-10-24 19:22:45 +0200 | ghoulpine | (xfnw@tilde.team) (Quit: Connection reset by purr) |
2022-10-24 19:24:14 +0200 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
2022-10-24 19:24:31 +0200 | boxscape_ | (~boxscape_@81.191.27.107) |
2022-10-24 19:25:44 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds) |
2022-10-24 19:26:20 +0200 | beteigeuze | (~Thunderbi@2001:8a0:61b5:6101:9233:19e9:6537:6e73) (Ping timeout: 276 seconds) |
2022-10-24 19:30:07 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
2022-10-24 19:30:29 +0200 | axeman | (~quassel@2a02:8109:a380:78:dcd3:d662:889b:778e) |
2022-10-24 19:34:04 +0200 | zebrag | (~chris@user/zebrag) |
2022-10-24 19:35:36 +0200 | gentauro | (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
2022-10-24 19:35:37 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-24 19:36:42 +0200 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-10-24 19:36:55 +0200 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
2022-10-24 19:37:12 +0200 | boxscape_ | (~boxscape_@81.191.27.107) |
2022-10-24 19:37:29 +0200 | slack1256 | (~slack1256@186.11.46.162) |
2022-10-24 19:37:59 +0200 | zer0bitz_ | (~zer0bitz@2001:2003:f748:2000:48a6:74bf:500d:5c90) (Read error: Connection reset by peer) |
2022-10-24 19:40:54 +0200 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 250 seconds) |
2022-10-24 19:41:01 +0200 | gentauro | (~gentauro@user/gentauro) |
2022-10-24 19:43:25 +0200 | <slack1256> | Nixos by default compiles libraries dynamically for haskell projects. IIRC this made monomorphization difficult, is that right? |
2022-10-24 19:43:56 +0200 | cytokine_storm | (~cytokine_@user/cytokine-storm/x-1083107) (Ping timeout: 250 seconds) |
2022-10-24 19:45:45 +0200 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
2022-10-24 19:47:17 +0200 | <dminuoso> | lyxia: Oh gosh! All my mistakes were in assuming the phases went from 0 to 2, but they go backwards. clearly. |
2022-10-24 19:47:34 +0200 | <[exa]> | slack1256: by "monomorphization" you mean "making optimized non-polymorphic variants of functions" right? if so, information for inlining is actually present in .hi files and so the dynamic status of the library doesn't really make much difference |
2022-10-24 19:47:39 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:99dc:7f1f:c53d:641d) |
2022-10-24 19:49:45 +0200 | <dolio> | Dynamic linking doesn't prevent any optimizations, I think. |
2022-10-24 19:50:48 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
2022-10-24 19:50:48 +0200 | <monochrom> | The optimizer stage and the code generator stage are not told about linking options. |
2022-10-24 19:51:02 +0200 | <monochrom> | IOW orthogonal and independent etc. |
2022-10-24 19:51:13 +0200 | <jle`> | nshepperd2: ah, thanks! was curious how it'd look in haskell :) it's a pretty interesting/neat dynamic programming problem |
2022-10-24 19:51:27 +0200 | <dolio> | Which could mean that 'dynamic linking' is meaningless, because all the code from the library has been inlined already. |
2022-10-24 19:51:56 +0200 | <dolio> | Although that's somewhat unlikely in most cases. |
2022-10-24 19:51:57 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
2022-10-24 19:52:29 +0200 | <monochrom> | Oh, in practice inlining happens more often than pessimists think and less often than optimists think. :) |
2022-10-24 19:53:36 +0200 | <dminuoso> | In other words, everybody is wrong? |
2022-10-24 19:53:45 +0200 | <Rembane> | The best kind of wrong! |
2022-10-24 19:53:46 +0200 | <monochrom> | The RTS is never inlined. This is how exe size can be much smaller under dynamic linking. |
2022-10-24 19:53:47 +0200 | <[exa]> | safe assumption. |
2022-10-24 19:55:16 +0200 | <monochrom> | Or rather, this puts an upper bound. |
2022-10-24 19:57:37 +0200 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Ping timeout: 246 seconds) |
2022-10-24 19:58:17 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 19:58:50 +0200 | fserucas|eod | (~fserucas|@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 276 seconds) |
2022-10-24 20:00:46 +0200 | <[exa]> | are there any vital alternatives to haskeline? |
2022-10-24 20:01:38 +0200 | <dminuoso> | There's wizards |
2022-10-24 20:01:52 +0200 | <dminuoso> | Which I guess is just a higher level wrapper around haskeline, but its there. |
2022-10-24 20:03:57 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
2022-10-24 20:06:36 +0200 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) |
2022-10-24 20:07:52 +0200 | boxscape_ | (~boxscape_@81.191.27.107) (Remote host closed the connection) |
2022-10-24 20:08:09 +0200 | boxscape_ | (~boxscape_@81.191.27.107) |
2022-10-24 20:08:52 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-10-24 20:09:21 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) |
2022-10-24 20:14:57 +0200 | Kaipei | (~Kaiepi@108.175.84.104) (Ping timeout: 272 seconds) |
2022-10-24 20:16:13 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 20:17:03 +0200 | <[exa]> | ah ok, let's go haskeline then, thanks :] |
2022-10-24 20:24:06 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-10-24 20:24:33 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-10-24 20:26:21 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2022-10-24 20:29:32 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-10-24 20:32:01 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-10-24 20:39:13 +0200 | barak | (~barak@2a0d:6fc2:68c0:ce00:ef5e:afee:320:8603) |
2022-10-24 20:40:20 +0200 | Everything | (~Everythin@static.208.206.21.65.clients.your-server.de) (Quit: leaving) |
2022-10-24 20:45:44 +0200 | nate2 | (~nate@98.45.169.16) |
2022-10-24 20:50:14 +0200 | nate2 | (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
2022-10-24 20:50:55 +0200 | barak | (~barak@2a0d:6fc2:68c0:ce00:ef5e:afee:320:8603) (Quit: WeeChat 3.7.1) |
2022-10-24 20:52:25 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-10-24 20:58:45 +0200 | Kaipei | (~Kaiepi@108.175.84.104) |
2022-10-24 21:04:29 +0200 | gqplox | (~textual@147.188.245.207) |
2022-10-24 21:04:51 +0200 | <gqplox> | hi ive made a funcitno recursiveConcat :: [[a]] -> [a] |
2022-10-24 21:04:57 +0200 | <gqplox> | recursiveconcat [] = [] |
2022-10-24 21:05:20 +0200 | <gqplox> | reucsriveconcat xxs = head xxs ++ recursiveconcat (tail xxs) |
2022-10-24 21:05:34 +0200 | <gqplox> | it works fine but i don't understand why |
2022-10-24 21:05:52 +0200 | <gqplox> | recursiveconcat xxs = head xxs ++ recursiveconcat $ tail xxs |
2022-10-24 21:05:54 +0200 | <gqplox> | is wrong |
2022-10-24 21:10:58 +0200 | <monochrom> | Oh probably because "foo ++ bar $ x" means "(foo ++ bar) x" not "foo ++ (bar x)" |
2022-10-24 21:11:35 +0200 | <monochrom> | This is why "$ replaces ()" is a naïve model. |
2022-10-24 21:12:05 +0200 | <gqplox> | Wait what |
2022-10-24 21:12:23 +0200 | <gqplox> | i didn't expect that |
2022-10-24 21:12:52 +0200 | <gqplox> | thanks for the reply |
2022-10-24 21:12:57 +0200 | <gqplox> | where should I look to find the 'correct' way of looking at $ then? |
2022-10-24 21:13:22 +0200 | P1RATEZ | (piratez@user/p1ratez) |
2022-10-24 21:13:47 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:8c46:781f:98f3:6c99) |
2022-10-24 21:13:51 +0200 | danza | (~francesco@rm-19-18-125.service.infuturo.it) (Ping timeout: 272 seconds) |
2022-10-24 21:14:07 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-10-24 21:14:17 +0200 | <monochrom> | A combination of operator precedence ($ is lower than all other operators) and the equation (f) $ (x) = (f) (x). |
2022-10-24 21:15:06 +0200 | <monochrom> | If that is too complicated, a simple rule of thumb is "just don't use $". :) |
2022-10-24 21:15:29 +0200 | ft | (~ft@p3e9bc845.dip0.t-ipconnect.de) |
2022-10-24 21:15:43 +0200 | <monochrom> | $ is extremely optional, you can ignore it until you're ready. |
2022-10-24 21:16:40 +0200 | <monochrom> | Explicit parentheses is more explicit and requires less memorizing operator precedence levels. |
2022-10-24 21:17:36 +0200 | <gqplox> | Oh cool I wrote it out and understand how it gets there, thanks |
2022-10-24 21:17:52 +0200 | <gqplox> | Although i think ill only use it for when its completely obvious for now |
2022-10-24 21:19:13 +0200 | vulpine | (xfnw@tilde.team) |
2022-10-24 21:20:38 +0200 | zeenk | (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!) |
2022-10-24 21:22:06 +0200 | redmp | (~redmp@airbears2-136-152-143-223.airbears2.berkeley.edu) |
2022-10-24 21:22:27 +0200 | vulpine | ghoulpine |
2022-10-24 21:22:57 +0200 | ralu1 | (~ralu@static.211.245.203.116.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
2022-10-24 21:22:58 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 272 seconds) |
2022-10-24 21:32:02 +0200 | redmp | (~redmp@airbears2-136-152-143-223.airbears2.berkeley.edu) (Ping timeout: 260 seconds) |
2022-10-24 21:33:44 +0200 | pavonia | (~user@user/siracusa) |
2022-10-24 21:33:46 +0200 | <dminuoso> | monochrom: Mmm, that statement `"foo ++ bar $ x" means "(foo ++ bar) x" not "foo ++ (bar x)"` by itself can be confusing too. |
2022-10-24 21:34:42 +0200 | <monochrom> | How? |
2022-10-24 21:35:03 +0200 | <dminuoso> | I would, for clarity sake, add parens around `x` as well. |
2022-10-24 21:36:38 +0200 | mc47 | (~mc47@xmonad/TheMC47) |
2022-10-24 21:37:58 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) |
2022-10-24 21:40:14 +0200 | MajorBiscuit | (~MajorBisc@mob-109-118-119-253.net.vodafone.it) |
2022-10-24 21:44:01 +0200 | <davean> | monochrom: uh, didn't you just describe the "$ replaces ()" model and then said that was why it was naive? |
2022-10-24 21:44:33 +0200 | <monochrom> | How? |
2022-10-24 21:44:51 +0200 | <davean> | Because "foo ++ bar $ x" => "(foo ++ bar) (x)" |
2022-10-24 21:45:23 +0200 | <davean> | which you then simplified and said "means \"(foo ++ bar) x\"" |
2022-10-24 21:45:52 +0200 | <monochrom> | "$ replaces ()" includes both that and "foo ++ (bar x)". |
2022-10-24 21:46:20 +0200 | <monochrom> | Err no. |
2022-10-24 21:46:23 +0200 | <davean> | I was told "put parents around the full expression on both sides of the $" |
2022-10-24 21:46:31 +0200 | <monochrom> | Err yes. |
2022-10-24 21:48:15 +0200 | <monochrom> | That's never how people use "$ replaces ()". |
2022-10-24 21:48:26 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9df4:2304:ddb0:d61a) (Remote host closed the connection) |
2022-10-24 21:48:42 +0200 | <davean> | It isn't? Thats what this channel gave me when I first learned haskell |
2022-10-24 21:48:49 +0200 | <dminuoso> | davean: That leaves us just to talk about right and left associativity, and how ($) should be infixl and not infixr! |
2022-10-24 21:48:59 +0200 | <monochrom> | How people use it: Start with an expression that has some () but no $, then replace all () by $. That direction doesn't work. |
2022-10-24 21:49:16 +0200 | <davean> | oh huh, ok, thats NOT what I ever heard |
2022-10-24 21:50:26 +0200 | <monochrom> | This is a special case of how people never proofread their own writing. |
2022-10-24 21:50:34 +0200 | <dminuoso> | What do you folks think. Is the fixity of ($) wrong? |
2022-10-24 21:50:46 +0200 | <dolio> | Yes. |
2022-10-24 21:50:56 +0200 | <dolio> | But it's too late to fix it. |
2022-10-24 21:51:42 +0200 | <monochrom> | I.e., people never work this backward crosscheck direction: "Now that I have code that uses $, let me replace $ by (), impartially, and see if it really means what I want". |
2022-10-24 21:52:09 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-10-24 21:52:39 +0200 | <monochrom> | In general people never check what their wording actually comes across to other people/computer. |
2022-10-24 21:52:58 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-10-24 21:53:06 +0200 | dextaa | (~DV@user/dextaa) |
2022-10-24 21:53:38 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-10-24 21:54:01 +0200 | mokee | (~mokee@37.228.215.235) (Quit: off) |
2022-10-24 21:57:40 +0200 | littlefinger | (~littlefin@pool-100-15-237-121.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
2022-10-24 21:59:08 +0200 | axeman | (~quassel@2a02:8109:a380:78:dcd3:d662:889b:778e) (Ping timeout: 250 seconds) |
2022-10-24 21:59:29 +0200 | Guest51 | (~Guest51@205.175.106.104) |
2022-10-24 21:59:50 +0200 | gqplox | (~textual@147.188.245.207) (Quit: Textual IRC Client: www.textualapp.com) |
2022-10-24 22:02:59 +0200 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:d4cb:6221:97a6:c0bc) (Quit: caryhartline) |
2022-10-24 22:03:02 +0200 | Guest51 | (~Guest51@205.175.106.104) (Client Quit) |
2022-10-24 22:04:16 +0200 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) |
2022-10-24 22:04:41 +0200 | Guest51 | (~Guest51@205.175.106.104) |
2022-10-24 22:05:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:8c46:781f:98f3:6c99) (Quit: WeeChat 2.8) |
2022-10-24 22:05:56 +0200 | j4cc3b | (~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 244 seconds) |
2022-10-24 22:07:02 +0200 | merijn | (~merijn@c-001-001-011.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-10-24 22:09:45 +0200 | cytokine_storm | (~cytokine_@user/cytokine-storm/x-1083107) |
2022-10-24 22:12:20 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-10-24 22:15:18 +0200 | birdgoose | (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) |
2022-10-24 22:15:55 +0200 | birdgoose | (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) (Client Quit) |
2022-10-24 22:16:03 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-10-24 22:16:13 +0200 | birdgoose | (~birdgoose@2406:e003:1d87:6601:ad3a:1d2e:9fb1:dfac) |
2022-10-24 22:19:30 +0200 | m5zs7k | (aquares@web10.mydevil.net) (*.net *.split) |
2022-10-24 22:19:30 +0200 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (*.net *.split) |
2022-10-24 22:19:30 +0200 | Ranhir | (~Ranhir@157.97.53.139) (*.net *.split) |
2022-10-24 22:19:30 +0200 | taeaad | (~taeaad@user/taeaad) (*.net *.split) |
2022-10-24 22:19:30 +0200 | stefan-_ | (~cri@42dots.de) (*.net *.split) |
2022-10-24 22:19:30 +0200 | Inoperable | (~PLAYER_1@fancydata.science) (*.net *.split) |
2022-10-24 22:19:30 +0200 | asm | (~alexander@user/asm) (*.net *.split) |
2022-10-24 22:19:30 +0200 | zachel | (~zachel@user/zachel) (*.net *.split) |
2022-10-24 22:19:30 +0200 | codedmart | (codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split) |
2022-10-24 22:19:30 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) (*.net *.split) |
2022-10-24 22:19:30 +0200 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) (*.net *.split) |
2022-10-24 22:19:30 +0200 | Igloo | (~ian@matrix.chaos.earth.li) (*.net *.split) |
2022-10-24 22:19:30 +0200 | dcoutts__ | (~duncan@host86-163-164-210.range86-163.btcentralplus.com) (*.net *.split) |
2022-10-24 22:19:30 +0200 | AkechiShiro | (~licht@user/akechishiro) (*.net *.split) |
2022-10-24 22:19:30 +0200 | gnyeki | (~gnyeki@user/gnyeki) (*.net *.split) |
2022-10-24 22:19:31 +0200 | spaced | (uid572193@user/spaced) (*.net *.split) |
2022-10-24 22:19:31 +0200 | stilgart | (~Christoph@chezlefab.net) (*.net *.split) |
2022-10-24 22:19:31 +0200 | GoldsteinQ | (~goldstein@goldstein.rs) (*.net *.split) |
2022-10-24 22:19:31 +0200 | phileasfogg | (~phileasfo@user/phileasfogg) (*.net *.split) |
2022-10-24 22:19:31 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split) |
2022-10-24 22:19:31 +0200 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (*.net *.split) |
2022-10-24 22:19:31 +0200 | spider_ | (~spider@vps-951ce37a.vps.ovh.ca) (*.net *.split) |
2022-10-24 22:19:31 +0200 | DigitalKiwi | (~kiwi@2604:a880:400:d0::1ca0:e001) (*.net *.split) |
2022-10-24 22:19:31 +0200 | ddb | (~ddb@tilde.club) (*.net *.split) |
2022-10-24 22:19:31 +0200 | lieven | (~mal@ns2.wyrd.be) (*.net *.split) |
2022-10-24 22:19:31 +0200 | kaskal | (~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0) (*.net *.split) |
2022-10-24 22:19:31 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) (*.net *.split) |
2022-10-24 22:19:31 +0200 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) (*.net *.split) |
2022-10-24 22:19:31 +0200 | kristjansson | (sid126207@id-126207.tinside.irccloud.com) (*.net *.split) |
2022-10-24 22:19:31 +0200 | APic | (apic@apic.name) (*.net *.split) |
2022-10-24 22:19:31 +0200 | siers | (~ij@user/ij) (*.net *.split) |
2022-10-24 22:19:31 +0200 | hugo | (znc@verdigris.lysator.liu.se) (*.net *.split) |
2022-10-24 22:19:31 +0200 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) (*.net *.split) |
2022-10-24 22:19:39 +0200 | Igloo | (~ian@matrix.chaos.earth.li) |
2022-10-24 22:19:41 +0200 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2022-10-24 22:19:44 +0200 | APic | (apic@apic.name) |
2022-10-24 22:19:44 +0200 | cods | (~fred@82-65-232-44.subs.proxad.net) |
2022-10-24 22:19:44 +0200 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2022-10-24 22:19:47 +0200 | codedmart | (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
2022-10-24 22:19:48 +0200 | kaskal | (~kaskal@2001:4bb8:2dc:7b0e:55ee:692c:e44d:a4b0) |
2022-10-24 22:19:52 +0200 | dcoutts__ | (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
2022-10-24 22:19:53 +0200 | asm | (~alexander@burner.asm89.io) |
2022-10-24 22:19:53 +0200 | spider_ | (~spider@vps-951ce37a.vps.ovh.ca) |
2022-10-24 22:19:56 +0200 | <Profpatsch> | Is there a way to see which HasField instances are defined? |
2022-10-24 22:19:58 +0200 | Ranhir | (~Ranhir@157.97.53.139) |
2022-10-24 22:19:59 +0200 | kristjansson | (sid126207@id-126207.tinside.irccloud.com) |
2022-10-24 22:19:59 +0200 | spaced | (uid572193@user/spaced) |
2022-10-24 22:20:01 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
2022-10-24 22:20:02 +0200 | lieven | (~mal@ns2.wyrd.be) |
2022-10-24 22:20:05 +0200 | earthy | (~arthurvl@2a02-a469-f5e2-1-ba27-ebff-fea0-40b0.fixed6.kpn.net) |
2022-10-24 22:20:05 +0200 | stilgart | (~Christoph@chezlefab.net) |
2022-10-24 22:20:08 +0200 | ddb | (~ddb@tilde.club) |
2022-10-24 22:20:08 +0200 | <Profpatsch> | I have a type newtype AtLeast (min :: Natural) num = AtLeast {unAtLeast :: num} |
2022-10-24 22:20:19 +0200 | zachel | (~zachel@user/zachel) |
2022-10-24 22:20:21 +0200 | <Profpatsch> | and `unAtLeast` seems to not have a HasField instance for some reason |
2022-10-24 22:20:23 +0200 | markasoftware | (~quassel@107.161.26.124) |
2022-10-24 22:20:51 +0200 | hugo | (znc@verdigris.lysator.liu.se) |
2022-10-24 22:20:59 +0200 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) |
2022-10-24 22:21:01 +0200 | stefan-_ | (~cri@42dots.de) |
2022-10-24 22:21:05 +0200 | mimmy | (~mimmy@2604:a880:cad:d0::3e:1001) |
2022-10-24 22:21:05 +0200 | siers | (~ij@user/ij) |
2022-10-24 22:21:09 +0200 | phileasfogg | (~phileasfo@user/phileasfogg) |
2022-10-24 22:21:10 +0200 | beteigeuze | (~Thunderbi@89.187.168.47) |
2022-10-24 22:21:17 +0200 | m5zs7k | (aquares@web10.mydevil.net) |
2022-10-24 22:21:21 +0200 | taeaad | (~taeaad@user/taeaad) |
2022-10-24 22:21:33 +0200 | DigitalKiwi | (~kiwi@2604:a880:400:d0::1ca0:e001) |
2022-10-24 22:23:01 +0200 | Guest51 | (~Guest51@205.175.106.104) (Quit: Client closed) |
2022-10-24 22:23:42 +0200 | GoldsteinQ | (~goldstein@goldstein.rs) |
2022-10-24 22:24:40 +0200 | gnyeki | (~gnyeki@li578-216.members.linode.com) |
2022-10-24 22:24:41 +0200 | gnyeki | (~gnyeki@li578-216.members.linode.com) (Changing host) |
2022-10-24 22:24:41 +0200 | gnyeki | (~gnyeki@user/gnyeki) |
2022-10-24 22:24:46 +0200 | <Profpatsch> | I guess the phantom type make the instance not obvious? |
2022-10-24 22:25:39 +0200 | Inoperable | (~PLAYER_1@fancydata.science) |
2022-10-24 22:26:34 +0200 | <Profpatsch> | Ah, the trick is to remove the destructor and to manuall implement HasField |
2022-10-24 22:26:41 +0200 | <Profpatsch> | instance HasField "unAtLeast" (AtLeast min num) num where |
2022-10-24 22:26:43 +0200 | <Profpatsch> | getField (AtLeast num) = num |
2022-10-24 22:26:48 +0200 | <Profpatsch> | makes sens |
2022-10-24 22:26:49 +0200 | <Profpatsch> | e |
2022-10-24 22:27:02 +0200 | <Profpatsch> | thank you for rubber-ducking, #haskell :P |
2022-10-24 22:27:14 +0200 | slac13256 | (~slack1256@191.125.99.71) |
2022-10-24 22:29:51 +0200 | slack1256 | (~slack1256@186.11.46.162) (Ping timeout: 272 seconds) |
2022-10-24 22:37:58 +0200 | <sm> | 🦆 |
2022-10-24 22:38:27 +0200 | <geekosaur> | about all I could do was quack along, sadly |
2022-10-24 22:38:56 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) |
2022-10-24 22:39:08 +0200 | <Hecate> | Profpatsch: heya :) |
2022-10-24 22:48:56 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-10-24 22:49:08 +0200 | mmhat | (~mmh@p200300f1c7307610ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
2022-10-24 22:53:55 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2022-10-24 22:54:11 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-10-24 22:57:54 +0200 | <Profpatsch> | Hecate: :) |
2022-10-24 22:59:35 +0200 | danza | (~francesco@151.82.219.40) |
2022-10-24 23:00:39 +0200 | <[exa]> | Megaparsec question: I'm parsing a stream of tokens that can be reconstructed into a line for pretty error printing via TraversableStream |
2022-10-24 23:00:52 +0200 | <[exa]> | ... how do I tell it the error position in a line? |
2022-10-24 23:01:31 +0200 | MajorBiscuit | (~MajorBisc@mob-109-118-119-253.net.vodafone.it) (Ping timeout: 272 seconds) |
2022-10-24 23:02:00 +0200 | <[exa]> | in `reachOffset` I can only report 1] the line contents 2] a new PosState, which can't be "rewinded" to the error position because that could break potential next attempts for getting the contents of the line (I'd be missing the beginning) |
2022-10-24 23:02:11 +0200 | mmhat | (~mmh@2003:f1:c730:762d:ee08:6bff:fe09:5315) |
2022-10-24 23:03:37 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 260 seconds) |
2022-10-24 23:06:41 +0200 | axeman | (~quassel@2a02:8109:a380:78:967e:8a87:718a:1361) |
2022-10-24 23:06:43 +0200 | <[exa]> | (as in, the only way that displays to me right is that i keep the pstateOffset at the beginning of the line (to be able to reconstruct it) but move the sourcePos to a column that is not at that offset (possibly breaking sourcePos information for other stuff at that line) |
2022-10-24 23:07:43 +0200 | slac13256 | slack1256 |
2022-10-24 23:07:52 +0200 | stackdroid18 | (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
2022-10-24 23:11:01 +0200 | mixfix41 | (~sdenynine@user/mixfix41) (Ping timeout: 272 seconds) |
2022-10-24 23:11:32 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
2022-10-24 23:11:44 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
2022-10-24 23:15:34 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection) |
2022-10-24 23:15:46 +0200 | yahb2 | (~yahb2@2a01:4f8:c0c:5c7b::2) |
2022-10-24 23:17:11 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-10-24 23:18:09 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
2022-10-24 23:18:27 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-10-24 23:18:48 +0200 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-10-24 23:23:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-10-24 23:24:34 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-10-24 23:24:42 +0200 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2022-10-24 23:30:01 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 272 seconds) |
2022-10-24 23:30:17 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds) |
2022-10-24 23:33:07 +0200 | wonko | (~wjc@2a0e:1c80:2:0:45:15:19:130) (Read error: Connection reset by peer) |
2022-10-24 23:33:30 +0200 | wonko | (~wjc@user/wonko) |
2022-10-24 23:34:18 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-10-24 23:42:09 +0200 | freeside | (~mengwong@103.252.202.193) |
2022-10-24 23:43:26 +0200 | gqplox | (~textual@147.188.245.207) |
2022-10-24 23:48:15 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-10-24 23:56:11 +0200 | zmt00 | (~zmt00@user/zmt00) (Read error: Connection reset by peer) |
2022-10-24 23:57:25 +0200 | zmt00 | (~zmt00@user/zmt00) |
2022-10-24 23:57:58 +0200 | thyriaen | (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection) |