2022-12-28 00:00:28 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 00:00:41 +0100 | <DigitalKiwi> | also you can use ligatures too if you like |
2022-12-28 00:00:46 +0100 | <ggVGc> | ah, wait, maybe what I am thinking about is some characters not being available as operators because of the core language |
2022-12-28 00:00:49 +0100 | <ggVGc> | like @ |
2022-12-28 00:00:53 +0100 | <monochrom> | Err I think DigitalKiwi demonstrated it. :) |
2022-12-28 00:01:03 +0100 | <geekosaur> | the only restriction is it must have a generalCategory of Symbol and not be something like parens |
2022-12-28 00:01:04 +0100 | <monochrom> | But I can too! |
2022-12-28 00:01:08 +0100 | <geekosaur> | oh yes, misread, sorry |
2022-12-28 00:01:12 +0100 | <ggVGc> | well then, I guess the cat is already fully out of the bag then |
2022-12-28 00:01:41 +0100 | <geekosaur> | you can't replace core syntax like @ | : though |
2022-12-28 00:02:03 +0100 | <monochrom> | > let λ × µ = λ * µ in 4 × 5 |
2022-12-28 00:02:04 +0100 | <lambdabot> | 20 |
2022-12-28 00:02:46 +0100 | <ggVGc> | tried using unicode syntax in my Elixir work a few years ago. Didn't stick with it for long |
2022-12-28 00:02:48 +0100 | <DigitalKiwi> | i think emacs will show -> as the unicode symbol → and => as ⇒ etc. pretty easily |
2022-12-28 00:03:00 +0100 | <monochrom> | It has been allowed for like 20 years and the community has not abused it. This is how you know it's OK. |
2022-12-28 00:03:05 +0100 | <ggVGc> | still waiting to be compelled by some example of unicode adding enough for it to be worth the hassle |
2022-12-28 00:03:20 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:79de:2e5a:63dd:b89) (Ping timeout: 246 seconds) |
2022-12-28 00:03:26 +0100 | <DigitalKiwi> | i like that better than actually using the unicode because i can type -> but have to copy paste the unicode...but like looking at the unicode |
2022-12-28 00:03:32 +0100 | <ggVGc> | DigitalKiwi: yeah, but that sucks a lot, since now you have one glyph that is actually 2 glyphs when editing |
2022-12-28 00:03:37 +0100 | <ggVGc> | it's very confusing. I tried it... |
2022-12-28 00:03:58 +0100 | <ggVGc> | I could never get used to it |
2022-12-28 00:04:57 +0100 | <ggVGc> | monochrom: it might be time to implement a port of all of Prelude, in only unicode punctuation glyphs |
2022-12-28 00:06:24 +0100 | <monochrom> | You know, as far as pointless discussions go, let's have the following instead. |
2022-12-28 00:06:31 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) |
2022-12-28 00:06:42 +0100 | <monochrom> | Should "unicode" mean unicode, or should it mean "unicode minus ascii"? |
2022-12-28 00:07:06 +0100 | <monochrom> | Because using the former, Prelude is already using unicode punctuations. |
2022-12-28 00:07:33 +0100 | <monochrom> | Oh BTW you absolutely need to s/glyphs// , that's out of the question. |
2022-12-28 00:08:19 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-12-28 00:08:20 +0100 | <monochrom> | But usually for convenience people also say "rectangle" when they mean "excluding square", so maybe people say "unicode" when they mean "except ascii". |
2022-12-28 00:08:51 +0100 | <ggVGc> | definitely "unicode" means "not ascii" for the most part for me |
2022-12-28 00:09:08 +0100 | <ggVGc> | unless I'm having a technical spec discussion |
2022-12-28 00:09:33 +0100 | <ggVGc> | anyway, sorry, I just started ranting to escape my physics studies I think |
2022-12-28 00:10:04 +0100 | <DigitalKiwi> | * is just the unicode version of what * looks like isn't it |
2022-12-28 00:10:09 +0100 | <ggVGc> | doing the last handins made me violently think about making a DSL in haskell for generating latex quicker... |
2022-12-28 00:11:06 +0100 | <monochrom> | I did write code to convert haskell-land binary trees to tikz commands... |
2022-12-28 00:11:19 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
2022-12-28 00:11:34 +0100 | <monochrom> | also to java-land binary trees haha |
2022-12-28 00:11:53 +0100 | Kaipei | (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 268 seconds) |
2022-12-28 00:12:09 +0100 | <monochrom> | because I needed to hardcode some java-land binary trees for test cases. |
2022-12-28 00:12:15 +0100 | <ggVGc> | possibly this was for a CS degree? Which makes it slightly more acceptable to write software for your homework |
2022-12-28 00:12:58 +0100 | <monochrom> | I would rather think that CS homeworks are more amenable to automation. |
2022-12-28 00:13:44 +0100 | <monochrom> | I wouldn't have a problem with automating philosophy homework, if there were something to automate. |
2022-12-28 00:14:12 +0100 | <monochrom> | or rather, I'm a pragmatist utilitarian, so s/something to/something worthwhile to/ |
2022-12-28 00:14:30 +0100 | <ggVGc> | it's not about it being okay or not. It's about if you spend time writing software to support your physics handins, it's very likely that the handing will not be handed in on time :) At leats in my case |
2022-12-28 00:14:31 +0100 | <monochrom> | I guess by now GPT helps. |
2022-12-28 00:14:47 +0100 | <monochrom> | Right, there you go. |
2022-12-28 00:15:23 +0100 | <monochrom> | It has always been about path of least action. Pun intended. |
2022-12-28 00:18:19 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Remote host closed the connection) |
2022-12-28 00:18:23 +0100 | ph88 | (~ph88@84-30-78-253.cable.dynamic.v4.ziggo.nl) (Ping timeout: 260 seconds) |
2022-12-28 00:26:10 +0100 | <mauke[m]> | speaking of -> and →, the default font used in Element has a special ligature that displays "->" as a rightward arrow :-( |
2022-12-28 00:27:34 +0100 | <geekosaur> | yeh |
2022-12-28 00:28:01 +0100 | <monochrom> | Does it also have a ligature for <- ? :) |
2022-12-28 00:28:23 +0100 | <DigitalKiwi> | i'd say the bigger problem is that you're using element lol ;( |
2022-12-28 00:29:02 +0100 | <mauke[m]> | what's a good alternative? |
2022-12-28 00:29:05 +0100 | <DigitalKiwi> | monochrom: if not element is fascist amirite |
2022-12-28 00:29:14 +0100 | <DigitalKiwi> | glirc |
2022-12-28 00:29:37 +0100 | <geekosaur[m]> | `<-` |
2022-12-28 00:29:53 +0100 | <geekosaur[m]> | I see no ligature |
2022-12-28 00:30:04 +0100 | <geekosaur> | there are other clients for matrix |
2022-12-28 00:30:36 +0100 | <mauke[m]> | DigitalKiwi: that's IRC, not Matrix |
2022-12-28 00:30:50 +0100 | <DigitalKiwi> | element is just the most insecure flagship client lol |
2022-12-28 00:31:09 +0100 | <geekosaur> | at some point I want to test nheko |
2022-12-28 00:31:50 +0100 | <DigitalKiwi> | Logs: https://ircbrowse.tomsmeding.com/browse/lchaskell "irc" |
2022-12-28 00:31:53 +0100 | <DigitalKiwi> | seems we're on irc |
2022-12-28 00:32:25 +0100 | <mauke[m]> | so far the most amazing part about Element is that Preferences > Settings > Keyboard does not let you set your keyboard preferences |
2022-12-28 00:32:39 +0100 | <DigitalKiwi> | lmao |
2022-12-28 00:33:29 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 246 seconds) |
2022-12-28 00:36:37 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2022-12-28 00:41:17 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) |
2022-12-28 00:46:40 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2022-12-28 00:49:18 +0100 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection) |
2022-12-28 00:50:54 +0100 | mtjm | (~mutantmel@2604:a880:2:d0::208b:d001) |
2022-12-28 00:53:20 +0100 | Kaipei | (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2022-12-28 00:56:31 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 00:57:43 +0100 | money_ | (~money@2601:40:c580:8530:b457:2fe4:d16f:fb83) |
2022-12-28 00:59:56 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) |
2022-12-28 01:04:38 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 246 seconds) |
2022-12-28 01:04:43 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Ping timeout: 260 seconds) |
2022-12-28 01:04:49 +0100 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2022-12-28 01:05:39 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 01:06:02 +0100 | money_ | (~money@2601:40:c580:8530:b457:2fe4:d16f:fb83) (Quit: late) |
2022-12-28 01:07:00 +0100 | money_ | (~money@2601:40:c580:8530:b457:2fe4:d16f:fb83) |
2022-12-28 01:10:05 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
2022-12-28 01:10:12 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-12-28 01:10:12 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-12-28 01:10:12 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-12-28 01:10:28 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 268 seconds) |
2022-12-28 01:13:14 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) |
2022-12-28 01:22:08 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 01:23:15 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 01:23:35 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 01:24:11 +0100 | TonyStone | (~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Quit: Leaving) |
2022-12-28 01:24:50 +0100 | money_ | (~money@2601:40:c580:8530:b457:2fe4:d16f:fb83) (Remote host closed the connection) |
2022-12-28 01:26:18 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
2022-12-28 01:28:02 +0100 | money_ | (~money@2601:40:c580:8530:b457:2fe4:d16f:fb83) |
2022-12-28 01:35:14 +0100 | money_ | (~money@2601:40:c580:8530:b457:2fe4:d16f:fb83) (Remote host closed the connection) |
2022-12-28 01:35:26 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds) |
2022-12-28 01:42:50 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-12-28 01:47:22 +0100 | CiaoSen | (~Jura@p200300c95719fa002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2022-12-28 01:50:56 +0100 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-12-28 01:51:02 +0100 | <jle``> | i can't seem to get my day 16 to take less than 45 minutes lol |
2022-12-28 01:51:32 +0100 | <jle``> | oops wrong channel |
2022-12-28 01:53:08 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 260 seconds) |
2022-12-28 01:53:14 +0100 | <mauke[m]> | part 1 or part 2? |
2022-12-28 01:53:49 +0100 | <mauke[m]> | I couldn't figure out part 2, so I brute forced it. takes about 34 seconds on my laptop. part 1 was only about 0.3 seconds, though |
2022-12-28 01:54:38 +0100 | <jle``> | part 2 :) i used the same algorith for both parts, just polymorphic over the position container (Identity vs. data V2 a = V2 a a) |
2022-12-28 01:55:17 +0100 | <mauke[m]> | ... position container? |
2022-12-28 01:55:49 +0100 | Guest323 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds) |
2022-12-28 01:56:36 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-12-28 01:56:46 +0100 | <jle``> | well my search state is Position and set of pipes open |
2022-12-28 01:57:09 +0100 | <jle``> | but i parameterized over a functor, SearchState f = S (f Point) (Set Pipe) |
2022-12-28 01:57:13 +0100 | <jle``> | so for part 1 f is Identity |
2022-12-28 01:57:17 +0100 | <jle``> | and part 2 it's a 2-vector |
2022-12-28 01:57:31 +0100 | <mauke[m]> | oh, that sounds fancy |
2022-12-28 01:57:42 +0100 | <jle``> | it was more out of laziness :) |
2022-12-28 01:57:56 +0100 | <jle``> | the human kind, not the haskell kind |
2022-12-28 01:58:24 +0100 | <jle``> | so i could re-use the same algorithm for part 2 with minimal change |
2022-12-28 01:58:25 +0100 | <mauke[m]> | I have: process :: (Int -> Int -> Int) -> (Int -> Int) -> Int -> Int -> [Int] -> Int |
2022-12-28 01:58:30 +0100 | <jle``> | but it leads to .. very long search time |
2022-12-28 01:59:21 +0100 | <mauke[m]> | couldn't reuse the algorithm because it assumes you always move to an unopened valve at each step |
2022-12-28 01:59:33 +0100 | bjourne | (~bjorn@94.191.136.87.mobile.tre.se) |
2022-12-28 01:59:44 +0100 | <jle``> | oh, i thought that assumption wasn't valid in the part 1, either? |
2022-12-28 01:59:51 +0100 | <mauke[m]> | but for part2 that doesn't necessarily produce the optimal solution because it might be better for one player to sit still |
2022-12-28 02:00:23 +0100 | <jle``> | for part 1 i originally programmed in "don't move to an opened valve" and that was the main reason i didn't solve it that night |
2022-12-28 02:00:56 +0100 | <mauke[m]> | I can't even represent a move to an opened valve |
2022-12-28 02:01:06 +0100 | <mauke[m]> | my fundamental operation is "move to valve and open" |
2022-12-28 02:01:17 +0100 | <jle``> | D: |
2022-12-28 02:02:21 +0100 | johnjaye | (~pi@173.209.64.74) (Ping timeout: 265 seconds) |
2022-12-28 02:02:51 +0100 | johnjaye | (~pi@173.209.64.74) |
2022-12-28 02:03:37 +0100 | <glguy> | I use my part 1 to build part 2 |
2022-12-28 02:04:12 +0100 | <mauke[m]> | so did I, but in a dumb way |
2022-12-28 02:04:23 +0100 | <glguy> | And the thing runs in about 128ms |
2022-12-28 02:04:59 +0100 | ft | (~ft@i59F541CC.versanet.de) (Ping timeout: 264 seconds) |
2022-12-28 02:05:23 +0100 | <mauke[m]> | for part 2, I partition the set of valves into two subsets in all possible ways, then solve them separately |
2022-12-28 02:05:52 +0100 | <glguy> | I pre-solve all the ways |
2022-12-28 02:06:12 +0100 | <jle``> | mauke[m]: ooh |
2022-12-28 02:06:29 +0100 | <jle``> | and then you compare the best? |
2022-12-28 02:07:17 +0100 | <mauke[m]> | maximum $ map (\(vs1, vs2) -> processPart vs1 + processPart vs2) valveDist |
2022-12-28 02:07:26 +0100 | <mauke[m]> | hey, where's my backslashes |
2022-12-28 02:07:46 +0100 | <jle``> | at this point i'm surprised my solution was even viable now |
2022-12-28 02:07:51 +0100 | <mauke[m]> | `maximum $ map (\(vs1, vs2) -> processPart vs1 + processPart vs2) valveDist` |
2022-12-28 02:08:09 +0100 | <mauke[m]> | I wrote Markdown. hope it looks sensible on the IRC side |
2022-12-28 02:08:25 +0100 | <geekosaur> | even the first one looked sensible here |
2022-12-28 02:09:25 +0100 | <glguy> | https://ibb.co/m9J3ZN0 |
2022-12-28 02:09:37 +0100 | <mauke[m]> | where valveDist = filter (uncurry (<)) (subseq valves) |
2022-12-28 02:10:58 +0100 | geekosaur | suddenly wonders when they got rid of the control-q stuff |
2022-12-28 02:10:59 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-12-28 02:11:05 +0100 | <glguy> | mauke[m]: by first computing all the possible subsequences you can avoid checking impossible ones or recomputing costs |
2022-12-28 02:11:25 +0100 | <glguy> | The control q stuff was working earlier this month |
2022-12-28 02:11:52 +0100 | <glguy> | I was surprised to see it pop up; I implemented support for it earlier because irccloud can use it |
2022-12-28 02:11:55 +0100 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 256 seconds) |
2022-12-28 02:12:08 +0100 | <mauke[m]> | backslash test: map (\(x, y) -> x + y) |
2022-12-28 02:12:16 +0100 | <mauke[m]> | weird |
2022-12-28 02:12:35 +0100 | <geekosaur> | I have a script for hexchat ut it has the side effect of breaking tab notifications, so I disabled it |
2022-12-28 02:12:53 +0100 | <mauke[m]> | glguy: what do you mean by impossible? |
2022-12-28 02:13:38 +0100 | <glguy> | There are valve sets one player couldn't open in time, depending on the map |
2022-12-28 02:14:04 +0100 | <jle``> | thanks for the tips :) |
2022-12-28 02:14:52 +0100 | <glguy> | So it'd be a waste to ask multiple times on different subsets of valves where the player doesn't open all the valves in the subset |
2022-12-28 02:15:34 +0100 | <mauke[m]> | I don't see how that follows |
2022-12-28 02:17:06 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-12-28 02:17:24 +0100 | <glguy> | Like suppose theres a graph with nodes ABC and the optimal valve opening on that graph involves opening A then B, we wouldn't want to ask how expensive it is to open the subset AB and also ABC (which would give the same asnswer as asking about AB) |
2022-12-28 02:17:44 +0100 | acidjnk | (~acidjnk@p200300d6e7137a53b8fa7112b5541570.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2022-12-28 02:18:24 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 02:18:35 +0100 | <mauke[m]> | how does that save me work? |
2022-12-28 02:18:46 +0100 | <glguy> | depends if you were doing both queries or not |
2022-12-28 02:18:56 +0100 | <glguy> | if you were then it saves a wasted query |
2022-12-28 02:19:23 +0100 | <glguy> | also doing them as separate queries doesn't allow subsets that have a common prefix from sharing work |
2022-12-28 02:19:47 +0100 | thongpv | (~thongpv87@2001:ee0:54ab:430:ca58:16f9:bb47:d3ca) (Read error: Connection reset by peer) |
2022-12-28 02:20:31 +0100 | <mauke[m]> | none of this makes sense to me |
2022-12-28 02:20:54 +0100 | <glguy> | you were mapping a function over all the pairs of disjoint subsets of valves? |
2022-12-28 02:21:26 +0100 | thongpv | (~thongpv87@113.187.220.176) |
2022-12-28 02:21:26 +0100 | <mauke[m]> | if I have a subset {A, B, D} and I compute an optimal valve path AB (with D being unreachable), then adding C to the set does not necessarily extend AB |
2022-12-28 02:21:51 +0100 | <mauke[m]> | the solution for {A, B, D, C} might be ACD or something |
2022-12-28 02:22:01 +0100 | <glguy> | if the optimal route through {ABC} ignores D, then no sense in asking about ABD, only need to ask about AB |
2022-12-28 02:22:06 +0100 | <glguy> | err |
2022-12-28 02:22:10 +0100 | <glguy> | if the optimal route through {ABD} ignores D, then no sense in asking about ABD, only need to ask about AB |
2022-12-28 02:22:52 +0100 | <mauke[m]> | well yeah. if you start with the optimal route. |
2022-12-28 02:22:59 +0100 | <glguy> | so instead of asking individually about all the different subsets you can just enumerate all the reachable subsets |
2022-12-28 02:23:07 +0100 | <glguy> | as a single graph search |
2022-12-28 02:23:15 +0100 | thongpv87 | (~thongpv87@2001:ee0:54ab:430:ca58:16f9:bb47:d3ca) (Ping timeout: 256 seconds) |
2022-12-28 02:24:44 +0100 | <mauke[m]> | are we talking about subsets of subsets now? |
2022-12-28 02:25:13 +0100 | <glguy> | no, subsets of the whole graph |
2022-12-28 02:25:19 +0100 | <glguy> | https://github.com/glguy/advent/blob/main/solutions/src/2022/16.hs#L68-L81 |
2022-12-28 02:27:10 +0100 | tremon | (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
2022-12-28 02:28:36 +0100 | <mauke[m]> | TIL about ImportQualifiedPost |
2022-12-28 02:29:25 +0100 | <mauke[m]> | first thing that confuses me: the Map Int [(Int, Int, Int)] type |
2022-12-28 02:29:39 +0100 | thongpv | (~thongpv87@113.187.220.176) (Ping timeout: 260 seconds) |
2022-12-28 02:29:54 +0100 | <mauke[m]> | what is flow doing in there? |
2022-12-28 02:30:09 +0100 | <glguy> | it's the flow value of the valve at that room |
2022-12-28 02:30:25 +0100 | <glguy> | You only move to a room to open the valve there |
2022-12-28 02:31:28 +0100 | thongpv | (~thongpv87@14.246.240.163) |
2022-12-28 02:32:01 +0100 | <mauke[m]> | but why is it attached to the arrows and not the nodes? |
2022-12-28 02:32:13 +0100 | <mauke[m]> | also, which room? |
2022-12-28 02:32:38 +0100 | <glguy> | to avoid doing a second lookup for the valve value as you always need that information when moving to the room containing the vavle |
2022-12-28 02:32:54 +0100 | <mauke[m]> | your map describes the relationships between rooms, no? |
2022-12-28 02:33:30 +0100 | <glguy> | for each "room/valve" it's a list of all the other rooms reachable and the time it would take to move directly to that room |
2022-12-28 02:34:25 +0100 | <glguy> | having separate maps would make you do twice as many Map.lookups |
2022-12-28 02:34:34 +0100 | <mauke[m]> | does that mean each flow value is duplicated n times in your data structure (where n = number of elements)? |
2022-12-28 02:34:39 +0100 | <glguy> | yeah |
2022-12-28 02:35:11 +0100 | <mauke[m]> | btw, what's a SmallSet? |
2022-12-28 02:35:23 +0100 | <glguy> | it's a Set but represented with an Int using bit operations |
2022-12-28 02:35:42 +0100 | <glguy> | I should remove all the Map lookups and just tie the knot |
2022-12-28 02:36:11 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 265 seconds) |
2022-12-28 02:36:56 +0100 | <mauke[m]> | ah, I didn't assume N < 64 |
2022-12-28 02:37:39 +0100 | <mauke[m]> | I also didn't bother with renumbering: valve = (\a b -> (ord a - ord 'A') * 26 + ord b - ord 'A') <$> satisfy isAsciiUpper <*> satisfy isAsciiUpper |
2022-12-28 02:37:40 +0100 | <mauke[m]> | :-) |
2022-12-28 02:37:56 +0100 | <glguy> | renumbering saved about 5x |
2022-12-28 02:38:39 +0100 | <glguy> | at least in an earlier version |
2022-12-28 02:39:58 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-12-28 02:40:15 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-12-28 02:43:39 +0100 | mauke[m] | stares hard at the code |
2022-12-28 02:48:59 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2022-12-28 02:49:18 +0100 | <mauke[m]> | ooh. I think I understand exactly what solve is computing |
2022-12-28 02:49:55 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 02:49:56 +0100 | <glguy> | Help me understand what you found confusing, or what I didn't adequately explain so I can update the comments? |
2022-12-28 02:50:07 +0100 | <mauke[m]> | and I'm pretty sure you're coalescing states by using room sets as keys |
2022-12-28 02:50:47 +0100 | <glguy> | yes, that happens and I pick the larger of them with 'max' |
2022-12-28 02:50:47 +0100 | <mauke[m]> | speaking of comments: line 71, s/values/valves/ ? |
2022-12-28 02:51:01 +0100 | <mauke[m]> | wouldn't it be more efficient to use an IntSet? |
2022-12-28 02:51:02 +0100 | <glguy> | oops |
2022-12-28 02:51:07 +0100 | <mauke[m]> | er, IntMap |
2022-12-28 02:51:24 +0100 | <glguy> | My experience so far is that IntMap is only faster for lookups and not updates |
2022-12-28 02:51:54 +0100 | <glguy> | Any time I try swapping out a Map for IntMap this year of aoc I got worse times |
2022-12-28 02:53:26 +0100 | <EvanR> | I've had good results for Map just for the convenience factor |
2022-12-28 02:53:57 +0100 | <EvanR> | using IntMap when it's not an Int has non zero pain in the ass cost |
2022-12-28 02:56:41 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-12-28 03:12:11 +0100 | <mauke[m]> | glguy: s/verticies/vertices/g |
2022-12-28 03:12:42 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-12-28 03:16:11 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
2022-12-28 03:16:19 +0100 | fizbin | (~fizbin@user/fizbin) (Remote host closed the connection) |
2022-12-28 03:16:36 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-12-28 03:16:37 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 03:18:27 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2022-12-28 03:19:03 +0100 | <romes[m]> | Hey! I'm writing some type level code using type families, but I've encountered a weird behaviour: |
2022-12-28 03:19:03 +0100 | <romes[m]> | With the constraint `8 ~ SizeOf (DSetBinding 1 (n-1) ys)` I get an error `Could not deduce (SizeOf (DSetBinding 1 0 β) ~ 8)`; However, the constraint `9 ~ SizeOf (DSetBinding 1 (n-1) ys)` results in the (expected) error `Could not deduce (9 ~ 8)`. If I write 7 instead of 9 I also get the nice `Could not deduce (7 ~ 8)` |
2022-12-28 03:19:11 +0100 | <romes[m]> | Any clues as to what it might be? |
2022-12-28 03:23:04 +0100 | notzmv | (~zmv@user/notzmv) |
2022-12-28 03:27:16 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Read error: Connection reset by peer) |
2022-12-28 03:29:49 +0100 | <EvanR> | what's β |
2022-12-28 03:30:17 +0100 | beefbambi | (~beefbambi@183.82.25.109) |
2022-12-28 03:32:39 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Read error: Connection reset by peer) |
2022-12-28 03:34:12 +0100 | <romes[m]> | something that makes it work :) if I print it out with TypeError it shows it but it’s not relevant I think |
2022-12-28 03:34:49 +0100 | beefbambi | (~beefbambi@183.82.25.109) |
2022-12-28 03:34:52 +0100 | <EvanR> | it works? great |
2022-12-28 03:41:24 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Read error: Connection reset by peer) |
2022-12-28 03:41:59 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.7.1) |
2022-12-28 03:42:21 +0100 | beefbambi | (~beefbambi@183.82.25.109) |
2022-12-28 03:48:20 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) |
2022-12-28 03:52:22 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-12-28 03:52:22 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-12-28 03:52:22 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-12-28 03:54:29 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 256 seconds) |
2022-12-28 03:58:14 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-12-28 04:09:39 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-12-28 04:10:31 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-12-28 04:10:31 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-12-28 04:10:31 +0100 | finn_elija | FinnElija |
2022-12-28 04:18:16 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 04:20:43 +0100 | td_ | (~td@83.135.9.15) (Ping timeout: 260 seconds) |
2022-12-28 04:22:29 +0100 | td_ | (~td@83.135.9.57) |
2022-12-28 04:22:30 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Read error: Connection reset by peer) |
2022-12-28 04:24:03 +0100 | beefbambi | (~beefbambi@183.82.25.109) |
2022-12-28 04:29:54 +0100 | razetime | (~quassel@49.207.230.181) |
2022-12-28 04:33:20 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2022-12-28 04:41:27 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:4e8c::) (Quit: The Lounge - https://thelounge.chat) |
2022-12-28 04:42:50 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:4e8c::) |
2022-12-28 04:45:00 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Remote host closed the connection) |
2022-12-28 05:04:59 +0100 | bjourne | (~bjorn@94.191.136.87.mobile.tre.se) (Ping timeout: 248 seconds) |
2022-12-28 05:09:15 +0100 | son0p | (~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 260 seconds) |
2022-12-28 05:12:45 +0100 | ddellacosta | (~ddellacos@143.244.47.100) (Ping timeout: 260 seconds) |
2022-12-28 05:22:06 +0100 | Kaipei | (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 272 seconds) |
2022-12-28 05:23:22 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 272 seconds) |
2022-12-28 05:32:27 +0100 | razetime | (~quassel@49.207.230.181) (Ping timeout: 260 seconds) |
2022-12-28 05:37:32 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2022-12-28 05:38:18 +0100 | Umeaboy | (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving) |
2022-12-28 05:42:45 +0100 | thongpv | (~thongpv87@14.246.240.163) (Ping timeout: 265 seconds) |
2022-12-28 05:51:04 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 05:51:38 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Read error: Connection reset by peer) |
2022-12-28 05:51:46 +0100 | dsrt^ | (~dsrt@76.145.185.103) |
2022-12-28 05:52:30 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 05:53:08 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-28 05:53:26 +0100 | beefbambi | (~beefbambi@183.82.25.109) |
2022-12-28 05:55:47 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 260 seconds) |
2022-12-28 05:55:55 +0100 | thongpv | (~thongpv87@2402:9d80:3ef:b5ba:d843:66e0:e437:37c3) |
2022-12-28 05:58:12 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Read error: Connection reset by peer) |
2022-12-28 05:58:58 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 06:02:19 +0100 | money_ | (~money@2601:40:c580:8530:d025:7b6d:55a0:598c) |
2022-12-28 06:02:38 +0100 | money_ | (~money@2601:40:c580:8530:d025:7b6d:55a0:598c) (Client Quit) |
2022-12-28 06:03:26 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-28 06:03:45 +0100 | beefbambi | (~beefbambi@183.82.25.109) |
2022-12-28 06:07:07 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 06:15:53 +0100 | johnw | (~johnw@2600:1700:cf00:db0:68bc:4dc1:caa4:f545) |
2022-12-28 06:18:11 +0100 | beefbambi | (~beefbambi@183.82.25.109) (Ping timeout: 264 seconds) |
2022-12-28 06:22:58 +0100 | razetime | (~quassel@49.207.230.181) |
2022-12-28 06:23:16 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 06:28:17 +0100 | thongpv | (~thongpv87@2402:9d80:3ef:b5ba:d843:66e0:e437:37c3) (Quit: Leaving) |
2022-12-28 06:34:13 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds) |
2022-12-28 06:35:34 +0100 | johnw | (~johnw@2600:1700:cf00:db0:68bc:4dc1:caa4:f545) (Quit: ZNC - http://znc.in) |
2022-12-28 06:52:26 +0100 | _\_ | ___ |
2022-12-28 06:54:26 +0100 | titibandit | (~titibandi@xdsl-89-0-163-79.nc.de) |
2022-12-28 07:05:02 +0100 | mbuf | (~Shakthi@49.204.113.226) |
2022-12-28 07:13:41 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 268 seconds) |
2022-12-28 07:18:13 +0100 | son0p | (~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f) |
2022-12-28 07:35:44 +0100 | razetime | (~quassel@49.207.230.181) (Ping timeout: 272 seconds) |
2022-12-28 07:38:17 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds) |
2022-12-28 07:43:30 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-12-28 07:51:13 +0100 | trev | (~trev@user/trev) |
2022-12-28 07:54:42 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) (Ping timeout: 252 seconds) |
2022-12-28 07:56:57 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-12-28 07:57:16 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) |
2022-12-28 07:58:03 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 07:58:23 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Client Quit) |
2022-12-28 08:00:57 +0100 | mei | (~mei@user/mei) |
2022-12-28 08:03:47 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 08:14:54 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2022-12-28 08:31:58 +0100 | johnw | (~johnw@2600:1700:cf00:db0:e590:8ce7:d874:8b6) |
2022-12-28 08:34:30 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:868e:d6ba:423c:8634) |
2022-12-28 08:35:58 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-12-28 08:38:46 +0100 | Kaipei | (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2022-12-28 08:39:49 +0100 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-12-28 08:47:14 +0100 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-12-28 08:47:40 +0100 | ph88 | (~ph88@2001:1c05:2412:3100:2cfc:2cfb:90cd:d349) |
2022-12-28 08:49:58 +0100 | Cale | (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Remote host closed the connection) |
2022-12-28 08:53:16 +0100 | titibandit | (~titibandi@xdsl-89-0-163-79.nc.de) (Remote host closed the connection) |
2022-12-28 08:56:17 +0100 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-12-28 08:58:47 +0100 | titibandit | (~titibandi@xdsl-89-0-163-79.nc.de) |
2022-12-28 09:00:22 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2022-12-28 09:13:03 +0100 | ph88 | (~ph88@2001:1c05:2412:3100:2cfc:2cfb:90cd:d349) (Quit: Leaving) |
2022-12-28 09:17:42 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-12-28 09:25:54 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2022-12-28 09:35:34 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-28 09:37:30 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 256 seconds) |
2022-12-28 09:42:12 +0100 | cyphase | (~cyphase@user/cyphase) |
2022-12-28 09:44:10 +0100 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) |
2022-12-28 09:45:12 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
2022-12-28 09:52:22 +0100 | freeside | (~mengwong@122.11.214.85) |
2022-12-28 09:57:22 +0100 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-12-28 09:58:41 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-12-28 10:00:03 +0100 | ElliotAlderson[m | (~elliotal_@2001:470:69fc:105::bb21) (Quit: You have been kicked for being idle) |
2022-12-28 10:01:10 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-12-28 10:04:10 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2022-12-28 10:19:02 +0100 | acidjnk | (~acidjnk@p200300d6e7137a537d0b13f896941cd5.dip0.t-ipconnect.de) |
2022-12-28 10:33:37 +0100 | mmhat | (~mmh@p200300f1c721be6dee086bfffe095315.dip0.t-ipconnect.de) |
2022-12-28 10:37:39 +0100 | aaronv | (~aaronv@user/aaronv) |
2022-12-28 10:38:04 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-12-28 10:42:25 +0100 | Guest323 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-12-28 10:45:27 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2022-12-28 10:57:47 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Remote host closed the connection) |
2022-12-28 10:57:47 +0100 | freeside | (~mengwong@122.11.214.85) (Ping timeout: 264 seconds) |
2022-12-28 11:02:39 +0100 | phma | (phma@2001:5b0:211f:fc48:f1c3:2878:2421:3588) (Read error: Connection reset by peer) |
2022-12-28 11:03:33 +0100 | phma | (phma@2001:5b0:210d:5d58:64bb:4721:a872:cb87) |
2022-12-28 11:04:22 +0100 | <mauke[m]> | glguy: looking at the 'fw' function, doesn't it assign a self-distance of 2 to all rooms? that is, distances M.! (v, v) == 2 for all v |
2022-12-28 11:05:42 +0100 | <mauke[m]> | and if you skip those entries, wouldn't `Map.lookup (i,k) dists` then be invariant in the innermost loop and could be pulled out? |
2022-12-28 11:08:10 +0100 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
2022-12-28 11:08:41 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2022-12-28 11:15:53 +0100 | <romes[m]> | <EvanR> "it works? great" <- oh no I phrased it wrong. I have a type family DSetBinding that when applied to those arguments reduces to `8`. When I write the constraint with `(8 ~ DSetBinding 1 0 x)` it’s as if the family can’t reduce, but if I switch 8 to another number like 9, I get the message “Can’t satisfy 9 ~ 8” |
2022-12-28 11:16:14 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-12-28 11:16:18 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-28 11:16:35 +0100 | <romes[m]> | so I know that the type family reduces, but when I compare it to the value it reduces to its like it stops working! |
2022-12-28 11:16:37 +0100 | <romes[m]> | :) |
2022-12-28 11:17:31 +0100 | libertyprime | (~libertypr@203.96.203.167) (Ping timeout: 252 seconds) |
2022-12-28 11:20:35 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 264 seconds) |
2022-12-28 11:23:03 +0100 | Guest323 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds) |
2022-12-28 11:23:37 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-12-28 11:25:29 +0100 | __monty__ | (~toonn@user/toonn) |
2022-12-28 11:31:20 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2022-12-28 11:32:04 +0100 | freeside | (~mengwong@122.11.214.85) |
2022-12-28 11:33:23 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2022-12-28 11:34:02 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-12-28 11:34:12 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) |
2022-12-28 11:38:34 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2022-12-28 11:41:24 +0100 | fserucas | (~fserucas@a85-138-107-42.cpe.netcabo.pt) |
2022-12-28 11:43:22 +0100 | freeside | (~mengwong@122.11.214.85) (Read error: Connection reset by peer) |
2022-12-28 11:43:59 +0100 | coot | (~coot@213.134.171.3) |
2022-12-28 11:58:18 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) |
2022-12-28 12:02:34 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Ping timeout: 252 seconds) |
2022-12-28 12:06:33 +0100 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) |
2022-12-28 12:14:28 +0100 | titibandit | (~titibandi@xdsl-89-0-163-79.nc.de) (Remote host closed the connection) |
2022-12-28 12:16:50 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2022-12-28 12:18:29 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-12-28 12:20:30 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 12:25:23 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 264 seconds) |
2022-12-28 12:30:35 +0100 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds) |
2022-12-28 12:32:00 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 12:35:31 +0100 | money__ | (~money@2601:40:c580:8530:bc04:ad9b:97b3:650b) |
2022-12-28 12:35:39 +0100 | acidjnk | (~acidjnk@p200300d6e7137a537d0b13f896941cd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2022-12-28 13:05:18 +0100 | <mauke[m]> | huh. my "connection expansion" function might actually be a variant of Dijkstra's algorithm |
2022-12-28 13:11:35 +0100 | acidjnk | (~acidjnk@p54ad5adb.dip0.t-ipconnect.de) |
2022-12-28 13:14:47 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-12-28 13:15:14 +0100 | freeside | (~mengwong@103.252.202.159) (Quit: brb) |
2022-12-28 13:15:47 +0100 | gmg | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2022-12-28 13:17:44 +0100 | acidjnk | (~acidjnk@p54ad5adb.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2022-12-28 13:18:23 +0100 | bontaq | (~user@71.27.75.65) |
2022-12-28 13:18:41 +0100 | Guest32 | (~Guest32@176.122.87.241) |
2022-12-28 13:18:52 +0100 | <Guest32> | hello |
2022-12-28 13:19:40 +0100 | <Guest32> | can i ask a question about yesodweb? |
2022-12-28 13:19:56 +0100 | <chreekat> | yep |
2022-12-28 13:20:07 +0100 | <Guest32> | I need to wrap the select field in a div. Is there an easier way than custom field? |
2022-12-28 13:21:50 +0100 | <Guest32> | my css framework wrap some fields in divs |
2022-12-28 13:23:38 +0100 | irrgit__ | (~irrgit@146.70.27.250) (Remote host closed the connection) |
2022-12-28 13:24:57 +0100 | irrgit__ | (~irrgit@176.113.74.74) |
2022-12-28 13:26:19 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-12-28 13:26:48 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 13:29:11 +0100 | fserucas | (~fserucas@a85-138-107-42.cpe.netcabo.pt) (Ping timeout: 252 seconds) |
2022-12-28 13:48:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 13:49:00 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-12-28 13:50:03 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 13:53:04 +0100 | dextaa9 | (~DV@user/dextaa) |
2022-12-28 13:54:18 +0100 | Guest32 | (~Guest32@176.122.87.241) (Quit: Client closed) |
2022-12-28 13:54:51 +0100 | dextaa | (~DV@user/dextaa) (Ping timeout: 252 seconds) |
2022-12-28 13:54:51 +0100 | dextaa9 | dextaa |
2022-12-28 13:55:07 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-12-28 13:59:44 +0100 | kjak | (~kjak@pool-72-66-75-40.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
2022-12-28 14:00:09 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) |
2022-12-28 14:01:59 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-12-28 14:02:14 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-12-28 14:04:23 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Ping timeout: 246 seconds) |
2022-12-28 14:07:23 +0100 | califax | (~califax@user/califx) |
2022-12-28 14:11:07 +0100 | <kjlid[m]> | Say I have a typeclass `HasEntry t` with a bunch of functions to retreive some fields from a data structure - would it make sense to have a `toEntry :: t -> Entry` if I want to have the ability to copy the data and replace some fields in it before I shove it into a database? |
2022-12-28 14:11:35 +0100 | <kjlid[m]> | I don't know what the idiomatic way to do that in Haskell is |
2022-12-28 14:12:25 +0100 | <kjlid[m]> | Or would it make more sense to have a DAO-like type? |
2022-12-28 14:12:34 +0100 | <mauke[m]> | why do you have a typeclass? |
2022-12-28 14:13:41 +0100 | <kjlid[m]> | As a learning exercise |
2022-12-28 14:14:31 +0100 | <kjlid[m]> | And I heard you guys like abstractions so I figured I'd add some typeclasses to impress you |
2022-12-28 14:14:53 +0100 | money__ | (~money@2601:40:c580:8530:bc04:ad9b:97b3:650b) (Quit: late) |
2022-12-28 14:15:47 +0100 | <mauke[m]> | typeclasses are but one way to abstract things |
2022-12-28 14:16:33 +0100 | kjak | (~kjak@pool-72-66-75-40.washdc.fios.verizon.net) |
2022-12-28 14:17:50 +0100 | <mauke[m]> | I can't tell you what would make sense because I can't form a picture of your code from your description |
2022-12-28 14:17:52 +0100 | <mauke[m]> | it's too vague for me |
2022-12-28 14:17:59 +0100 | <ggVGc> | typeclasses are just fancy dictionaries :) |
2022-12-28 14:20:14 +0100 | <mauke[m]> | in much the same way that function application is just fancy goto |
2022-12-28 14:21:28 +0100 | <kjlid[m]> | https://paste.tomsmeding.com/QZ1azRNB <- I was thinking of doing something like this. See like 23-28 |
2022-12-28 14:21:32 +0100 | <kjlid[m]> | err, line 23-28 |
2022-12-28 14:22:27 +0100 | <kjlid[m]> | Yes I know this does not compile |
2022-12-28 14:24:25 +0100 | troydm | (~troydm@host-176-37-124-197.b025.la.net.ua) |
2022-12-28 14:24:51 +0100 | <mauke[m]> | this looks like entry is just a tuple/record of 5 fields |
2022-12-28 14:26:05 +0100 | <mauke[m]> | in which case I wouldn't make addEntry polymorphic; I'd just have it take an Entry |
2022-12-28 14:27:04 +0100 | <mauke[m]> | anyone who wants to use it with a different type can write their own conversion function that wraps the necessary pieces in an Entry |
2022-12-28 14:28:16 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-12-28 14:28:37 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 14:29:10 +0100 | <kjlid[m]> | Right |
2022-12-28 14:36:11 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-12-28 14:38:33 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 14:39:59 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 14:46:55 +0100 | tremon | (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) |
2022-12-28 14:48:35 +0100 | <JonathanWatson[m> | Does anyone know how to set GHC runtime debug options in Cabal? My GHC options end with "-debug +RTS -DL -RTS" but I get an error saying "the flag -DL requires the program to be built with -debug" |
2022-12-28 14:51:05 +0100 | <mauke[m]> | can you even build ghc with cabal? |
2022-12-28 14:52:41 +0100 | cheater | (~Username@user/cheater) |
2022-12-28 14:54:24 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2022-12-28 14:54:57 +0100 | <JonathanWatson[m> | Well I am trying to build an executable using custom GHC options rather than build GHC itself |
2022-12-28 14:55:37 +0100 | <JonathanWatson[m> | Using these options https://downloads.haskell.org/ghc/latest/docs/users_guide/runtime_control.html?highlight=dl#rts-op… |
2022-12-28 14:56:17 +0100 | <JonathanWatson[m> | It could be that "the program" is referring to GHC though |
2022-12-28 14:56:44 +0100 | Sciencentistguy2 | (~sciencent@hacksoc/ordinary-member) |
2022-12-28 14:56:52 +0100 | <glguy> | Are you using -with-rtsopts ? |
2022-12-28 14:58:16 +0100 | <JonathanWatson[m> | Oh no I am using +RTS and -RTS since it didn't work when I tried that with the option on the library, although it should work now that I am only changing the GHC options for the executable |
2022-12-28 14:58:34 +0100 | Sciencentistguy | (~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds) |
2022-12-28 14:58:34 +0100 | Sciencentistguy2 | Sciencentistguy |
2022-12-28 14:59:01 +0100 | <mauke[m]> | if you're not trying to debug ghc, why are you passing runtime debugging options to ghc? |
2022-12-28 14:59:03 +0100 | <glguy> | mauke[m]: yes it assigns 2 to the self distances because I didn't add zero entries to the self distances, but I'll have to look to see what the consequence is to the shortest path implementation |
2022-12-28 14:59:31 +0100 | <JonathanWatson[m> | glguy: thank you that worked! |
2022-12-28 14:59:53 +0100 | <JonathanWatson[m> | mauke[m]: I am testing a library that uses GHC as a library for dynamic software updating |
2022-12-28 15:00:03 +0100 | <glguy> | I had the 0 cost entries at one point, but since I don't need them I ended up removing them to save on line count |
2022-12-28 15:00:16 +0100 | <mauke[m]> | ooh, funky |
2022-12-28 15:01:58 +0100 | fizbin | (~fizbin@user/fizbin) (Remote host closed the connection) |
2022-12-28 15:02:15 +0100 | <JonathanWatson[m> | oh well it built but when I run it, it says "bad RTS option: -DL" |
2022-12-28 15:02:17 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 15:02:56 +0100 | <JonathanWatson[m> | with "-with-rtsopts=-DL" |
2022-12-28 15:03:36 +0100 | mei | (~mei@user/mei) (Quit: mei) |
2022-12-28 15:05:11 +0100 | <JonathanWatson[m> | but it does recognise the option since it says "unexpected RTS argument: DL" when I remove the hyphen |
2022-12-28 15:05:46 +0100 | <glguy> | Sounds like you didn't build a debug target |
2022-12-28 15:06:26 +0100 | <JonathanWatson[m> | oh it works with "-with-rtsopts=-Dl" |
2022-12-28 15:06:37 +0100 | JonathanWatson[m | uploaded an image: (8KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/hiJhcJOhNvweGLPceBqbSmbX/image.png > |
2022-12-28 15:06:46 +0100 | <JonathanWatson[m> | it's just the verbose one that doesn't work |
2022-12-28 15:08:20 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 260 seconds) |
2022-12-28 15:11:05 +0100 | Guest91 | (~Guest91@dyndsl-037-138-067-145.ewe-ip-backbone.de) |
2022-12-28 15:12:28 +0100 | kenran | (~user@user/kenran) |
2022-12-28 15:12:49 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-12-28 15:13:22 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 15:13:32 +0100 | <JonathanWatson[m> | ok that's because I'm reading a later version of the docs |
2022-12-28 15:15:59 +0100 | bjourne | (~bjorn@94.191.136.87.mobile.tre.se) |
2022-12-28 15:17:08 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 15:17:35 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 246 seconds) |
2022-12-28 15:18:39 +0100 | <freeside> | so, i've got my Megaparsec-based parser up and running, and for my next trick, I'm refactoring and simplifying. I want to use one of the available expression parsers, but ... |
2022-12-28 15:18:59 +0100 | <freeside> | ... do I want Control.Monad.Combinators.Expr? Text.Parser.Expression? Text.Parsec.Expr? |
2022-12-28 15:20:08 +0100 | <freeside> | they all seem to implement expr, term, table, binary, prefix, postfix |
2022-12-28 15:25:49 +0100 | <freeside> | i'm going with Control.Monad.Combinators.Expr from parser-combinators, but only because it shares an author with megaparsec; I trust my sleuthing will bear fruit |
2022-12-28 15:35:42 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
2022-12-28 15:35:45 +0100 | <ncf> | yes that's the intended way https://markkarpov.com/post/megaparsec-7.html#parsercombinators-grows-megaparsec-shrinks |
2022-12-28 15:36:32 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2022-12-28 15:37:48 +0100 | <freeside> | ah, thank you, appreciate the history |
2022-12-28 15:38:17 +0100 | <ncf> | i suspect the other ones just wouldn't work with megaparsec anyway |
2022-12-28 15:41:15 +0100 | <freeside> | very well, then i shall submit a PR for https://hackage.haskell.org/package/megaparsec-9.3.0#related-packages lol |
2022-12-28 15:42:39 +0100 | money__ | (~money@64-145-79-171.jfk.as54203.net) |
2022-12-28 15:42:42 +0100 | bontaq | (~user@71.27.75.65) (Read error: Connection reset by peer) |
2022-12-28 15:44:40 +0100 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2022-12-28 15:47:07 +0100 | <freeside> | i wonder why the decision was made not to re-export them from the Text.Megaparsec module namespace |
2022-12-28 15:48:28 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-12-28 15:51:14 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-12-28 15:51:55 +0100 | <geekosaur> | that's reserved for when they reimplement them for optimization, I think |
2022-12-28 15:52:57 +0100 | Guest91 | (~Guest91@dyndsl-037-138-067-145.ewe-ip-backbone.de) (Quit: Client closed) |
2022-12-28 15:53:38 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-28 15:53:53 +0100 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-12-28 16:00:04 +0100 | n0den1te | (~~.~@2401:4900:1c28:5d65:f513:13cc:6745:d0c4) |
2022-12-28 16:00:42 +0100 | jargon | (~jargon@174-22-197-118.phnx.qwest.net) |
2022-12-28 16:02:24 +0100 | <bjourne> | how can you accomplish exit early in a monad? e.g: if (a) { doA(); return; } if (b) { doB(); return } ... |
2022-12-28 16:03:07 +0100 | <geekosaur> | you can't; it's a large expression, not really a set of procedures |
2022-12-28 16:03:31 +0100 | <geekosaur> | closest you get is the Cont or ContT monads but those will seriously warp your brain |
2022-12-28 16:04:11 +0100 | <freeside> | why not guard / when / <|> |
2022-12-28 16:04:16 +0100 | <freeside> | https://hackage.haskell.org/package/base-4.17.0.0/docs/Control-Monad.html#g:6 |
2022-12-28 16:04:20 +0100 | <bjourne> | i can accomplish it, but only using deeply nested if-else expressions |
2022-12-28 16:04:23 +0100 | <geekosaur> | those work in some cases |
2022-12-28 16:05:08 +0100 | <freeside> | maybe refactor to take advantage of pattern-matching or MultiWayIf? |
2022-12-28 16:05:33 +0100 | n0den1te | (~~.~@2401:4900:1c28:5d65:f513:13cc:6745:d0c4) () |
2022-12-28 16:06:08 +0100 | <freeside> | the "deeply nested if-else expressions" antipattern is something i'm trying to address with an embeddable DMN DSL, btw, which is coincidentally the subject of my current refactoring |
2022-12-28 16:06:44 +0100 | money__ | (~money@64-145-79-171.jfk.as54203.net) (Changing host) |
2022-12-28 16:06:44 +0100 | money__ | (~money@user/polo) |
2022-12-28 16:06:44 +0100 | ChanServ | +o litharge |
2022-12-28 16:06:45 +0100 | litharge | +b *!*@64.145.79.171 |
2022-12-28 16:06:49 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 16:06:50 +0100 | n0den1te | (~n0den1te@223.178.84.197) |
2022-12-28 16:06:56 +0100 | litharge | -o litharge |
2022-12-28 16:07:36 +0100 | <freeside> | beyond a certain complexity, decision trees really want to be decision tables |
2022-12-28 16:12:49 +0100 | fserucas | (~fserucas@a85-138-107-42.cpe.netcabo.pt) |
2022-12-28 16:27:36 +0100 | money___ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) |
2022-12-28 16:28:09 +0100 | money__ | (~money@user/polo) (Ping timeout: 256 seconds) |
2022-12-28 16:28:29 +0100 | dsrt^ | (~dsrt@76.145.185.103) (Remote host closed the connection) |
2022-12-28 16:32:57 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-12-28 16:34:25 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-28 16:34:43 +0100 | beefbambi | (~beefbambi@49.204.133.80) |
2022-12-28 16:38:29 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 16:43:07 +0100 | ddellacosta | (~ddellacos@143.244.47.68) |
2022-12-28 16:44:08 +0100 | razetime | (~quassel@49.207.196.133) |
2022-12-28 16:47:29 +0100 | Sauvin | (~sauvin@user/Sauvin) (Ping timeout: 246 seconds) |
2022-12-28 16:51:56 +0100 | razetime | (~quassel@49.207.196.133) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-12-28 16:54:36 +0100 | Sauvin | (~sauvin@user/Sauvin) |
2022-12-28 16:54:47 +0100 | beefbambi | (~beefbambi@49.204.133.80) (Read error: Connection reset by peer) |
2022-12-28 16:55:12 +0100 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 16:55:21 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 256 seconds) |
2022-12-28 16:55:28 +0100 | beefbambi | (~beefbambi@49.204.133.80) |
2022-12-28 16:55:36 +0100 | razetime | (~quassel@49.207.196.133) |
2022-12-28 16:59:21 +0100 | sayola | (~sayola@dslb-002-201-085-035.002.201.pools.vodafone-ip.de) |
2022-12-28 16:59:23 +0100 | sammelweis_ | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 246 seconds) |
2022-12-28 17:03:29 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 17:07:10 +0100 | Sauvin | (~sauvin@user/Sauvin) (Quit: Leaving) |
2022-12-28 17:07:55 +0100 | Sauvin | (~sauvin@user/Sauvin) |
2022-12-28 17:09:00 +0100 | money___ | (~money@pool-100-11-18-203.phlapa.fios.verizon.net) (Quit: late) |
2022-12-28 17:10:48 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 17:10:58 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 17:17:29 +0100 | beefbambi | (~beefbambi@49.204.133.80) (Ping timeout: 260 seconds) |
2022-12-28 17:17:46 +0100 | trev_ | (~trev@109.252.35.99) |
2022-12-28 17:18:21 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 17:19:59 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2022-12-28 17:20:57 +0100 | trev | (~trev@user/trev) (Ping timeout: 255 seconds) |
2022-12-28 17:24:08 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:868e:d6ba:423c:8634) (Quit: WeeChat 2.8) |
2022-12-28 17:24:56 +0100 | jpds3 | jpds |
2022-12-28 17:29:13 +0100 | notzmv | (~zmv@user/notzmv) |
2022-12-28 17:39:56 +0100 | money__ | (~money@2601:40:c580:8530:9c03:7900:f37d:8622) |
2022-12-28 17:40:22 +0100 | money__ | (~money@2601:40:c580:8530:9c03:7900:f37d:8622) (Changing host) |
2022-12-28 17:40:22 +0100 | money__ | (~money@user/polo) |
2022-12-28 17:40:22 +0100 | ChanServ | +o litharge |
2022-12-28 17:40:23 +0100 | litharge | +b *!*@2601:40:c580:8530:9c03:7900:f37d:8622 |
2022-12-28 17:40:34 +0100 | litharge | -o litharge |
2022-12-28 17:43:36 +0100 | money__ | (~money@user/polo) (Client Quit) |
2022-12-28 17:44:15 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-12-28 17:44:41 +0100 | acidjnk | (~acidjnk@p200300d6e7137a4229c4b6108dcb2f5b.dip0.t-ipconnect.de) |
2022-12-28 17:47:30 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 17:48:38 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 17:49:09 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2022-12-28 17:54:03 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2022-12-28 18:00:05 +0100 | titibandit | (~titibandi@xdsl-89-0-163-79.nc.de) |
2022-12-28 18:00:50 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2022-12-28 18:01:24 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2022-12-28 18:01:25 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2022-12-28 18:01:25 +0100 | wroathe | (~wroathe@user/wroathe) |
2022-12-28 18:01:42 +0100 | mbuf | (~Shakthi@49.204.113.226) (Quit: Leaving) |
2022-12-28 18:05:30 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 18:06:47 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 18:09:47 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 246 seconds) |
2022-12-28 18:10:05 +0100 | califax | (~califax@user/califx) (Ping timeout: 255 seconds) |
2022-12-28 18:11:15 +0100 | califax | (~califax@user/califx) |
2022-12-28 18:11:33 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 18:15:52 +0100 | haasn | (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
2022-12-28 18:17:45 +0100 | money__ | (~money@c-73-188-62-22.hsd1.pa.comcast.net) |
2022-12-28 18:24:30 +0100 | money__ | (~money@c-73-188-62-22.hsd1.pa.comcast.net) (Quit: late) |
2022-12-28 18:25:04 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 18:26:34 +0100 | econo | (uid147250@user/econo) |
2022-12-28 18:31:12 +0100 | money__ | (~money@2601:40:c580:8530:215e:3848:10c5:78d9) |
2022-12-28 18:36:55 +0100 | trev_ | (~trev@109.252.35.99) (Remote host closed the connection) |
2022-12-28 18:36:59 +0100 | koz_ | koz |
2022-12-28 18:40:41 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Ping timeout: 255 seconds) |
2022-12-28 18:41:21 +0100 | razetime1 | (~Thunderbi@49.207.196.133) |
2022-12-28 18:42:27 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2022-12-28 18:53:11 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1) |
2022-12-28 18:54:24 +0100 | jakalx | (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection) |
2022-12-28 18:54:25 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-28 18:57:02 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Ping timeout: 246 seconds) |
2022-12-28 18:57:09 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) |
2022-12-28 18:58:32 +0100 | razetime1 | (~Thunderbi@49.207.196.133) (Quit: razetime1) |
2022-12-28 18:58:35 +0100 | razetime | (~quassel@49.207.196.133) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2022-12-28 18:59:50 +0100 | razetime | (~Thunderbi@49.207.196.133) |
2022-12-28 19:01:00 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 272 seconds) |
2022-12-28 19:05:10 +0100 | razetime | (~Thunderbi@49.207.196.133) (Quit: razetime) |
2022-12-28 19:12:33 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2022-12-28 19:14:15 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-12-28 19:25:20 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 246 seconds) |
2022-12-28 19:27:37 +0100 | money__ | (~money@2601:40:c580:8530:215e:3848:10c5:78d9) (Quit: late) |
2022-12-28 19:29:59 +0100 | Typedfern | (~Typedfern@221.red-83-37-36.dynamicip.rima-tde.net) (Ping timeout: 252 seconds) |
2022-12-28 19:36:26 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) (Remote host closed the connection) |
2022-12-28 19:39:53 +0100 | mmhat | (~mmh@p200300f1c721be6dee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2022-12-28 19:40:16 +0100 | mmhat | (~mmh@p200300f1c721be80ee086bfffe095315.dip0.t-ipconnect.de) |
2022-12-28 19:42:27 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:3964:1012:a01c:6912) |
2022-12-28 19:42:39 +0100 | Typedfern | (~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net) |
2022-12-28 19:48:38 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2022-12-28 19:48:43 +0100 | money__ | (~money@2601:40:c580:8530:215e:3848:10c5:78d9) |
2022-12-28 19:49:40 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2022-12-28 19:50:29 +0100 | money__ | (~money@2601:40:c580:8530:215e:3848:10c5:78d9) (Changing host) |
2022-12-28 19:50:29 +0100 | money__ | (~money@user/polo) |
2022-12-28 19:50:29 +0100 | ChanServ | +o litharge |
2022-12-28 19:50:30 +0100 | litharge | +b *!*@2601:40:c580:8530:215e:3848:10c5:78d9 |
2022-12-28 19:50:41 +0100 | litharge | -o litharge |
2022-12-28 19:51:27 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2022-12-28 19:52:35 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 19:54:08 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-12-28 19:56:01 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-28 20:02:02 +0100 | money__ | (~money@user/polo) () |
2022-12-28 20:04:59 +0100 | trev | (~trev@user/trev) |
2022-12-28 20:06:36 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-28 20:06:45 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 20:09:41 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-12-28 20:12:34 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 272 seconds) |
2022-12-28 20:14:18 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 20:20:33 +0100 | fizbin | (~fizbin@user/fizbin) |
2022-12-28 20:24:00 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-12-28 20:27:14 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2022-12-28 20:29:26 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 20:29:40 +0100 | Guest323 | (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2022-12-28 20:31:23 +0100 | acidjnk | (~acidjnk@p200300d6e7137a4229c4b6108dcb2f5b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2022-12-28 20:39:51 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-28 20:41:07 +0100 | beefbambi | (~beefbambi@183.82.177.237) |
2022-12-28 20:41:11 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) |
2022-12-28 20:43:19 +0100 | acidjnk | (~acidjnk@p200300d6e7137a42b47c8252f7d3d407.dip0.t-ipconnect.de) |
2022-12-28 20:49:31 +0100 | beefbambi | (~beefbambi@183.82.177.237) (Read error: Connection reset by peer) |
2022-12-28 20:49:50 +0100 | beefbambi | (~beefbambi@37.19.205.196) |
2022-12-28 20:50:53 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-12-28 20:56:13 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 21:00:54 +0100 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 260 seconds) |
2022-12-28 21:02:51 +0100 | Ram-Z | (~Ram-Z@li1814-254.members.linode.com) |
2022-12-28 21:07:47 +0100 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-12-28 21:15:09 +0100 | Topsi | (~Topsi@dialin-80-228-141-004.ewe-ip-backbone.de) |
2022-12-28 21:18:47 +0100 | beefbambi | (~beefbambi@37.19.205.196) (Ping timeout: 264 seconds) |
2022-12-28 21:19:23 +0100 | beefbambi | (~beefbambi@183.82.177.237) |
2022-12-28 21:23:28 +0100 | <ddellacosta> | fast-logger is thread-safe? Code suggests so but I don't see it explicitly documented anywhere |
2022-12-28 21:30:26 +0100 | <ddellacosta> | nevermind https://github.com/kazu-yamamoto/logger/issues/203 |
2022-12-28 21:30:50 +0100 | <EvanR> | oof |
2022-12-28 21:31:05 +0100 | <ddellacosta> | yeah :-( |
2022-12-28 21:31:15 +0100 | johnw | (~johnw@2600:1700:cf00:db0:e590:8ce7:d874:8b6) (Quit: ZNC - http://znc.in) |
2022-12-28 21:32:05 +0100 | <dsal> | Is the problem just logs not happening in the right order? |
2022-12-28 21:32:20 +0100 | <ddellacosta> | I mean, that's not such a big deal if I don't care about ordering, that's true |
2022-12-28 21:32:35 +0100 | <geekosaur> | lookslike it |
2022-12-28 21:32:43 +0100 | <ddellacosta> | but, it does make me want to take a closer look at the code |
2022-12-28 21:33:38 +0100 | <dsal> | It's not clear to me what the relationship between "multithreaded code" and "right order" is if there's not explicit causality being tracked. |
2022-12-28 21:34:20 +0100 | <ddellacosta> | I mean, I guess the main thing I want to know is that I can order after the fact correctly via timestamps |
2022-12-28 21:34:24 +0100 | <EvanR> | if precise timestamps are recorded then it's not true they logs will have increasing (non-decreasing?) timestamps |
2022-12-28 21:34:55 +0100 | fizbin_ | (~fizbin@user/fizbin) |
2022-12-28 21:34:59 +0100 | notzmv | (~zmv@user/notzmv) |
2022-12-28 21:35:00 +0100 | <EvanR> | whatever that's worth |
2022-12-28 21:36:03 +0100 | <monochrom> | Oh, it's saying out of order for messages from the same thread. |
2022-12-28 21:36:31 +0100 | <EvanR> | how the heck |
2022-12-28 21:38:42 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 272 seconds) |
2022-12-28 21:39:27 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-12-28 21:39:49 +0100 | pavonia | (~user@user/siracusa) |
2022-12-28 21:40:54 +0100 | <monochrom> | But then, I don't understand why the analysis explains the obersvation :) |
2022-12-28 21:41:13 +0100 | <unit73e> | log thread-safe? I never expect much instruction ordering in haskell, but that's because I never cared as long as the final result is valid. |
2022-12-28 21:41:34 +0100 | <monochrom> | What if "the final result" means the log? :) |
2022-12-28 21:41:56 +0100 | <unit73e> | in that case yeah I would care :p but that would create a big bottleneck |
2022-12-28 21:42:05 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2022-12-28 21:42:17 +0100 | <jean-paul[m]> | Where does an error like "solveWanteds: too many iterations (limit = 4)" come from? I just started using a lens and RecursiveDo at the same time (for the first time in both cases), not sure which is to blame |
2022-12-28 21:42:42 +0100 | fizbin__ | (~fizbin@user/fizbin) |
2022-12-28 21:43:12 +0100 | <monochrom> | What is the MonadFix instance in this case? |
2022-12-28 21:45:32 +0100 | <geekosaur> | jean-paul[m], that's the typechecker, and it's probably RecursiveDo (which is why monochrom is asking about the MonadFix instance, because mdo uses mfix behind the scenes) |
2022-12-28 21:46:05 +0100 | fizbin_ | (~fizbin@user/fizbin) (Ping timeout: 246 seconds) |
2022-12-28 21:46:33 +0100 | <monochrom> | Wait, it is a type error, not a run-time error? |
2022-12-28 21:46:46 +0100 | <jean-paul[m]> | Does the rest of the error tell me the relevant MonadFix instance (it says "[D] _ {1}:: MonadFix s0 (CDictCan)" but I don't know what that means) |
2022-12-28 21:46:46 +0100 | <geekosaur> | solveWanteds is the typechecker, yes |
2022-12-28 21:46:54 +0100 | <jean-paul[m]> | It is a type error yes, sorry for not specifying. |
2022-12-28 21:47:30 +0100 | Topsi | (~Topsi@dialin-80-228-141-004.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
2022-12-28 21:47:41 +0100 | <geekosaur> | but MonadFix is very likely to be why solveWanteds is looping |
2022-12-28 21:48:14 +0100 | <monochrom> | Then I don't know. |
2022-12-28 21:48:38 +0100 | <jean-paul[m]> | is solveWanteds trying to ... tie the knot, or something? And the error means it couldn't get it tied (in few enough iterations)? |
2022-12-28 21:49:11 +0100 | <geekosaur> | more complicated than that; you can't tie the knot at type level, only at value level using laziness |
2022-12-28 21:49:41 +0100 | <jean-paul[m]> | I think I fixed the cause ... I had wrong precedence on a lens operator so there was a trivial type error in the do block. But that was just from guessing, not because I understood any part of the error message. |
2022-12-28 21:50:16 +0100 | <monochrom> | I only know one kind of type-level "looping", and it's the well-known one since even Prolog: occurs check aka infinite type, which would be "(limit = finite)", not "(limit = 4)". |
2022-12-28 21:50:52 +0100 | <geekosaur> | I think the error means some type can't be resolved properly because it has as many unsolved "wanteds" (type variables, essentially) after resolving inner types as it had originally |
2022-12-28 21:51:00 +0100 | <EvanR> | ultrafinite types |
2022-12-28 21:51:01 +0100 | <geekosaur> | this shouldn't happen normally |
2022-12-28 21:51:31 +0100 | <geekosaur> | well, I guess I can't say that with certainty, iirc you can trigger it with type families |
2022-12-28 21:52:17 +0100 | <jean-paul[m]> | I am also learning to use Reflex ... which seems to use type families a lot. |
2022-12-28 21:54:17 +0100 | beefbambi | (~beefbambi@183.82.177.237) (Ping timeout: 268 seconds) |
2022-12-28 21:54:31 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) |
2022-12-28 21:56:28 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2aee:78bc:c5aa:c32c) |
2022-12-28 21:56:44 +0100 | beefbambi | (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer) |
2022-12-28 21:58:23 +0100 | beefbambi | (~beefbambi@183.82.177.237) |
2022-12-28 21:58:32 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2aee:78bc:c5aa:c32c) (Client Quit) |
2022-12-28 22:01:41 +0100 | monochrom | has a toy program that uses both BangPatterns and NumericUnderscores. OK that's it, let's just go GHC2021 haha.) |
2022-12-28 22:01:45 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-12-28 22:03:37 +0100 | <monochrom> | Oh! I'm also learning the eveff library, and when you use it you usually want to turn on TypeOperators, FlexibleContexts, RankNTypes. That's also simplifiable to GHC2021. :) |
2022-12-28 22:04:17 +0100 | trev | (~trev@user/trev) (Remote host closed the connection) |
2022-12-28 22:15:09 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2022-12-28 22:15:26 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 246 seconds) |
2022-12-28 22:17:18 +0100 | fizbin__ | fizbin |
2022-12-28 22:17:36 +0100 | wroathe | (~wroathe@user/wroathe) (Read error: Connection reset by peer) |
2022-12-28 22:18:02 +0100 | <fizbin> | Does anyone know how to get coverage of an executable's "main" module out of stack? |
2022-12-28 22:18:34 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-12-28 22:20:06 +0100 | <fizbin> | I can't figure out how to use "stack hpc" to give me what I want, though I do have these *.tix files. Is there some way I can manually take this .tix file and apply it to my main .hs file? |
2022-12-28 22:21:10 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Client Quit) |
2022-12-28 22:21:57 +0100 | <glguy> | fizbin: are you already looking at https://wiki.haskell.org/Haskell_program_coverage#Hpc_with_a_Cabal_project ? |
2022-12-28 22:22:11 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-12-28 22:22:30 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-12-28 22:24:08 +0100 | Xeroine | (~Xeroine@user/xeroine) (Read error: Connection reset by peer) |
2022-12-28 22:24:22 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2022-12-28 22:27:53 +0100 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-12-28 22:30:40 +0100 | beefbambi | (~beefbambi@183.82.177.237) (Read error: Connection reset by peer) |
2022-12-28 22:31:31 +0100 | beefbambi | (~beefbambi@183.82.177.237) |
2022-12-28 22:32:13 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2022-12-28 22:32:25 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2022-12-28 22:32:37 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2022-12-28 22:33:51 +0100 | zer0bitz | (~zer0bitz@196.244.192.62) (Read error: Connection reset by peer) |
2022-12-28 22:40:04 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 260 seconds) |
2022-12-28 22:40:29 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Quit: Client closed) |
2022-12-28 22:45:07 +0100 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-12-28 22:48:39 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2022-12-28 22:50:57 +0100 | biberu | (~biberu@user/biberu) |
2022-12-28 22:52:24 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 22:54:17 +0100 | cheater | (~Username@user/cheater) |
2022-12-28 22:55:29 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 22:56:45 +0100 | freeside | (~mengwong@103.252.202.159) (Ping timeout: 260 seconds) |
2022-12-28 22:58:03 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 248 seconds) |
2022-12-28 22:59:27 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Client Quit) |
2022-12-28 23:00:50 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 260 seconds) |
2022-12-28 23:01:01 +0100 | n0den1te | (~n0den1te@223.178.84.197) (Quit: leaving) |
2022-12-28 23:03:22 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 265 seconds) |
2022-12-28 23:06:21 +0100 | <geekosaur> | mm, nheko still dumps core when checking my matrix account, forgot about that |
2022-12-28 23:07:04 +0100 | titibandit | (~titibandi@xdsl-89-0-163-79.nc.de) (Remote host closed the connection) |
2022-12-28 23:11:22 +0100 | <monochrom> | yikes haha |
2022-12-28 23:12:33 +0100 | freeside | (~mengwong@103.252.202.159) |
2022-12-28 23:14:06 +0100 | <fizbin> | glguy: Actually, https://downloads.haskell.org/~ghc/7.6.3/docs/html/users_guide/hpc.html showed me enough commands to cobble together a report. |
2022-12-28 23:14:27 +0100 | ozkutuk53 | (~ozkutuk@176.240.173.153) (Ping timeout: 256 seconds) |
2022-12-28 23:25:08 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 246 seconds) |
2022-12-28 23:27:24 +0100 | <bjourne> | how do you write an empty do block? |
2022-12-28 23:27:53 +0100 | <Rembane> | bjourne: It's very hard. What makes you want to do that? |
2022-12-28 23:28:12 +0100 | <bjourne> | if without else |
2022-12-28 23:28:57 +0100 | <Rembane> | Perhaps guard can help you there. |
2022-12-28 23:28:59 +0100 | <Rembane> | :t guard |
2022-12-28 23:29:00 +0100 | <lambdabot> | Alternative f => Bool -> f () |
2022-12-28 23:29:05 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 23:30:39 +0100 | <sm> | or when or unless. Also return () often works. |
2022-12-28 23:30:46 +0100 | <EvanR> | :t do {} |
2022-12-28 23:30:48 +0100 | <lambdabot> | error: Empty 'do' block |
2022-12-28 23:31:05 +0100 | <EvanR> | "you can't" |
2022-12-28 23:32:19 +0100 | <mauke[m]> | :t do { M.empty } |
2022-12-28 23:32:21 +0100 | <lambdabot> | M.Map k a |
2022-12-28 23:32:39 +0100 | cheater_ | (~Username@user/cheater) |
2022-12-28 23:33:58 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2022-12-28 23:34:04 +0100 | <dsal> | > do do do do do do do do do do do empty :: Maybe () |
2022-12-28 23:34:05 +0100 | <lambdabot> | Nothing |
2022-12-28 23:34:28 +0100 | cheater__ | (~Username@user/cheater) |
2022-12-28 23:34:28 +0100 | cheater__ | cheater |
2022-12-28 23:34:40 +0100 | <shapr> | I like that song |
2022-12-28 23:34:50 +0100 | <monochrom> | No, not guard. when. |
2022-12-28 23:35:12 +0100 | <monochrom> | Alternatively, "empty do block" is pure(). |
2022-12-28 23:35:40 +0100 | <Rembane> | But then the do block has content even though it doesn't do anything. |
2022-12-28 23:35:52 +0100 | <Rembane> | I suppose you could see it in a syntactic or semantic way. |
2022-12-28 23:35:55 +0100 | <monochrom> | Well yeah it's an XY problem. |
2022-12-28 23:36:14 +0100 | <EvanR> | is the opposite of empty do = mfix return |
2022-12-28 23:36:21 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2022-12-28 23:36:29 +0100 | <monochrom> | "I want to do nothing. I think it is achieved by an empty do block." |
2022-12-28 23:36:43 +0100 | <dsal> | :t do Nothing |
2022-12-28 23:36:44 +0100 | <lambdabot> | Maybe a |
2022-12-28 23:37:15 +0100 | <Rembane> | And then things go wrong and I can take care of it like this: |
2022-12-28 23:37:17 +0100 | <Rembane> | > fix error |
2022-12-28 23:37:18 +0100 | <lambdabot> | "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex... |
2022-12-28 23:37:21 +0100 | <Rembane> | :D |
2022-12-28 23:37:31 +0100 | <monochrom> | Studying program semantics (any kind) will reveal that so-called "if-then without else" is syntax sugar for if-then-with-else but the else branch says "nop". |
2022-12-28 23:38:24 +0100 | cheater_ | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2022-12-28 23:38:26 +0100 | <monochrom> | Semantically there is always two branches and there is always content in each, even if the content may be trivial. |
2022-12-28 23:39:21 +0100 | <bjourne> | :) true but programmers care about aestethics so we don't write if (blah) { ... } else { } if we dont need the else |
2022-12-28 23:39:30 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) |
2022-12-28 23:39:36 +0100 | <monochrom> | Here "trivial" means the identity function (for functional semantics) or the identity for sequential composition (for imperative semantics). In each case the identity element of respective monoids, yes. |
2022-12-28 23:40:10 +0100 | <geekosaur[m]> | bjourne, understand that if is not a statement, it is an expression |
2022-12-28 23:40:13 +0100 | <monochrom> | Programmers should care about both aesthetics and semantics. |
2022-12-28 23:40:31 +0100 | <geekosaur[m]> | everything in haskell is an expression |
2022-12-28 23:40:37 +0100 | <dsal> | bjourne: if is an expression. What does it mean to say `let a = if False then 1` ? |
2022-12-28 23:40:42 +0100 | <bjourne> | i'm well aware of that |
2022-12-28 23:40:57 +0100 | <monochrom> | For some reason, usually FP tends to make you more painfully aware of semantics. |
2022-12-28 23:41:38 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:e41e:1f5b:1741:59ed) |
2022-12-28 23:41:48 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-12-28 23:41:53 +0100 | <dsal> | I rather dislike `if-then-else` in haskell. `bool` is usually worse, though. |
2022-12-28 23:42:33 +0100 | CodeInTheShade | (~CodeInThe@2a02:c7c:5256:d500:49bd:7435:2cab:65db) (Client Quit) |
2022-12-28 23:42:40 +0100 | <monochrom> | Is that just because of boolean being much less expressive that general ADT cases? |
2022-12-28 23:42:41 +0100 | <bjourne> | yeah similar to how c makes you painfully aware of how the heap works |
2022-12-28 23:43:04 +0100 | <mauke[m]> | technical note: C doesn't have a heap |
2022-12-28 23:43:14 +0100 | <monochrom> | Because the same consideration applies for "what if in some case I want to 'do nothing'". |
2022-12-28 23:44:04 +0100 | <mauke[m]> | technical note: gcc has a ?: operator with an optional 'then' branch |
2022-12-28 23:44:27 +0100 | <davean> | mauke[m]: which definition are you using to say C lacks a heap? |
2022-12-28 23:44:55 +0100 | <geekosaur[m]> | C doesn't define one, malloc/free are defined by a library |
2022-12-28 23:45:10 +0100 | <mauke[m]> | the standard library is part of C |
2022-12-28 23:45:25 +0100 | <monochrom> | Or you just don't like the surface syntax of "if cond then b1 else b2", you would rather like "cond ? b1 : b2" or even Hoare's invention "b1 <| cond |> b2" :) |
2022-12-28 23:45:49 +0100 | <mauke[m]> | oh no, middle endian control flow |
2022-12-28 23:46:04 +0100 | <mauke[m]> | davean: ISO 9899:something something |
2022-12-28 23:46:45 +0100 | <monochrom> | Let's just ignore the pedantics. |
2022-12-28 23:46:47 +0100 | <davean> | mauke[m]: It doesn't *mention* a heap |
2022-12-28 23:47:19 +0100 | <monochrom> | I am an average community member and when I see "heap in C" I know what the speaker refers to and I know it exists we need not "correct" the wording. |
2022-12-28 23:47:45 +0100 | <monochrom> | Languages are defined by actual users. Including both conversations and C. |
2022-12-28 23:48:01 +0100 | <mauke[m]> | how big is the average community? |
2022-12-28 23:48:04 +0100 | <davean> | I mean "heap memory" is a description of dynamic, non-stack memory |
2022-12-28 23:48:10 +0100 | <davean> | and C certainly has that in that specification |
2022-12-28 23:48:17 +0100 | <davean> | so ... it has a heap technically. |
2022-12-28 23:48:40 +0100 | <davean> | You might use a non-standard definition of heap, and then it wouldn't |
2022-12-28 23:48:43 +0100 | <mauke[m]> | I'm not sure C has a stack either, so "non-stack" may be ill-defined |
2022-12-28 23:49:42 +0100 | <EvanR> | now you all are making me question "how the heap works" xD |
2022-12-28 23:49:46 +0100 | <EvanR> | as a concept |
2022-12-28 23:50:07 +0100 | <davean> | mauke[m]: you seem to be claiming if a standard doesn't reference something by name that such a thing doesn't exist even though its semantics are pressent and the thing is a categorization |
2022-12-28 23:50:35 +0100 | <mauke[m]> | sorry for making you painfully aware :-) |
2022-12-28 23:50:52 +0100 | <monochrom> | The statement "c makes you painfully aware of how the heap works" is true because you have to painfully decide when to call malloc() and when to call free() and you will make mistakes and it all blows up. And painfully if you are lucky to work on an embedded system it may even lack a heap in the first place. In both cases the statement is true. |
2022-12-28 23:50:54 +0100 | <EvanR> | starting with, does it even (work) |
2022-12-28 23:51:58 +0100 | <monochrom> | In the same way "Python makes you painfully aware of static type checking" precisely because it doesn't have it. |
2022-12-28 23:52:36 +0100 | <monochrom> | And of course on the flip side "Haskell makes you painfully aware of dynamic type checking" to be fair haha. |
2022-12-28 23:52:40 +0100 | <mauke[m]> | davean: I think we're getting close to "monads are just containers" territory |
2022-12-28 23:53:16 +0100 | <davean> | No monads aren't containers, they're a set of operators and laws |
2022-12-28 23:53:24 +0100 | <davean> | anything that does that is a monad very clearly. |
2022-12-28 23:53:28 +0100 | <mauke[m]> | in that I claim "heap" (like "containers") is not a well-defined category, so its semantics are murky |
2022-12-28 23:54:03 +0100 | <davean> | Many monads *are not containers* in that they contain nothing. |
2022-12-28 23:54:10 +0100 | <davean> | :-p |
2022-12-28 23:54:22 +0100 | <mauke[m]> | for example? |
2022-12-28 23:54:23 +0100 | <davean> | eh |
2022-12-28 23:54:32 +0100 | <davean> | no, I'm walking that back, because thats not quite what I meant to say |
2022-12-28 23:54:42 +0100 | <davean> | and its not interesting anyway |
2022-12-28 23:55:00 +0100 | <monochrom> | Monads are heaps. There. |
2022-12-28 23:55:04 +0100 | <davean> | particularly because this is a Haskell channel, and we have a seperate definition of Monad |
2022-12-28 23:55:17 +0100 | <Jadesheit[m]> | the `(->) r` monad? |
2022-12-28 23:55:33 +0100 | <mauke[m]> | that's a container. more specifically, it's a map |
2022-12-28 23:57:21 +0100 | mikoto-chan | (~mikoto-ch@164.5.249.78) |
2022-12-28 23:58:41 +0100 | <mauke[m]> | <monochrom> "The statement "c makes you..." <- I'd say that's more C making you painfully aware of manual memory management |
2022-12-28 23:59:33 +0100 | <mauke[m]> | to which you could reply "well, that's just what I mean by 'heap'" |