2024-12-13 00:00:29 +0100 | <jle`> | tomsmeding: you could use something like ƒ maybe |
2024-12-13 00:00:59 +0100 | tomsmeding | looks at jle` |
2024-12-13 00:01:02 +0100 | sindu | (~sindu@176.75.224.1) (Ping timeout: 244 seconds) |
2024-12-13 00:01:39 +0100 | turlando | (~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.) |
2024-12-13 00:01:46 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 00:02:06 +0100 | xff0x | (~xff0x@2405:6580:b080:900:30ee:920a:5b76:45fa) |
2024-12-13 00:03:04 +0100 | turlando | (~turlando@user/turlando) turlando |
2024-12-13 00:05:18 +0100 | rstromlund | (~user@user/rstromlund) (Ping timeout: 252 seconds) |
2024-12-13 00:06:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 00:11:32 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-12-13 00:11:48 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 00:15:23 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-12-13 00:15:52 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:8070:b236:970b:b0e8) falafel |
2024-12-13 00:16:25 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.4.4) |
2024-12-13 00:16:25 +0100 | jmcantrell_ | jmcantrell |
2024-12-13 00:16:39 +0100 | Square3 | (~Square4@user/square) (Ping timeout: 252 seconds) |
2024-12-13 00:16:46 +0100 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2024-12-13 00:16:58 +0100 | jmcantrell | Guest9471 |
2024-12-13 00:16:58 +0100 | Guest9471 | (644f1bed9a@user/jmcantrell) (Killed (osmium.libera.chat (Nickname regained by services))) |
2024-12-13 00:16:58 +0100 | __jmcantrell__ | jmcantrell |
2024-12-13 00:17:08 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 00:17:09 +0100 | jmcantrell_ | (644f1bed9a@user/jmcantrell) jmcantrell |
2024-12-13 00:19:39 +0100 | Square | (~Square@user/square) Square |
2024-12-13 00:22:31 +0100 | jle` | looks back |
2024-12-13 00:22:42 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.4.4) |
2024-12-13 00:22:43 +0100 | jmcantrell_ | jmcantrell |
2024-12-13 00:23:01 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-12-13 00:23:49 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) hackager |
2024-12-13 00:23:49 +0100 | ChanServ | +v haskellbridge |
2024-12-13 00:24:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 00:24:29 +0100 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2024-12-13 00:24:29 +0100 | jmcantrell | Guest7045 |
2024-12-13 00:24:29 +0100 | Guest7045 | (644f1bed9a@user/jmcantrell) (Killed (osmium.libera.chat (Nickname regained by services))) |
2024-12-13 00:24:29 +0100 | __jmcantrell__ | jmcantrell |
2024-12-13 00:24:38 +0100 | jmcantrell_ | (644f1bed9a@user/jmcantrell) jmcantrell |
2024-12-13 00:30:42 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-12-13 00:35:10 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 00:39:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 00:50:32 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 00:52:21 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 248 seconds) |
2024-12-13 00:52:21 +0100 | jmcantrell_ | jmcantrell |
2024-12-13 00:55:10 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 00:59:06 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f3760eda8a464161486.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-12-13 01:00:15 +0100 | rstromlund | (~user@resi-86-63-140-12.isp.ozarksgo.net) |
2024-12-13 01:00:15 +0100 | rstromlund | (~user@resi-86-63-140-12.isp.ozarksgo.net) (Changing host) |
2024-12-13 01:00:15 +0100 | rstromlund | (~user@user/rstromlund) rstromlund |
2024-12-13 01:03:36 +0100 | Square | (~Square@user/square) (Ping timeout: 252 seconds) |
2024-12-13 01:04:35 +0100 | rstromlund | (~user@user/rstromlund) (Ping timeout: 244 seconds) |
2024-12-13 01:05:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 01:10:55 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-13 01:12:44 +0100 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2024-12-13 01:12:47 +0100 | jmcantrell | Guest2459 |
2024-12-13 01:12:47 +0100 | Guest2459 | (644f1bed9a@user/jmcantrell) (Killed (copper.libera.chat (Nickname regained by services))) |
2024-12-13 01:12:47 +0100 | __jmcantrell__ | jmcantrell |
2024-12-13 01:12:55 +0100 | jmcantrell_ | (644f1bed9a@user/jmcantrell) jmcantrell |
2024-12-13 01:18:59 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-13 01:21:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 01:25:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 01:32:42 +0100 | xff0x | (~xff0x@2405:6580:b080:900:30ee:920a:5b76:45fa) (Ping timeout: 276 seconds) |
2024-12-13 01:36:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 01:41:25 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 01:52:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 01:54:50 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2024-12-13 01:58:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 02:01:46 +0100 | cuteguest | (~cuteguest@2601:602:680:2280::5d66) |
2024-12-13 02:01:48 +0100 | rstromlund | (~user@user/rstromlund) rstromlund |
2024-12-13 02:02:28 +0100 | dustee | (~dustee@2601:43:100:2710:f40e:3554:f28f:fa0b) |
2024-12-13 02:03:55 +0100 | <cuteguest> | hiii ^_^ is there a way to have a GADT or type family or something where there is like a 1 - 1 match for all values of the input? what i mean is.. lets say i have a GADT that is like: data Fumbo (b :: Bool) where.. so that there is always only one constructor for Fumbo True and Fumbo False? |
2024-12-13 02:05:32 +0100 | <EvanR> | what if you just used Bool |
2024-12-13 02:05:46 +0100 | <Leary> | @hackage singletons |
2024-12-13 02:05:47 +0100 | <lambdabot> | https://hackage.haskell.org/package/singletons |
2024-12-13 02:05:49 +0100 | <Leary> | cuteguest: ^ |
2024-12-13 02:06:20 +0100 | <cuteguest> | woahg.. hav i landed in dependent type territory? |
2024-12-13 02:06:54 +0100 | rstromlund | (~user@user/rstromlund) (Ping timeout: 265 seconds) |
2024-12-13 02:06:58 +0100 | <cuteguest> | i hav slightly heard of these thank you |
2024-12-13 02:07:53 +0100 | <geekosaur> | I'm trying to figure out if you maybe just need an injective type family? |
2024-12-13 02:09:04 +0100 | <cuteguest> | hmm hmm hmm hmm |
2024-12-13 02:10:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 02:10:33 +0100 | sprotte24 | (~sprotte24@p200300d16f14d100e5c9a68ab6a328e8.dip0.t-ipconnect.de) (Quit: Leaving) |
2024-12-13 02:12:51 +0100 | <cuteguest> | testing somthings |
2024-12-13 02:15:26 +0100 | <Axman6> | definitely sounds like singletons to me |
2024-12-13 02:15:36 +0100 | dpratt | (~dpratt@165.225.220.148) dpratt |
2024-12-13 02:15:50 +0100 | <cuteguest> | the thing thats nice about GADTs is that whenever i have a like a thing "class Flimbly a where; type R :: a -> Type" i can plug the GADT in the instance for R but i cant do that with type families |
2024-12-13 02:16:45 +0100 | <cuteguest> | singletons hmm.. |
2024-12-13 02:18:28 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 02:18:31 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 02:19:56 +0100 | rstromlund | (~user@user/rstromlund) rstromlund |
2024-12-13 02:20:03 +0100 | <Axman6> | cuteguest: https://blog.jle.im/entry/introduction-to-singletons-1.html is probably a better introduction than the package docs, which are pretty impenetrable |
2024-12-13 02:20:19 +0100 | <cuteguest> | tysm ^_^ |
2024-12-13 02:22:05 +0100 | <dpratt> | haven't even gotten to the hard parts of day 12 and my `getRegion` function is quite slow -- any pointers or suggestions? https://gist.github.com/dgpratt/86b713c7dfadc748ae05fa1021750bb2 |
2024-12-13 02:23:01 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-13 02:23:03 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-13 02:26:45 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
2024-12-13 02:26:45 +0100 | ljdarj1 | ljdarj |
2024-12-13 02:28:11 +0100 | dustee | (~dustee@2601:43:100:2710:f40e:3554:f28f:fa0b) (Quit: Client closed) |
2024-12-13 02:28:43 +0100 | <cuteguest> | are you doing a code advent calendar? : ) |
2024-12-13 02:29:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 02:29:51 +0100 | <dpratt> | cuteguest guess you're asking me, in which case yes (well...I guess I am whether or not you asked me) |
2024-12-13 02:30:15 +0100 | <cuteguest> | i was asking you ^ .^ |
2024-12-13 02:30:56 +0100 | <dpratt> | I like Haskell a lot, but I don't have much excuse/reason to use it. But when AoC comes around, I try to get as far as I can with Haskell solutions. |
2024-12-13 02:31:43 +0100 | <cuteguest> | aww thats cool |
2024-12-13 02:31:47 +0100 | <cuteguest> | haskell is great i think |
2024-12-13 02:31:56 +0100 | cuteguest | (~cuteguest@2601:602:680:2280::5d66) (Quit: Client closed) |
2024-12-13 02:32:09 +0100 | cuteguest | (~cuteguest@c-73-239-49-112.hsd1.wa.comcast.net) |
2024-12-13 02:33:25 +0100 | <dpratt> | glguy you have any advice for my slow function above? |
2024-12-13 02:33:42 +0100 | ethantwardy | (user@user/ethantwardy) (Quit: WeeChat 4.3.2) |
2024-12-13 02:34:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 02:36:50 +0100 | <c_wraith> | dpratt: is it slow, or looping forever? |
2024-12-13 02:37:25 +0100 | <dpratt> | c_wraith slow -- `getRegion plotMap (1,1)` takes about 30s |
2024-12-13 02:37:35 +0100 | <c_wraith> | On which input, anyway? |
2024-12-13 02:37:54 +0100 | CrunchyFlakes | (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-12-13 02:37:57 +0100 | <c_wraith> | I mean, 30s is just implausible. today isn't a performance challenge. Just a "figure out how to do that" challenge. |
2024-12-13 02:38:06 +0100 | <dpratt> | c_wraith on the "real" input |
2024-12-13 02:38:19 +0100 | <dpratt> | c_wraith I agree, no idea why it takes so long |
2024-12-13 02:40:21 +0100 | CrunchyFlakes | (~CrunchyFl@31.19.233.78) |
2024-12-13 02:40:33 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-12-13 02:42:10 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2024-12-13 02:42:58 +0100 | <c_wraith> | ok, the only way it's going to be 30s is if it's going exponential |
2024-12-13 02:43:50 +0100 | <c_wraith> | ah. and it is. |
2024-12-13 02:44:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 02:44:54 +0100 | <c_wraith> | your definition of adjacent (line 26) is insufficient. It's sharing the same visited map with each recursive call. It needs to thread updates along. |
2024-12-13 02:44:57 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-12-13 02:47:49 +0100 | <c_wraith> | consider what it's going to do with a big square of the same plot type, starting at a corner. The recursive calls to the next two will know the corner was visited. But the recursive calls from each of those will not know about the other one. |
2024-12-13 02:48:04 +0100 | <c_wraith> | That's still going to add up to exponential growth as you cross the whole square. |
2024-12-13 02:48:10 +0100 | <dpratt> | c_wraith ah, ok, thanks for pointing that out -- I suppose that means I should figure out how to make this a "stateful" computation |
2024-12-13 02:48:40 +0100 | <dpratt> | c_wraith makes sense, thanks! |
2024-12-13 02:49:12 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 02:49:19 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:8070:b236:970b:b0e8) (Ping timeout: 260 seconds) |
2024-12-13 03:00:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 03:04:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 03:13:00 +0100 | dpratt | (~dpratt@165.225.220.148) (Quit: Client closed) |
2024-12-13 03:15:37 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 03:18:40 +0100 | cuteguest | (~cuteguest@c-73-239-49-112.hsd1.wa.comcast.net) (Ping timeout: 240 seconds) |
2024-12-13 03:19:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 03:27:53 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds) |
2024-12-13 03:30:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 03:35:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 03:35:49 +0100 | rstromlund | (~user@user/rstromlund) (Ping timeout: 245 seconds) |
2024-12-13 03:44:59 +0100 | homo | (~homo@user/homo) (Quit: homo) |
2024-12-13 03:45:23 +0100 | homo | (~homo@user/homo) homo |
2024-12-13 03:46:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 03:50:49 +0100 | harveypwca | (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) HarveyPwca |
2024-12-13 03:54:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 03:54:13 +0100 | housemate | (~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) housemate |
2024-12-13 03:55:20 +0100 | housemate | (~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) (Remote host closed the connection) |
2024-12-13 03:55:42 +0100 | housemate | (~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) housemate |
2024-12-13 04:06:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 04:10:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 04:10:43 +0100 | eL_Bart0- | (eL_Bart0@dietunichtguten.org) (Ping timeout: 252 seconds) |
2024-12-13 04:11:26 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2024-12-13 04:15:01 +0100 | sam113101 | (~sam@modemcable220.199-203-24.mc.videotron.ca) (Quit: WeeChat 4.4.3) |
2024-12-13 04:26:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 04:31:08 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 04:34:13 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-13 04:37:15 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-13 04:40:56 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2024-12-13 04:41:40 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
2024-12-13 04:41:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 04:46:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 04:51:03 +0100 | rstromlund | (~user@user/rstromlund) rstromlund |
2024-12-13 04:53:59 +0100 | td_ | (~td@i5387090C.versanet.de) (Ping timeout: 244 seconds) |
2024-12-13 04:55:32 +0100 | rstromlund | (~user@user/rstromlund) (Ping timeout: 244 seconds) |
2024-12-13 04:56:10 +0100 | td_ | (~td@i5387093F.versanet.de) td_ |
2024-12-13 04:57:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 05:04:19 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 05:10:11 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2024-12-13 05:12:50 +0100 | housemate | (~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf) |
2024-12-13 05:14:03 +0100 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2024-12-13 05:14:15 +0100 | gorignak | (~gorignak@user/gorignak) gorignak |
2024-12-13 05:15:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 05:19:39 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-13 05:20:16 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 05:22:44 +0100 | homo_ | (~homo@user/homo) homo |
2024-12-13 05:23:27 +0100 | homo | (~homo@user/homo) (Ping timeout: 246 seconds) |
2024-12-13 05:23:28 +0100 | homo_ | homo |
2024-12-13 05:25:24 +0100 | Elena59 | (~Elena@37.25.86.87) |
2024-12-13 05:26:58 +0100 | Elena59 | (~Elena@37.25.86.87) (Client Quit) |
2024-12-13 05:31:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 05:35:19 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2024-12-13 05:35:40 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 05:36:16 +0100 | ethantwardy | (user@user/ethantwardy) ethantwardy |
2024-12-13 05:37:36 +0100 | aforemny | (~aforemny@i577B130D.versanet.de) aforemny |
2024-12-13 05:38:40 +0100 | aforemny_ | (~aforemny@2001:9e8:6cd1:7b00:688b:324:5065:e57a) (Ping timeout: 260 seconds) |
2024-12-13 05:46:35 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 05:49:50 +0100 | harveypwca | (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving) |
2024-12-13 05:51:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-13 05:52:40 +0100 | youthlic | (~Thunderbi@user/youthlic) (Quit: youthlic) |
2024-12-13 05:54:53 +0100 | youthlic | (~Thunderbi@user/youthlic) youthlic |
2024-12-13 06:01:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 06:04:44 +0100 | alp | (~alp@2001:861:8ca0:4940:4155:329b:9129:3e66) (Remote host closed the connection) |
2024-12-13 06:05:00 +0100 | alp | (~alp@2001:861:8ca0:4940:1c03:a77a:acae:42) |
2024-12-13 06:06:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 06:15:12 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) (Remote host closed the connection) |
2024-12-13 06:17:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 06:21:49 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 06:32:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 06:34:11 +0100 | sam113101 | (~sam@modemcable220.199-203-24.mc.videotron.ca) sam113101 |
2024-12-13 06:39:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-13 06:39:31 +0100 | michalz | (~michalz@185.246.207.197) |
2024-12-13 06:51:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 06:51:40 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Ping timeout: 240 seconds) |
2024-12-13 06:56:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-13 06:58:21 +0100 | gorignak | (~gorignak@user/gorignak) (Quit: quit) |
2024-12-13 06:59:56 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 07:02:02 +0100 | gorignak | (~gorignak@user/gorignak) gorignak |
2024-12-13 07:04:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 07:08:15 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:a2ac:33fd:6c9:13bb) falafel |
2024-12-13 07:15:16 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 07:20:27 +0100 | cptaffe | (~cptaffe@user/cptaffe) (Ping timeout: 276 seconds) |
2024-12-13 07:22:16 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 07:23:06 +0100 | cptaffe | (~cptaffe@user/cptaffe) cptaffe |
2024-12-13 07:33:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 07:38:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 07:39:18 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:a2ac:33fd:6c9:13bb) (Ping timeout: 276 seconds) |
2024-12-13 07:42:48 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-13 07:44:29 +0100 | mange | (~user@user/mange) (Remote host closed the connection) |
2024-12-13 07:48:52 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 07:53:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-13 07:55:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 07:56:03 +0100 | housemate | (~housemate@2001:8004:27a8:259e:1908:8615:d13f:227b) housemate |
2024-12-13 07:57:18 +0100 | CiaoSen | (~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-13 07:57:44 +0100 | <iqubic> | What's the size of Haskell's Ints, and how does that differ from Integer? |
2024-12-13 07:59:28 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 08:00:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 08:01:57 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 08:04:00 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-12-13 08:05:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 08:07:47 +0100 | <probie> | "Haskell"'s Ints are "at least 30 bits". With GHC they're machine word sized (so probably 64 bit). Integer's are (in theory) unbounded, although it used to be the case that they couldn't handle an `Integer` that took more than 4GB to represent |
2024-12-13 08:07:57 +0100 | <probie> | s/Integer's/Integers/ |
2024-12-13 08:09:07 +0100 | <probie> | (Integers in GHC which are backed with gmp, that is) |
2024-12-13 08:10:09 +0100 | acidsys | (~crameleon@openSUSE/member/crameleon) (Ping timeout: 248 seconds) |
2024-12-13 08:13:25 +0100 | <iqubic> | That makes sense. |
2024-12-13 08:15:03 +0100 | housemate | (~housemate@2001:8004:27a8:259e:1908:8615:d13f:227b) (Read error: Connection reset by peer) |
2024-12-13 08:16:02 +0100 | <haskellbridge> | <hellwolf> fwiw, there is a difference between ** vs. ^ |
2024-12-13 08:16:22 +0100 | <haskellbridge> | <hellwolf> :t (**) |
2024-12-13 08:16:54 +0100 | <haskellbridge> | <hellwolf> :t (^) |
2024-12-13 08:17:28 +0100 | <haskellbridge> | <hellwolf> hmm, i can only use this bot when i am using irc, i guess |
2024-12-13 08:18:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 08:20:20 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-12-13 08:23:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 08:24:13 +0100 | <iqubic> | :t (**) |
2024-12-13 08:24:14 +0100 | <lambdabot> | Floating a => a -> a -> a |
2024-12-13 08:24:18 +0100 | <iqubic> | :t (^) |
2024-12-13 08:24:19 +0100 | <lambdabot> | (Integral b, Num a) => a -> b -> a |
2024-12-13 08:24:36 +0100 | <iqubic> | I got you, fam! |
2024-12-13 08:27:10 +0100 | <c_wraith> | I think the current limit on Integer is that the gmp representation can't have more 2^64 or more "limbs". Where I guess a limb is a machine word. That's more memory than most computers have. |
2024-12-13 08:29:03 +0100 | <iqubic> | Cool. So, for Advent of Code I should be fine with just Ints. |
2024-12-13 08:29:24 +0100 | ft | (~ft@p508db9c7.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-12-13 08:29:26 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-13 08:30:12 +0100 | <iqubic> | Other langauges have Ints and Longs, but Haskell doesn't really. |
2024-12-13 08:30:45 +0100 | vpan | (~vpan@212.117.1.172) |
2024-12-13 08:31:46 +0100 | <c_wraith> | I actually used Integer today, but that was sort of accidental because I was using Rational, and Rational = Ratio Integer. I *could* have used Ratio Int, but... that's two tokens! |
2024-12-13 08:32:32 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection) |
2024-12-13 08:33:03 +0100 | acidsys | (~crameleon@openSUSE/member/crameleon) crameleon |
2024-12-13 08:34:19 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 08:34:28 +0100 | mhatta | (~mhatta@www21123ui.sakura.ne.jp) |
2024-12-13 08:36:21 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 08:38:29 +0100 | <probie> | hellowolf: try adding a blank new line before commands to lambdabot |
2024-12-13 08:38:37 +0100 | CiaoSen | (~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 252 seconds) |
2024-12-13 08:38:47 +0100 | <probie> | s/hellowolf/hellwolf/ |
2024-12-13 08:38:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 08:40:30 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 08:40:46 +0100 | housemate | (~housemate@2001:8004:1640:2cb0::12e) housemate |
2024-12-13 08:44:32 +0100 | briandaed | (~root@user/briandaed) briandaed |
2024-12-13 08:46:37 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2024-12-13 08:49:31 +0100 | CiaoSen | (~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-13 08:49:43 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 08:53:32 +0100 | <haskellbridge> | <hellwolf> got it |
2024-12-13 08:53:32 +0100 | <haskellbridge> | :t div |
2024-12-13 08:53:33 +0100 | <lambdabot> | Integral a => a -> a -> a |
2024-12-13 08:54:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-13 08:54:32 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-12-13 08:55:06 +0100 | <haskellbridge> | <hellwolf> :t (180 * (10 ^ 18)) "div" 3600 * 24 |
2024-12-13 08:55:29 +0100 | <haskellbridge> | <hellwolf> bot pls |
2024-12-13 08:55:30 +0100 | <haskellbridge> | :t (180 * (10 ^ 18)) "div" 3600 * 24 |
2024-12-13 08:55:42 +0100 | <lambdabot> | (Num a, Num t, Num ([Char] -> t -> a)) => a |
2024-12-13 08:56:09 +0100 | <haskellbridge> | <hellwolf> 🫠 |
2024-12-13 08:58:09 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:b2f3:1ea5:3edd:91fa) falafel |
2024-12-13 09:00:02 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-12-13 09:00:40 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-12-13 09:01:00 +0100 | <haskellbridge> | <hellwolf> bot pls |
2024-12-13 09:01:00 +0100 | <haskellbridge> | : (180 * (10 ^ 18)) "div" 3600 * 24 |
2024-12-13 09:01:31 +0100 | <haskellbridge> | <hellwolf> bot pls |
2024-12-13 09:01:31 +0100 | <haskellbridge> | :eval (180 * (10 ^ 18)) "div" 3600 * 24 |
2024-12-13 09:01:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 09:06:11 +0100 | <probie> | It's `>` if you want lambdabot to execute something |
2024-12-13 09:06:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 09:07:40 +0100 | <c_wraith> | well, `> `. The space is necessary. |
2024-12-13 09:07:51 +0100 | tcard_ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2024-12-13 09:11:07 +0100 | Square | (~Square@user/square) Square |
2024-12-13 09:11:38 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-12-13 09:15:30 +0100 | <haskellbridge> | <hellwolf> bot pls |
2024-12-13 09:15:30 +0100 | <haskellbridge> | > (180 * (10 ^ 18)) "div" 3600 * 24 |
2024-12-13 09:15:32 +0100 | <lambdabot> | error: |
2024-12-13 09:15:32 +0100 | <lambdabot> | • Could not deduce (Num t0) |
2024-12-13 09:15:32 +0100 | <lambdabot> | from the context: (Num a, Num t, Num ([Char] -> t -> a)) |
2024-12-13 09:15:51 +0100 | <haskellbridge> | <hellwolf> bot pls |
2024-12-13 09:15:51 +0100 | <haskellbridge> | > (180 * (10 ^ 18)) "div" 3600 * 24 :: Integer |
2024-12-13 09:15:52 +0100 | <lambdabot> | error: |
2024-12-13 09:15:52 +0100 | <lambdabot> | • No instance for (Num ([Char] -> Integer -> Integer)) |
2024-12-13 09:15:52 +0100 | <lambdabot> | arising from a use of ‘*’ |
2024-12-13 09:16:12 +0100 | <c_wraith> | hellwolf: you're using "" instead of `` |
2024-12-13 09:16:19 +0100 | <c_wraith> | > 10 `div` 2 |
2024-12-13 09:16:20 +0100 | <lambdabot> | 5 |
2024-12-13 09:16:47 +0100 | <haskellbridge> | <hellwolf> it's the mobile client of element... |
2024-12-13 09:17:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 09:17:53 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-12-13 09:18:53 +0100 | <probie> | You might just have to write `div` in prefix form if element (or the bridge) is replacing backticks with double quotes |
2024-12-13 09:22:05 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-13 09:26:24 +0100 | <briandaed> | :t (180 * (10 ^ 18)) `div` 3600 * 24 |
2024-12-13 09:26:25 +0100 | <lambdabot> | Integral a => a |
2024-12-13 09:27:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-12-13 09:27:15 +0100 | <int-e> | briandaed: do you want (3600 * 24) |
2024-12-13 09:27:30 +0100 | <int-e> | (aka 86400 but that's not the point) |
2024-12-13 09:28:04 +0100 | <int-e> | or maybe I should be asking hellwolf |
2024-12-13 09:29:08 +0100 | <briandaed> | nah, just playing with hellwolf's test |
2024-12-13 09:33:46 +0100 | <hololeap> | hi, I have a question about immutable data and data sharing with ghc |
2024-12-13 09:35:12 +0100 | <hololeap> | is it correct that data is shared when you make copies of immutable data, but this gets complicated with Text where sharing parts of a utf-8 string could result in corruption? |
2024-12-13 09:36:18 +0100 | <hololeap> | eg compacted data is harder to share than a list of data fragments |
2024-12-13 09:36:25 +0100 | <c_wraith> | sharing can't corrupt things - only mutating can. |
2024-12-13 09:36:33 +0100 | <int-e> | It's not really corruption that you have to worry about... the problem you can run into is that when you extract a single word from a big chunk of text, that single-word Text value can keep the whole chunk alive. |
2024-12-13 09:36:43 +0100 | <int-e> | So you can potentially waste a ton of memory. |
2024-12-13 09:38:02 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 09:38:13 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2024-12-13 09:38:15 +0100 | <c_wraith> | But yeah, you can accidentally hold a gigabyte buffer when you only care about a few characters. |
2024-12-13 09:39:04 +0100 | housemate | (~housemate@2001:8004:1640:2cb0::12e) (Ping timeout: 272 seconds) |
2024-12-13 09:39:07 +0100 | <int-e> | When bytestring liberally used `inlinePerformIO` that lead to corruption though. It was a bug. |
2024-12-13 09:40:04 +0100 | housemate | (~housemate@2001:8004:1680:927::12e) housemate |
2024-12-13 09:40:18 +0100 | <hololeap> | I was just thinking about how ghc might try to reduce data duplication with immutable data, but my ideas fell apart when I started thinking about Text |
2024-12-13 09:42:17 +0100 | <probie> | That's what things like Data.Text.copy (https://hackage.haskell.org/package/text-2.1.2/docs/Data-Text.html#v:copy) are for. But you have to manually do it, GHC won't do it for you |
2024-12-13 09:42:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 09:44:08 +0100 | <hololeap> | but GHC will do it for you with [Char]? |
2024-12-13 09:44:57 +0100 | <c_wraith> | Eh. Not exactly. |
2024-12-13 09:45:18 +0100 | <c_wraith> | You can end up using a lot more memory than you intended because of sharing lists, too |
2024-12-13 09:45:20 +0100 | <int-e> | There's a hack for avoiding duplicate `Char` values arising from decoding C strings. Other than that, no, GHC's runtime won't deduplicate data for you. |
2024-12-13 09:45:42 +0100 | <int-e> | (There's no hash-consing to throw in a related keyword.) |
2024-12-13 09:45:47 +0100 | <c_wraith> | the classic example is let xs = [1 .. 100000000 ] in xs ++ xs |
2024-12-13 09:46:08 +0100 | <c_wraith> | The sharing there destroys the ability to stream the list |
2024-12-13 09:46:24 +0100 | <hololeap> | like, if I say: a = ['a','b','c']; b = a |
2024-12-13 09:46:34 +0100 | <hololeap> | will there be two copies of ['a','b','c'] in memory? |
2024-12-13 09:46:42 +0100 | <c_wraith> | No. |
2024-12-13 09:49:07 +0100 | <hololeap> | how about if I said: f (y:ys) = y:['q']; b = f a |
2024-12-13 09:49:15 +0100 | <hololeap> | would there be two copies of 'a' in memory? |
2024-12-13 09:50:38 +0100 | <int-e> | no. |
2024-12-13 09:50:54 +0100 | <c_wraith> | in general, if you're looking at it at an implementation level, variables in GHC correspond to pointers. |
2024-12-13 09:51:09 +0100 | <int-e> | if you evaluate `b` that ends up as ['a','q'] where the 'a' is shared with the one in `a`. |
2024-12-13 09:51:45 +0100 | <hololeap> | ok. that pretty much answers my question. |
2024-12-13 09:51:47 +0100 | <hololeap> | ty! |
2024-12-13 09:51:53 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-13 09:52:06 +0100 | <hololeap> | that's what I thought but I had to confirm |
2024-12-13 09:53:25 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 09:53:33 +0100 | <int-e> | Keep in mind that lists are linked lists. Each evaluated non-empty list x:xs is a heap cell for the constructor : with a pointer to x and a pointer to xs. |
2024-12-13 09:54:13 +0100 | <int-e> | and [x,y] is x:(y:[]) |
2024-12-13 09:54:40 +0100 | <int-e> | so you can share list elements and list tails |
2024-12-13 09:55:11 +0100 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) szkl |
2024-12-13 09:55:13 +0100 | <int-e> | > tails [1,2,3,4] -- lots of sharing here |
2024-12-13 09:55:14 +0100 | <lambdabot> | [[1,2,3,4],[2,3,4],[3,4],[4],[]] |
2024-12-13 09:55:24 +0100 | <int-e> | > inits [1,2,3,4] -- only elements are shared here |
2024-12-13 09:55:25 +0100 | <lambdabot> | [[],[1],[1,2],[1,2,3],[1,2,3,4]] |
2024-12-13 09:55:28 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 09:55:49 +0100 | <hololeap> | usually I assume ghc does the most sensible thing but sometimes I have to check :D |
2024-12-13 09:56:16 +0100 | <int-e> | you can destroy sharing easily |
2024-12-13 09:56:55 +0100 | <int-e> | map id xs will create a copy of xs sharing the elements but with an entirely new spine (all the : constructors) |
2024-12-13 09:57:35 +0100 | <hololeap> | that's interesting |
2024-12-13 09:57:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 09:59:13 +0100 | <hololeap> | does that ever become an issue? |
2024-12-13 09:59:24 +0100 | <int-e> | (Hmm, unless GHC has a rewrite rule for `map id = id` somewhere; I don't know that.) |
2024-12-13 09:59:34 +0100 | <hololeap> | or does the GC keep up with it |
2024-12-13 10:00:41 +0100 | <hololeap> | I know gc thrash can be an issue in itself |
2024-12-13 10:01:33 +0100 | <int-e> | if you use `coerce` a lot, convincing the compiler that `fmap coerce = coerce` can be very helpful. I've seen hacks around that in lens. |
2024-12-13 10:02:28 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-12-13 10:02:43 +0100 | <int-e> | (`coerce` *operates* like `id` even though it changes the type) |
2024-12-13 10:03:12 +0100 | <hololeap> | right, it's basically yelling at the compiler "these two things are the same thing!" |
2024-12-13 10:03:58 +0100 | <hololeap> | or, I guess "these two representations of the same thing are equal" |
2024-12-13 10:04:01 +0100 | <probie> | int-e: It doesn't have `map id = id` directly, but it may unfold to one. `map id xs` definitely reduces to at least `build (\c n -> foldr c n xs)`, and I think GHC might have rules that further reduce that to id |
2024-12-13 10:04:24 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) (Ping timeout: 264 seconds) |
2024-12-13 10:09:09 +0100 | <int-e> | probie: Yeah there should be a rule to turn build + foldr back into id. So instead of `map id` I should probably use an ad-hoc recursive function, foo (x:xs) = x : foo xs; foo [] = [] |
2024-12-13 10:12:13 +0100 | <hololeap> | is there any way in ghci to see if two variables point to the same data in memory? |
2024-12-13 10:13:51 +0100 | <int-e> | kind of |
2024-12-13 10:14:29 +0100 | <int-e> | there's `reallyUnsafePointerEquality` in GHC.Exts (or some abbreviation thereof, I can't look it up right now) |
2024-12-13 10:15:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 10:15:44 +0100 | <int-e> | It can produce false negatives, and there are rare circumstances under which it can flip from true to false too. |
2024-12-13 10:19:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 10:23:34 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) acidjnk |
2024-12-13 10:27:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 10:30:31 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-12-13 10:31:27 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2024-12-13 10:31:53 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
2024-12-13 10:31:53 +0100 | jmcantrell_ | jmcantrell |
2024-12-13 10:31:55 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 10:38:53 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2024-12-13 10:40:39 +0100 | Digit | (~user@user/digit) (Ping timeout: 276 seconds) |
2024-12-13 10:41:51 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) jespada |
2024-12-13 10:42:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 10:44:44 +0100 | falafel | (~falafel@2603:8000:b4f0:62a0:b2f3:1ea5:3edd:91fa) (Ping timeout: 260 seconds) |
2024-12-13 10:47:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 10:50:29 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2024-12-13 10:50:33 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 10:52:06 +0100 | sprotte24 | (~sprotte24@p200300d16f08ae001421f9574c92b051.dip0.t-ipconnect.de) |
2024-12-13 10:52:17 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-12-13 10:58:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 10:59:57 +0100 | <probie> | There's a safe way to do it (dwelling in IO). I've done it before (although it has false negatives), I just can't remember it off the top of my head |
2024-12-13 11:01:21 +0100 | housemate | (~housemate@2001:8004:1680:927::12e) (Ping timeout: 248 seconds) |
2024-12-13 11:04:06 +0100 | <Leary> | probie: Probably `StableName`. |
2024-12-13 11:06:03 +0100 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-12-13 11:07:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 11:08:06 +0100 | Digitteknohippie | Digit |
2024-12-13 11:09:39 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 11:09:49 +0100 | <probie> | Leary: that's the one. I need a hoogle clone that searches my memory |
2024-12-13 11:17:44 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-12-13 11:19:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 11:24:53 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-13 11:25:42 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-13 11:31:38 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-13 11:32:11 +0100 | CrunchyFlakes | (~CrunchyFl@31.19.233.78) (Read error: Connection reset by peer) |
2024-12-13 11:32:42 +0100 | homo | (~homo@user/homo) (Quit: homo) |
2024-12-13 11:35:01 +0100 | CrunchyFlakes | (~CrunchyFl@31.19.233.78) |
2024-12-13 11:35:32 +0100 | homo | (~homo@user/homo) homo |
2024-12-13 11:39:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 11:43:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 11:48:16 +0100 | CiaoSen | (~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 272 seconds) |
2024-12-13 11:49:53 +0100 | ubert | (~Thunderbi@p200300ecdf117c5bfeb2bbe2c0c50acc.dip0.t-ipconnect.de) ubert |
2024-12-13 11:54:28 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 11:58:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 12:04:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 12:08:18 +0100 | __monty__ | (~toonn@user/toonn) toonn |
2024-12-13 12:09:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 12:11:39 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-12-13 12:20:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 12:25:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 12:33:09 +0100 | arthurvl | earthy |
2024-12-13 12:35:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 12:40:05 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-12-13 12:40:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 12:47:07 +0100 | mari-estel | (~mari-este@user/mari-estel) () |
2024-12-13 12:51:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 12:55:22 +0100 | sprotte24 | (~sprotte24@p200300d16f08ae001421f9574c92b051.dip0.t-ipconnect.de) (Quit: Leaving) |
2024-12-13 12:57:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-12-13 12:59:43 +0100 | __monty_1 | (~toonn@user/toonn) toonn |
2024-12-13 13:00:54 +0100 | __monty__ | (~toonn@user/toonn) (Killed (NickServ (GHOST command used by __monty_1))) |
2024-12-13 13:00:59 +0100 | __monty_1 | __monty__ |
2024-12-13 13:01:50 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 13:05:45 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-13 13:05:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 13:09:09 +0100 | CiaoSen | (~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) CiaoSen |
2024-12-13 13:10:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-13 13:20:46 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-12-13 13:21:14 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 13:23:30 +0100 | xff0x | (~xff0x@2405:6580:b080:900:33bd:b9d7:1cc6:1151) |
2024-12-13 13:28:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 13:33:23 +0100 | housemate | (~housemate@2001:8004:1680:45b::12e) housemate |
2024-12-13 13:35:40 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 13:39:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 13:41:38 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2024-12-13 13:42:58 +0100 | Digit | (~user@user/digit) (Ping timeout: 252 seconds) |
2024-12-13 13:43:42 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 13:46:00 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 13:50:34 +0100 | housemate | (~housemate@2001:8004:1680:45b::12e) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf) |
2024-12-13 13:51:44 +0100 | Digitteknohippie | Digit |
2024-12-13 13:54:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 13:54:49 +0100 | doyougnu | (~doyougnu@syn-045-046-170-068.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-12-13 13:55:00 +0100 | doyougnu | (~doyougnu@syn-045-046-170-068.res.spectrum.com) doyougnu |
2024-12-13 13:59:35 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 14:00:20 +0100 | ubert | (~Thunderbi@p200300ecdf117c5bfeb2bbe2c0c50acc.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2024-12-13 14:06:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 14:07:37 +0100 | srazkvt | (~sarah@user/srazkvt) srazkvt |
2024-12-13 14:11:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 14:16:45 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-13 14:22:16 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 14:22:30 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-12-13 14:23:25 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2024-12-13 14:25:37 +0100 | ubert | (~Thunderbi@p200300ecdf117c5bcbacc4208e66254f.dip0.t-ipconnect.de) ubert |
2024-12-13 14:30:33 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-12-13 14:31:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 14:41:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 14:43:37 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2024-12-13 14:46:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 14:47:23 +0100 | ft | (~ft@p508db9c7.dip0.t-ipconnect.de) ft |
2024-12-13 14:51:45 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-12-13 14:57:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 14:58:58 +0100 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) (Read error: Connection reset by peer) |
2024-12-13 14:59:40 +0100 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) GdeVolpiano |
2024-12-13 15:01:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 15:04:47 +0100 | tinjamin4 | (~tinjamin@banshee.h4x0r.space) (Quit: The Lounge - https://thelounge.chat) |
2024-12-13 15:06:32 +0100 | tinjamin4 | (~tinjamin@banshee.h4x0r.space) |
2024-12-13 15:06:43 +0100 | Fabric | (~Fabric@167.136.189.80.dyn.plus.net) |
2024-12-13 15:06:59 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
2024-12-13 15:07:14 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2024-12-13 15:07:52 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 15:12:19 +0100 | vpan | (~vpan@212.117.1.172) (Quit: Leaving.) |
2024-12-13 15:12:30 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-13 15:18:59 +0100 | dpratt | (~dpratt@165.225.220.148) dpratt |
2024-12-13 15:23:25 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 15:25:09 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-13 15:26:09 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 246 seconds) |
2024-12-13 15:26:32 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2024-12-13 15:27:56 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 15:30:34 +0100 | CiaoSen | (~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds) |
2024-12-13 15:44:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 15:49:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 15:54:24 +0100 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft |
2024-12-13 15:55:08 +0100 | mceresa | (~mceresa@user/mceresa) (Remote host closed the connection) |
2024-12-13 15:56:26 +0100 | mceresa | (~mceresa@user/mceresa) mceresa |
2024-12-13 15:57:50 +0100 | dpratt | (~dpratt@165.225.220.148) (Quit: Client closed) |
2024-12-13 15:59:05 +0100 | alp | (~alp@2001:861:8ca0:4940:1c03:a77a:acae:42) (Remote host closed the connection) |
2024-12-13 15:59:24 +0100 | alp | (~alp@2001:861:8ca0:4940:fe35:b2c7:be3f:81c) |
2024-12-13 15:59:40 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 16:00:47 +0100 | alp | (~alp@2001:861:8ca0:4940:fe35:b2c7:be3f:81c) (Remote host closed the connection) |
2024-12-13 16:01:06 +0100 | alp | (~alp@2001:861:8ca0:4940:c731:528a:cc7b:83c4) |
2024-12-13 16:02:28 +0100 | alp | (~alp@2001:861:8ca0:4940:c731:528a:cc7b:83c4) (Remote host closed the connection) |
2024-12-13 16:02:47 +0100 | alp | (~alp@2001:861:8ca0:4940:6356:ce55:f764:8f07) |
2024-12-13 16:04:09 +0100 | alp | (~alp@2001:861:8ca0:4940:6356:ce55:f764:8f07) (Remote host closed the connection) |
2024-12-13 16:04:29 +0100 | alp | (~alp@2001:861:8ca0:4940:1fde:7520:470c:b702) |
2024-12-13 16:04:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-13 16:05:50 +0100 | alp | (~alp@2001:861:8ca0:4940:1fde:7520:470c:b702) (Remote host closed the connection) |
2024-12-13 16:06:09 +0100 | alp | (~alp@2001:861:8ca0:4940:a0f8:bb83:fcc1:1af2) |
2024-12-13 16:07:31 +0100 | alp | (~alp@2001:861:8ca0:4940:a0f8:bb83:fcc1:1af2) (Remote host closed the connection) |
2024-12-13 16:07:49 +0100 | alp | (~alp@2001:861:8ca0:4940:368f:e308:67fd:150f) |
2024-12-13 16:08:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 16:09:31 +0100 | alp_ | (~alp@2001:861:8ca0:4940:bbaf:78a6:fe4b:94e9) |
2024-12-13 16:10:54 +0100 | alp_ | (~alp@2001:861:8ca0:4940:bbaf:78a6:fe4b:94e9) (Remote host closed the connection) |
2024-12-13 16:11:12 +0100 | alp_ | (~alp@2001:861:8ca0:4940:3ebc:4e24:bba7:15f2) |
2024-12-13 16:12:08 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
2024-12-13 16:12:35 +0100 | alp_ | (~alp@2001:861:8ca0:4940:3ebc:4e24:bba7:15f2) (Remote host closed the connection) |
2024-12-13 16:12:52 +0100 | alp | (~alp@2001:861:8ca0:4940:368f:e308:67fd:150f) (Ping timeout: 252 seconds) |
2024-12-13 16:12:52 +0100 | alp_ | (~alp@2001:861:8ca0:4940:86cd:64ae:1e47:4ab3) |
2024-12-13 16:14:35 +0100 | alp__ | (~alp@128-79-174-146.hfc.dyn.abo.bbox.fr) |
2024-12-13 16:15:28 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 16:17:41 +0100 | alp_ | (~alp@2001:861:8ca0:4940:86cd:64ae:1e47:4ab3) (Ping timeout: 252 seconds) |
2024-12-13 16:18:18 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2024-12-13 16:18:54 +0100 | dpratt | (~dpratt@165.225.220.148) dpratt |
2024-12-13 16:19:32 +0100 | remexre | (~remexre@user/remexre) (Ping timeout: 252 seconds) |
2024-12-13 16:19:34 +0100 | dpratt | (~dpratt@165.225.220.148) (Client Quit) |
2024-12-13 16:20:00 +0100 | dpratt | (~dpratt@165.225.220.148) dpratt |
2024-12-13 16:24:33 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Quit: dostoevsky) |
2024-12-13 16:26:09 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 16:26:15 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Max SendQ exceeded) |
2024-12-13 16:26:53 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 16:26:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 16:27:03 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Max SendQ exceeded) |
2024-12-13 16:27:35 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 16:27:43 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Max SendQ exceeded) |
2024-12-13 16:31:05 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 16:31:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 16:34:35 +0100 | dpratt | (~dpratt@165.225.220.148) (Quit: Client closed) |
2024-12-13 16:40:49 +0100 | srazkvt | (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
2024-12-13 16:44:50 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 252 seconds) |
2024-12-13 16:45:13 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2024-12-13 16:45:46 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 16:47:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 16:49:57 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Quit: dostoevsky) |
2024-12-13 16:51:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 16:55:09 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 16:55:29 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Client Quit) |
2024-12-13 16:57:34 +0100 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-12-13 16:58:07 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 16:59:01 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Remote host closed the connection) |
2024-12-13 17:01:23 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 17:01:56 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Remote host closed the connection) |
2024-12-13 17:02:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 17:05:44 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 17:06:52 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Remote host closed the connection) |
2024-12-13 17:07:11 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 17:08:10 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 17:09:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 17:13:40 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 17:14:32 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 17:15:20 +0100 | housemate | (~housemate@2001:8004:1680:2767:7a79:ea75:6048:3bdc) housemate |
2024-12-13 17:16:47 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-12-13 17:17:58 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) (Quit: Leaving) |
2024-12-13 17:18:17 +0100 | dostoevsky | (~dostoevsk@user/dostoevsky) dostoevsky |
2024-12-13 17:25:15 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 17:28:42 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) acidjnk |
2024-12-13 17:29:34 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 17:29:53 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2024-12-13 17:31:02 +0100 | Digit | (~user@user/digit) (Ping timeout: 252 seconds) |
2024-12-13 17:38:25 +0100 | housemate | (~housemate@2001:8004:1680:2767:7a79:ea75:6048:3bdc) (Quit: Nothing to see here. I wasn't there. I take IRC seriously. https://files.catbox.moe/4e9k81.pdf) |
2024-12-13 17:40:16 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-12-13 17:40:37 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 17:42:56 +0100 | mari-estel | (~mari-este@user/mari-estel) () |
2024-12-13 17:45:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 17:46:33 +0100 | sprotte24 | (~sprotte24@p200300d16f08ae0004e79d08210c66b3.dip0.t-ipconnect.de) |
2024-12-13 17:48:17 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 248 seconds) |
2024-12-13 17:56:00 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 17:58:52 +0100 | econo_ | (uid147250@id-147250.tinside.irccloud.com) |
2024-12-13 18:00:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 18:01:38 +0100 | Digitteknohippie | Digit |
2024-12-13 18:09:38 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2024-12-13 18:10:53 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 18:16:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 18:16:26 +0100 | sonolin | (~michael@user/sonolin) sonolin |
2024-12-13 18:20:50 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2024-12-13 18:21:16 +0100 | remexre | (~remexre@user/remexre) remexre |
2024-12-13 18:23:36 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 244 seconds) |
2024-12-13 18:26:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 18:31:42 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-12-13 18:34:40 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 244 seconds) |
2024-12-13 18:34:51 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Remote host closed the connection) |
2024-12-13 18:35:11 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2024-12-13 18:39:10 +0100 | zenmov | (~zenmov@user/zenmov) (Ping timeout: 252 seconds) |
2024-12-13 18:40:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 18:43:42 +0100 | zenmov | (~zenmov@user/zenmov) zenmov |
2024-12-13 18:44:01 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-12-13 18:44:19 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f42ed270669e8aec613.dip0.t-ipconnect.de) acidjnk |
2024-12-13 18:44:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 18:50:04 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2024-12-13 18:54:34 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 245 seconds) |
2024-12-13 18:55:43 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 18:58:06 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-13 19:00:21 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 19:00:30 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds) |
2024-12-13 19:09:21 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2024-12-13 19:09:55 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-12-13 19:10:43 +0100 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My Mac has gone to sleep. ZZZzzz…) |
2024-12-13 19:11:04 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2024-12-13 19:11:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 19:13:42 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-12-13 19:14:46 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2024-12-13 19:15:04 +0100 | Lord_of_Life_ | Lord_of_Life |
2024-12-13 19:15:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-13 19:26:29 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 19:30:52 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 19:35:16 +0100 | ash3en | (~Thunderbi@146.70.124.222) ash3en |
2024-12-13 19:36:31 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-12-13 19:40:04 +0100 | meooow_ | (~meooow@165.232.184.169) (Quit: q) |
2024-12-13 19:40:19 +0100 | meooow | (~meooow@2400:6180:100:d0::ad9:e001) meooow |
2024-12-13 19:40:42 +0100 | zenmov_ | (~zenmov@user/zenmov) zenmov |
2024-12-13 19:40:46 +0100 | zenmov | (~zenmov@user/zenmov) (Ping timeout: 252 seconds) |
2024-12-13 19:41:13 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f42ed270669e8aec613.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2024-12-13 19:41:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 19:42:35 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-13 19:43:04 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2024-12-13 19:44:08 +0100 | Digit | (~user@user/digit) (Ping timeout: 252 seconds) |
2024-12-13 19:44:09 +0100 | tdammers | (~tdammers@110-136-178-143.ftth.glasoperator.nl) (Ping timeout: 245 seconds) |
2024-12-13 19:46:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 19:50:24 +0100 | arjun | (~arjun@user/arjun) arjun |
2024-12-13 19:53:57 +0100 | <tomsmeding> | Has anyone ever seen a ghcup installation on windows with C:\ghcup\bin\ghcup\bin\cabal.exe ? |
2024-12-13 19:54:31 +0100 | <tomsmeding> | in particular there's a C:\ghcup\bin\cabal.exe AND a C:\ghcup\bin\ghcup\bin\cabal.exe on this person's machine |
2024-12-13 19:57:28 +0100 | tdammers | (~tdammers@110-136-178-143.ftth.glasoperator.nl) tdammers |
2024-12-13 19:57:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 20:01:57 +0100 | arjun | (~arjun@user/arjun) (Quit: Leaving) |
2024-12-13 20:02:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 20:02:59 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-12-13 20:03:03 +0100 | ash3en | (~Thunderbi@146.70.124.222) (Quit: ash3en) |
2024-12-13 20:06:51 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-12-13 20:08:21 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-12-13 20:10:39 +0100 | ubert | (~Thunderbi@p200300ecdf117c5bcbacc4208e66254f.dip0.t-ipconnect.de) (Remote host closed the connection) |
2024-12-13 20:12:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 20:15:52 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-13 20:17:52 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 20:26:30 +0100 | __jmcantrell__ | (~weechat@user/jmcantrell) jmcantrell |
2024-12-13 20:26:32 +0100 | jmcantrell | Guest8945 |
2024-12-13 20:26:32 +0100 | Guest8945 | (644f1bed9a@user/jmcantrell) (Killed (copper.libera.chat (Nickname regained by services))) |
2024-12-13 20:26:32 +0100 | __jmcantrell__ | jmcantrell |
2024-12-13 20:26:41 +0100 | jmcantrell_ | (644f1bed9a@user/jmcantrell) jmcantrell |
2024-12-13 20:29:01 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 20:31:08 +0100 | <probie> | What's a good choice of data type for a list of fixed length with cheap updates? For very small lengths, `data Foo6 a = Foo6 a a a a a a` (or just a tuple), but what about larger lengths e.g. 65536 where "copy everything" becomes expensive |
2024-12-13 20:32:42 +0100 | <probie> | A tree with a fixed branching factor probably works, but does involve a bit of indirection (although I guess that's probably necessary, since we need sharing to avoid copying unless we can guarantee linear use) |
2024-12-13 20:32:51 +0100 | <glguy> | probie: Probably just a Map or IntMap |
2024-12-13 20:33:14 +0100 | <glguy> | IntMap is likely faster for that case |
2024-12-13 20:33:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-13 20:34:02 +0100 | <EvanR> | 65536 items with a known representation... a file xD |
2024-12-13 20:34:08 +0100 | <tomsmeding> | frame challenge: mutable array in either ST or with -XLinearTypes |
2024-12-13 20:34:14 +0100 | <EvanR> | moving files around and "copying" is cheap |
2024-12-13 20:40:33 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-13 20:43:03 +0100 | acidjnk_new | (~acidjnk@p200300d6e7283f42593f59da3b296f97.dip0.t-ipconnect.de) acidjnk |
2024-12-13 20:44:22 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 20:49:13 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-12-13 20:49:41 +0100 | <probie> | glguy: `IntMap` works, but I don't think a patricia tree is optimal for "dense" keys. I guess I should probably write my fixed branching tree based "list" and then benchmark it against it `IntMap` |
2024-12-13 20:52:48 +0100 | target_i | (~target_i@user/target-i/x-6023099) target_i |
2024-12-13 20:54:18 +0100 | zzz | (~z@user/zero) (Quit: quit) |
2024-12-13 20:56:33 +0100 | <tomsmeding> | does it need to be pure? |
2024-12-13 20:56:41 +0100 | <tomsmeding> | (immutable) |
2024-12-13 20:56:59 +0100 | zero | (~z@user/zero) zero |
2024-12-13 20:57:37 +0100 | mastarija | (~mastarija@42-117.dsl.iskon.hr) mastarija |
2024-12-13 20:58:12 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 252 seconds) |
2024-12-13 20:58:45 +0100 | <mastarija> | If I understand correctly, ReadPrec allows for precedence parsing, right? But what about operator associativity? Can I just lift chainl1 and chainr1? |
2024-12-13 20:58:59 +0100 | OftenFaded | (~OftenFade@user/tisktisk) (Quit: Client closed) |
2024-12-13 20:59:03 +0100 | Digitteknohippie | Digit |
2024-12-13 20:59:12 +0100 | zero | (~z@user/zero) (Client Quit) |
2024-12-13 20:59:48 +0100 | <haskellbridge> | <Bowuigi> For operator associativity you are supposed to use readPrec instead of the chains IIRC |
2024-12-13 20:59:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 21:00:04 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-12-13 21:00:05 +0100 | <haskellbridge> | <Bowuigi> At least that's how it works in Hugs98 |
2024-12-13 21:00:42 +0100 | caconym | (~caconym@user/caconym) caconym |
2024-12-13 21:00:50 +0100 | zero | (~z@user/zero) zero |
2024-12-13 21:01:59 +0100 | <mastarija> | Hm... I thought ReadPrec only deals with the operator precedence, not associativity. I don't see any way to deal with associativity with just precedence. |
2024-12-13 21:02:09 +0100 | iteratee | (~kyle@162.218.222.207) (Ping timeout: 246 seconds) |
2024-12-13 21:04:11 +0100 | <haskellbridge> | <Bowuigi> You call readPrec with the same precedence on the side where you associate and with one less in the other side |
2024-12-13 21:04:17 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 21:04:56 +0100 | <probie> | tomsmeding: Yes. I should be able to write something like `f x = (x, set 42 "foo" x)` without having the first part of the returned tuple blow up in my face |
2024-12-13 21:05:22 +0100 | <tomsmeding> | probie: I see, then some tree structure is indeed what you have to reach for |
2024-12-13 21:06:05 +0100 | <tomsmeding> | how high the branching factor should be is possibly machine-dependent >:) |
2024-12-13 21:06:22 +0100 | <haskellbridge> | <Bowuigi> re:readPrec Actually I think it's one more, not one less, this is always confusing lmao |
2024-12-13 21:06:52 +0100 | <tomsmeding> | one more, indeed, to make sure that if you see the same operator on that side, it puts parens around itself |
2024-12-13 21:06:54 +0100 | <mastarija> | haskellbridge, yeah... I just wanted to ask, since I only see step and reset functions |
2024-12-13 21:07:29 +0100 | <tomsmeding> | this is parallel with showsPrec |
2024-12-13 21:07:54 +0100 | tdammers | (~tdammers@110-136-178-143.ftth.glasoperator.nl) (Ping timeout: 244 seconds) |
2024-12-13 21:08:21 +0100 | <mastarija> | tomsmeding, not sure what you mean by that |
2024-12-13 21:08:35 +0100 | <tomsmeding> | yeah sorry I was confused and was talking about showsPrec :) |
2024-12-13 21:08:41 +0100 | <tomsmeding> | but the dual thing happens with readPrec |
2024-12-13 21:08:43 +0100 | <mastarija> | ah.. np |
2024-12-13 21:08:48 +0100 | tabemann_ | (~tabemann@2600:1700:7990:24e0:73ec:4dd3:844e:8eb8) |
2024-12-13 21:08:55 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en |
2024-12-13 21:09:33 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 21:09:42 +0100 | iteratee | (~kyle@162.218.222.207) iteratee |
2024-12-13 21:10:02 +0100 | <tomsmeding> | if, say, (-) is left-associative (i.e. a - b - c means (a - b) - c) at level 4, then 'showsPrec d' of (-) would do: showParen (d > 4) $ showsPrec 4 a . showString " - " . showsPrec 5 b |
2024-12-13 21:10:24 +0100 | <tomsmeding> | so that if another (-) occurs on the left-hand side, then it's printed without parens, but if another (-) occurs on the right-hand side, it's printed _with_ parens |
2024-12-13 21:10:41 +0100 | <mastarija> | Anyway, I'm writing a little project for students, and usually I go with parsec, but I've noticed the ReadPrec the other day in base, and thought I'd use that to require less dependencies (which students always mess up) |
2024-12-13 21:10:49 +0100 | <tomsmeding> | exercise to the reader: convert this to readPrec, because I'm too lazy to look up the exact function signatures :) |
2024-12-13 21:11:12 +0100 | <tomsmeding> | parsec is in the boot libs, so students can use that by just running plain ghc |
2024-12-13 21:11:14 +0100 | tabemann | (~tabemann@2600:1700:7990:24e0:39a4:2ebe:705f:fb9f) (Ping timeout: 260 seconds) |
2024-12-13 21:11:20 +0100 | <tomsmeding> | no need for cabal, if you want to avoid that |
2024-12-13 21:11:50 +0100 | <mastarija> | Really, when did that change? |
2024-12-13 21:11:57 +0100 | <tomsmeding> | uh, decades ago? :p |
2024-12-13 21:12:03 +0100 | <tomsmeding> | https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history |
2024-12-13 21:12:14 +0100 | <mastarija> | Hm... I do remember 3 years ago a few students had issues with that. |
2024-12-13 21:12:34 +0100 | <tomsmeding> | ah no, ghc 8.4.1 |
2024-12-13 21:12:40 +0100 | <mastarija> | Whenever I use something that's not in base there are problems. |
2024-12-13 21:12:46 +0100 | <tomsmeding> | was the first to have a parsec as a bootlib, according to that table |
2024-12-13 21:13:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 21:13:16 +0100 | <tomsmeding> | which was released March 2018 |
2024-12-13 21:13:22 +0100 | <monochrom> | I bet the few students used debian/ubuntu and merely did `apt install ghc` therefore obtaining a version outdated by 2 decades. |
2024-12-13 21:13:26 +0100 | <tomsmeding> | possibly some students were stuck with ancient debians? |
2024-12-13 21:13:28 +0100 | <tomsmeding> | yes |
2024-12-13 21:13:47 +0100 | <tomsmeding> | 2018 is not even decades old, that would be good by debian's standards |
2024-12-13 21:14:02 +0100 | <mastarija> | Well, I'll go with ReadPrec just for my own exercise xD |
2024-12-13 21:14:18 +0100 | <mastarija> | Now I'm into it already. |
2024-12-13 21:14:48 +0100 | <mastarija> | Could come in handy on the job as well. |
2024-12-13 21:15:48 +0100 | <haskellbridge> | <Bowuigi> Oh also |
2024-12-13 21:16:01 +0100 | <haskellbridge> | <Bowuigi> ReadPrec itself is somewhat incomplete |
2024-12-13 21:16:32 +0100 | <haskellbridge> | <Bowuigi> You have to lift methods from ReadP if you want chains, many, etc |
2024-12-13 21:16:34 +0100 | <mastarija> | Yeah I can see from the very barebones api |
2024-12-13 21:17:00 +0100 | <mastarija> | Text.Read has a few useful ReadPrec utilities as far as I can see. |
2024-12-13 21:17:07 +0100 | <haskellbridge> | <Bowuigi> I'd suggest using ReadP only |
2024-12-13 21:17:55 +0100 | <mastarija> | Yehah. I'll see. |
2024-12-13 21:18:15 +0100 | <haskellbridge> | <Bowuigi> Using readPrec_to_P to convert stuff from ReadPrec by itself if you want to use Text.Read too |
2024-12-13 21:18:33 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 21:19:50 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 21:20:29 +0100 | CrunchyFlakes | (~CrunchyFl@31.19.233.78) (Read error: Connection reset by peer) |
2024-12-13 21:21:02 +0100 | ash3en | (~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en) |
2024-12-13 21:21:05 +0100 | tdammers | (~tdammers@110-136-178-143.ftth.glasoperator.nl) tdammers |
2024-12-13 21:22:03 +0100 | <haskellbridge> | <Bowuigi> Oddly enough it would be easy to make the dual of the showsPrec API and even do both at once with some magic |
2024-12-13 21:22:52 +0100 | CrunchyFlakes | (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) |
2024-12-13 21:23:46 +0100 | <haskellbridge> | <Bowuigi> Oh nvm maybe not doing both at the same time, one requires pattern matching and the other requires construction. Another problem to be solved by row types I guess |
2024-12-13 21:25:40 +0100 | <mastarija> | I thought I've seen something like that recently? |
2024-12-13 21:26:07 +0100 | <mastarija> | Like, we can get both parser and renderer from the same combinators, no? |
2024-12-13 21:26:28 +0100 | <mastarija> | Not in the base ofc, but I thought someone posted something like that. |
2024-12-13 21:26:46 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-12-13 21:28:04 +0100 | <geekosaur> | "bidirectional parsing" is what it's often called |
2024-12-13 21:28:24 +0100 | tdammers | (~tdammers@110-136-178-143.ftth.glasoperator.nl) (Ping timeout: 246 seconds) |
2024-12-13 21:30:44 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 21:33:13 +0100 | <mastarija> | Hm... I don't quite understand the `prec` function. It will parse only if the current precedence level is what we've given it, but the example in the Text.Read docs seems like it uses it to set the precedence of the operator. If we work with a deeply nested structure the `step` will potentially go over the precedence limit. |
2024-12-13 21:33:47 +0100 | <mastarija> | At least, that's what I see from the example, perhaps I don't understand. |
2024-12-13 21:34:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 21:36:19 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 21:41:40 +0100 | tdammers | (~tdammers@110-136-178-143.ftth.glasoperator.nl) tdammers |
2024-12-13 21:42:43 +0100 | <glguy> | Which example are you looking at? |
2024-12-13 21:46:07 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 21:46:21 +0100 | <mastarija> | glguy, the very first example in the Text.Read module. |
2024-12-13 21:46:26 +0100 | <mastarija> | And only example I think. |
2024-12-13 21:46:52 +0100 | <mastarija> | There's the ReadS version and the ReadPrec version |
2024-12-13 21:47:04 +0100 | <glguy> | Ok, can you paste the link to the thing you're asking about? |
2024-12-13 21:47:11 +0100 | <mastarija> | Yup, just a sec. |
2024-12-13 21:47:32 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 21:47:38 +0100 | <mastarija> | https://hackage.haskell.org/package/base-4.20.0.1/docs/Text-Read.html |
2024-12-13 21:48:20 +0100 | <mastarija> | glguy, the prec function is in this module: https://hackage.haskell.org/package/base-4.20.0.1/docs/Text-Read.html |
2024-12-13 21:48:29 +0100 | <mastarija> | Oops. |
2024-12-13 21:48:35 +0100 | <glguy> | It looks like it uses the same prec argument over and over |
2024-12-13 21:49:01 +0100 | <mastarija> | https://hackage.haskell.org/package/base-4.20.0.1/docs/Text-ParserCombinators-ReadPrec.html#v:prec |
2024-12-13 21:49:30 +0100 | <mastarija> | glguy, yes, but it also uses the `step` to advance the precedence every time it goes deeper. |
2024-12-13 21:49:54 +0100 | <mastarija> | So at some point, precedence will grow over what's specified by the fixed `prec` parser. |
2024-12-13 21:50:03 +0100 | <mastarija> | And I don't see how that makes sense. |
2024-12-13 21:51:33 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds) |
2024-12-13 21:53:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-13 21:53:19 +0100 | <mastarija> | Hm... perhaps, I think it's starting to make sense... xD |
2024-12-13 21:53:45 +0100 | <mastarija> | Nope, lost it. |
2024-12-13 21:55:45 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds) |
2024-12-13 21:56:43 +0100 | <glguy> | I think it's designed like that because it says it's NOT using the right associativity of :^: |
2024-12-13 21:57:16 +0100 | <glguy> | So it's increasing to a precedence where another :^: will fail to parse without intervening ()s |
2024-12-13 21:57:30 +0100 | <glguy> | But I'm looking at this from my phone and I'm not that clear on it |
2024-12-13 21:57:59 +0100 | <mastarija> | Like, it looks to me that at a certain depth it'll just stop parsing. |
2024-12-13 22:00:41 +0100 | <glguy> | The depth gets reset by parens |
2024-12-13 22:01:08 +0100 | <mastarija> | I'm looking at it's code, and I don't see any depth resetting. |
2024-12-13 22:01:41 +0100 | kimiamania | (~65804703@user/kimiamania) (Quit: PegeLinux) |
2024-12-13 22:01:50 +0100 | <mastarija> | Ohh... |
2024-12-13 22:01:57 +0100 | <mastarija> | It's in the paren' |
2024-12-13 22:02:04 +0100 | kimiamania | (~65804703@user/kimiamania) kimiamania |
2024-12-13 22:02:05 +0100 | <mastarija> | I see the reset. |
2024-12-13 22:04:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 22:08:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 22:13:47 +0100 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |
2024-12-13 22:13:49 +0100 | harveypwca | (~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) HarveyPwca |
2024-12-13 22:19:31 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 22:21:20 +0100 | homo | (~homo@user/homo) (Quit: homo) |
2024-12-13 22:24:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 22:25:58 +0100 | Leary | (~Leary@user/Leary/x-0910699) (Remote host closed the connection) |
2024-12-13 22:28:48 +0100 | <hellwolf> | $ pointfree '\a -> a + a' |
2024-12-13 22:28:48 +0100 | <hellwolf> | join (+) |
2024-12-13 22:29:00 +0100 | <hellwolf> | :t join |
2024-12-13 22:29:01 +0100 | <lambdabot> | Monad m => m (m a) -> m a |
2024-12-13 22:29:07 +0100 | <hellwolf> | how does this make sense? where is the monad? |
2024-12-13 22:29:36 +0100 | pavonia | (~user@user/siracusa) siracusa |
2024-12-13 22:29:53 +0100 | <int-e> | it's (r -> (r -> a)) -> (r -> a) |
2024-12-13 22:30:19 +0100 | <hellwolf> | Reader monad? |
2024-12-13 22:30:22 +0100 | <int-e> | yep |
2024-12-13 22:30:29 +0100 | <hellwolf> | how does GHC infer that far |
2024-12-13 22:30:42 +0100 | <hellwolf> | mind blown. I can't explain that to newbies, let alone to myself. |
2024-12-13 22:31:37 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-12-13 22:31:38 +0100 | <int-e> | when you unify m (m a) and a -> a -> a, the only choice for m is (a ->) |
2024-12-13 22:31:57 +0100 | <int-e> | a -> a -> a coming from (+) :: Num a => a -> a -> a |
2024-12-13 22:32:59 +0100 | <monochrom> | This is why I teach type inference explicitly (e.g., with unification). |
2024-12-13 22:34:17 +0100 | <hellwolf> | i see, reading it step-by-step makes sense |
2024-12-13 22:34:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 22:35:19 +0100 | <hellwolf> | this is probably not the best place to do pointfree style, arguably. but maybe it is just my level is not there yet. |
2024-12-13 22:35:44 +0100 | <geekosaur> | most people agree with you, I think |
2024-12-13 22:36:02 +0100 | <geekosaur> | the primitive reader monad is mostly obfuscation |
2024-12-13 22:37:16 +0100 | <geekosaur> | ("primitive" = "not nicely wrapped in a newtype which would keep ghc from inferring it and confusing the hell out of you") |
2024-12-13 22:38:40 +0100 | <hellwolf> | instance Monad ((->) r) where |
2024-12-13 22:38:40 +0100 | <hellwolf> | f >>= k = \ r -> k (f r) r |
2024-12-13 22:38:47 +0100 | <hellwolf> | src/GHC.Internal.Base.html#line-1453 |
2024-12-13 22:39:23 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 22:39:26 +0100 | Leary | (~Leary@user/Leary/x-0910699) Leary |
2024-12-13 22:39:36 +0100 | <geekosaur> | read it and weep 🙂 |
2024-12-13 22:41:03 +0100 | <hellwolf> | the only thing actually catches the eyes of mine is the space between "\" and r... it makes me questioning my own coding style, where there is no space in between :D |
2024-12-13 22:42:00 +0100 | <geekosaur> | I think most people don't use a space there |
2024-12-13 22:42:11 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-12-13 22:43:14 +0100 | <geekosaur> | some of those choices are lost to history, though; that definition, while its current location is GHC-specific, was once shared between ghc, Hugs, and nhc98 |
2024-12-13 22:43:32 +0100 | <geekosaur> | (the Hugs and nhc98 code was mostly ripped out years ago) |
2024-12-13 22:44:05 +0100 | hellwolf | felt relieved |
2024-12-13 22:44:51 +0100 | <hellwolf> | But what's the legit case of the reader monad... I wonder how a do notation block of such a monad would look like. |
2024-12-13 22:47:00 +0100 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2024-12-13 22:48:44 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-13 22:48:44 +0100 | <kaol> | It's like a single argument function body where every <- gets the argument's value. |
2024-12-13 22:49:14 +0100 | michalz | (~michalz@185.246.207.197) (Remote host closed the connection) |
2024-12-13 22:50:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 22:51:59 +0100 | <kaol> | > (do { a <- fst ; b <- snd ; return $ a + b }) (1,2) |
2024-12-13 22:52:00 +0100 | <lambdabot> | 3 |
2024-12-13 22:52:06 +0100 | <monochrom> | The (->)e monad helps understand why and how "data P a = P a a" and "data S a = Cons a (S a)" are monads. Because P is (->)Bool and S is (->)Natural. |
2024-12-13 22:52:17 +0100 | <hellwolf> | https://play.haskell.org/saved/NoOO2WnH |
2024-12-13 22:52:23 +0100 | <hellwolf> | this is nuts, nutty code. but it works. |
2024-12-13 22:52:40 +0100 | dpratt | (~dpratt@165.225.220.148) dpratt |
2024-12-13 22:52:52 +0100 | <hellwolf> | https://play.haskell.org/saved/DeEDElh3 |
2024-12-13 22:52:59 +0100 | <hellwolf> | rewrite without the explicit ((->) form |
2024-12-13 22:53:36 +0100 | <hellwolf> | ah, kaol you have a more succinct one. |
2024-12-13 22:54:51 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-13 22:55:46 +0100 | <hellwolf> | but mine calls another "monad"... makes no sense, semantically. (as a human) if you are a living compiler, I don't judge. |
2024-12-13 22:56:18 +0100 | <tomsmeding> | hellwolf: there's a certain specific, fairly common use of the reader monad: as a monad transformer over IO, i.e. `ReaderT r IO a`, which is newtype-unwrapped the same as `r -> IO a` |
2024-12-13 22:56:35 +0100 | <kaol> | > ((+) <$> fst <*> snd) (1,2) -- My example didn't actually need the monad but hey |
2024-12-13 22:56:36 +0100 | <lambdabot> | 3 |
2024-12-13 22:56:55 +0100 | <tomsmeding> | a large fraction of haskell effects libraries use this as their base monad, where the `r` is some vector of IORefs containing the state for each effect in scope |
2024-12-13 22:57:12 +0100 | <tomsmeding> | it's essentially an invisible argument to every function that can be "requested" inside the monad |
2024-12-13 22:57:43 +0100 | <tomsmeding> | in Control.Monad(.Trans).Reader, the monad operation that gets this argument is `ask :: Reader r r` |
2024-12-13 22:58:16 +0100 | <tomsmeding> | if you want more fun: do you know SKI combinators? K = return, S = (<*>) in the reader monad |
2024-12-13 23:00:08 +0100 | <tomsmeding> | ( https://tech.fpcomplete.com/blog/2017/06/readert-design-pattern/ is sometimes cited in this context) |
2024-12-13 23:00:52 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2024-12-13 23:03:35 +0100 | OftenFaded | (~OftenFade@user/tisktisk) OftenFaded |
2024-12-13 23:03:38 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
2024-12-13 23:03:38 +0100 | jmcantrell_ | jmcantrell |
2024-12-13 23:04:54 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 23:05:41 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 23:07:58 +0100 | <kaol> | If you want to have more fun, check out Op in Data.Functor.Contravariant. Or go straight to the Data.Profunctor if you want to have the strong stuff. |
2024-12-13 23:10:12 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Remote host closed the connection) |
2024-12-13 23:10:12 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-13 23:10:21 +0100 | dpratt | (~dpratt@165.225.220.148) (Quit: Client closed) |
2024-12-13 23:15:57 +0100 | remexre | (~remexre@user/remexre) (Ping timeout: 276 seconds) |
2024-12-13 23:18:35 +0100 | <mastarija> | haskellbridge, are you sure about calling the parser with the same precedence on the side where I associate? |
2024-12-13 23:19:04 +0100 | <mastarija> | I'm looking at it, and the only conclusion I can come to is that it will get stuck in the infinite loop |
2024-12-13 23:19:05 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-13 23:19:15 +0100 | <mastarija> | I've made a paste here: https://paste.tomsmeding.com/Q8thgs0a |
2024-12-13 23:19:35 +0100 | <mastarija> | Line 474 |
2024-12-13 23:19:37 +0100 | <glguy> | mastarija: haskellbridge isn't a person, the person it's bridging is listed in its message |
2024-12-13 23:19:48 +0100 | <mastarija> | oh... -.- |
2024-12-13 23:20:06 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
2024-12-13 23:20:25 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-13 23:20:33 +0100 | <mastarija> | Bowuigi, not sure if it is correct that we just have to use the same precedence. |
2024-12-13 23:20:40 +0100 | <glguy> | mastarija: I would expect it's OK to call recursively like that for right-associative things |
2024-12-13 23:20:58 +0100 | <glguy> | but for left associative you'll need to structure things slightly differently to break the left-recursion trap |
2024-12-13 23:20:59 +0100 | <mastarija> | Yeah. It is. |
2024-12-13 23:21:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 23:21:31 +0100 | <mastarija> | Do you mean something like chainl does? |
2024-12-13 23:21:39 +0100 | <glguy> | yes, like that |
2024-12-13 23:25:09 +0100 | <tomsmeding> | classic parser things :) |
2024-12-13 23:25:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-12-13 23:26:26 +0100 | <mastarija> | I mean, I've expected that, but I was under the impression that precedence parsers have some kind of magic. |
2024-12-13 23:26:30 +0100 | <mastarija> | Now I'm disappointed. |
2024-12-13 23:26:36 +0100 | <glguy> | Instead of using a parser generator, parser combinators make you act as the parser generator |
2024-12-13 23:26:48 +0100 | <glguy> | it's a big savings for the computer |
2024-12-13 23:27:03 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 246 seconds) |
2024-12-13 23:27:03 +0100 | <tomsmeding> | well if someone implemented an actual expression parser for you, then they handled this for you already :0 |
2024-12-13 23:27:05 +0100 | <tomsmeding> | * :p |
2024-12-13 23:27:24 +0100 | <tomsmeding> | passing of precedence numbers down is just a crude tool |
2024-12-13 23:27:37 +0100 | <tomsmeding> | you can write your own buildExpressionParser that uses chainl when necessary ;) |
2024-12-13 23:28:06 +0100 | <glguy> | Yes, even better than using a parser generator or being a parser generator is writing a new one! |
2024-12-13 23:28:13 +0100 | <mastarija> | Are there any examples when we need to mix left, right and no associative operators? |
2024-12-13 23:28:17 +0100 | <tomsmeding> | more fun for sure |
2024-12-13 23:28:33 +0100 | <tomsmeding> | a ^ 2 + b ^ 2 == c ^ 2 |
2024-12-13 23:28:42 +0100 | <tomsmeding> | (^) is right-associative, (+) is left, (==) is non |
2024-12-13 23:29:06 +0100 | <mastarija> | I've meant about the expression parser implementation and how to structure chainl and chainrs |
2024-12-13 23:29:08 +0100 | <tomsmeding> | I guess it doesn't matter for (+), but for (-) it would |
2024-12-13 23:29:34 +0100 | <tomsmeding> | you could check how parsec implements buildExpressionParser I guess? |
2024-12-13 23:30:00 +0100 | <glguy> | To really do fully general mixing you need to parse without any fixities and then post-process them afaik |
2024-12-13 23:31:07 +0100 | <monochrom> | If (+) is lower than (*), I just code: additive = chainl1 multiplicative (operator "+" *> pure (+)); multiplicative = chainl1 base (operator "*" *> pure (*)) |
2024-12-13 23:31:34 +0100 | <monochrom> | In general, precedence levels become call dependency. |
2024-12-13 23:32:32 +0100 | <glguy> | If you are parsing a fixed set of operators you can encode the different left/right/none fixities directly into the parser |
2024-12-13 23:32:36 +0100 | <monochrom> | "higher" precedence = binds tighter = closer to bottom of the food chain. |
2024-12-13 23:32:43 +0100 | <mastarija> | I have fixed set of operators. |
2024-12-13 23:33:42 +0100 | <glguy> | stick to each precedence level having a consistent left/right/none level |
2024-12-13 23:33:46 +0100 | <geekosaur> | you can also do that if you require they be declared before use, though, by mutating a table in the parser. ghc postprocesses because the Haskell standard allows you to do things like putting the fixity declaration on the opposite side of the file from the operator definition |
2024-12-13 23:34:01 +0100 | <geekosaur> | and doesn't require declaration before use |
2024-12-13 23:35:57 +0100 | <mastarija> | Dang it. I even derived the Enum and Bounded instances hoping I can just do fmap with a bin op maker over a list of operator tags and call it a day. |
2024-12-13 23:36:04 +0100 | <mastarija> | Guess I'll have to do it by hand. |
2024-12-13 23:36:36 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 23:40:30 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-13 23:40:51 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
2024-12-13 23:41:18 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-12-13 23:49:49 +0100 | chiselfuse | (~chiselfus@user/chiselfuse) chiselfuse |
2024-12-13 23:49:57 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-12-13 23:51:42 +0100 | dsrt^ | (~dsrt@c-98-242-74-66.hsd1.ga.comcast.net) |
2024-12-13 23:51:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-13 23:55:04 +0100 | mastarija | (~mastarija@42-117.dsl.iskon.hr) (Quit: Leaving) |
2024-12-13 23:56:27 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-13 23:58:48 +0100 | briandaed | (~root@user/briandaed) (Quit: Lost terminal) |
2024-12-13 23:59:21 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Quit: Lost terminal) |
2024-12-13 23:59:41 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |