2024/12/13

2024-12-13 00:00:29 +0100 <jle`> tomsmeding: you could use something like ƒ maybe
2024-12-13 00:00:59 +0100tomsmedinglooks at jle`
2024-12-13 00:01:02 +0100sindu(~sindu@176.75.224.1) (Ping timeout: 244 seconds)
2024-12-13 00:01:39 +0100turlando(~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.)
2024-12-13 00:01:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 00:02:06 +0100xff0x(~xff0x@2405:6580:b080:900:30ee:920a:5b76:45fa)
2024-12-13 00:03:04 +0100turlando(~turlando@user/turlando) turlando
2024-12-13 00:05:18 +0100rstromlund(~user@user/rstromlund) (Ping timeout: 252 seconds)
2024-12-13 00:06:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 00:11:32 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-12-13 00:11:48 +0100tromp(~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 +0100falafel(~falafel@2603:8000:b4f0:62a0:8070:b236:970b:b0e8) falafel
2024-12-13 00:16:25 +0100jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.4.4)
2024-12-13 00:16:25 +0100jmcantrell_jmcantrell
2024-12-13 00:16:39 +0100Square3(~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 +0100jmcantrellGuest9471
2024-12-13 00:16:58 +0100Guest9471(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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 00:17:09 +0100jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2024-12-13 00:19:39 +0100Square(~Square@user/square) Square
2024-12-13 00:22:31 +0100jle`looks back
2024-12-13 00:22:42 +0100jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.4.4)
2024-12-13 00:22:43 +0100jmcantrell_jmcantrell
2024-12-13 00:23:01 +0100haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-12-13 00:23:49 +0100haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) hackager
2024-12-13 00:23:49 +0100ChanServ+v haskellbridge
2024-12-13 00:24:01 +0100merijn(~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 +0100jmcantrellGuest7045
2024-12-13 00:24:29 +0100Guest7045(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 +0100jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2024-12-13 00:30:42 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-12-13 00:35:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 00:39:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 00:50:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 00:52:21 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 248 seconds)
2024-12-13 00:52:21 +0100jmcantrell_jmcantrell
2024-12-13 00:55:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 00:59:06 +0100acidjnk_new(~acidjnk@p200300d6e7283f3760eda8a464161486.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-12-13 01:00:15 +0100rstromlund(~user@resi-86-63-140-12.isp.ozarksgo.net)
2024-12-13 01:00:15 +0100rstromlund(~user@resi-86-63-140-12.isp.ozarksgo.net) (Changing host)
2024-12-13 01:00:15 +0100rstromlund(~user@user/rstromlund) rstromlund
2024-12-13 01:03:36 +0100Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-12-13 01:04:35 +0100rstromlund(~user@user/rstromlund) (Ping timeout: 244 seconds)
2024-12-13 01:05:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 01:10:55 +0100merijn(~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 +0100jmcantrellGuest2459
2024-12-13 01:12:47 +0100Guest2459(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 +0100jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2024-12-13 01:18:59 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-13 01:21:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 01:25:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 01:32:42 +0100xff0x(~xff0x@2405:6580:b080:900:30ee:920a:5b76:45fa) (Ping timeout: 276 seconds)
2024-12-13 01:36:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 01:41:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 01:52:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 01:54:50 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2024-12-13 01:58:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 02:01:46 +0100cuteguest(~cuteguest@2601:602:680:2280::5d66)
2024-12-13 02:01:48 +0100rstromlund(~user@user/rstromlund) rstromlund
2024-12-13 02:02:28 +0100dustee(~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 +0100rstromlund(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 02:10:33 +0100sprotte24(~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 +0100dpratt(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 02:18:31 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 02:19:56 +0100rstromlund(~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 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2024-12-13 02:23:03 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-13 02:26:45 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2024-12-13 02:26:45 +0100ljdarj1ljdarj
2024-12-13 02:28:11 +0100dustee(~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 +0100merijn(~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 +0100cuteguest(~cuteguest@2601:602:680:2280::5d66) (Quit: Client closed)
2024-12-13 02:32:09 +0100cuteguest(~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 +0100ethantwardy(user@user/ethantwardy) (Quit: WeeChat 4.3.2)
2024-12-13 02:34:09 +0100merijn(~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 +0100CrunchyFlakes(~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 +0100CrunchyFlakes(~CrunchyFl@31.19.233.78)
2024-12-13 02:40:33 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2024-12-13 02:42:10 +0100xff0x(~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 +0100merijn(~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 +0100Tuplanolla(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 02:49:19 +0100falafel(~falafel@2603:8000:b4f0:62a0:8070:b236:970b:b0e8) (Ping timeout: 260 seconds)
2024-12-13 03:00:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 03:04:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 03:13:00 +0100dpratt(~dpratt@165.225.220.148) (Quit: Client closed)
2024-12-13 03:15:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 03:18:40 +0100cuteguest(~cuteguest@c-73-239-49-112.hsd1.wa.comcast.net) (Ping timeout: 240 seconds)
2024-12-13 03:19:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 03:27:53 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 245 seconds)
2024-12-13 03:30:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 03:35:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 03:35:49 +0100rstromlund(~user@user/rstromlund) (Ping timeout: 245 seconds)
2024-12-13 03:44:59 +0100homo(~homo@user/homo) (Quit: homo)
2024-12-13 03:45:23 +0100homo(~homo@user/homo) homo
2024-12-13 03:46:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 03:50:49 +0100harveypwca(~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) HarveyPwca
2024-12-13 03:54:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 03:54:13 +0100housemate(~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) housemate
2024-12-13 03:55:20 +0100housemate(~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) (Remote host closed the connection)
2024-12-13 03:55:42 +0100housemate(~housemate@2001:8004:27a8:24d3:b2cb:2bd8:520f:6d21) housemate
2024-12-13 04:06:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 04:10:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 04:10:43 +0100eL_Bart0-(eL_Bart0@dietunichtguten.org) (Ping timeout: 252 seconds)
2024-12-13 04:11:26 +0100OftenFaded(~OftenFade@user/tisktisk) (Quit: Client closed)
2024-12-13 04:15:01 +0100sam113101(~sam@modemcable220.199-203-24.mc.videotron.ca) (Quit: WeeChat 4.4.3)
2024-12-13 04:26:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 04:31:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 04:34:13 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-13 04:37:15 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-12-13 04:40:56 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-12-13 04:41:40 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2024-12-13 04:41:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 04:46:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 04:51:03 +0100rstromlund(~user@user/rstromlund) rstromlund
2024-12-13 04:53:59 +0100td_(~td@i5387090C.versanet.de) (Ping timeout: 244 seconds)
2024-12-13 04:55:32 +0100rstromlund(~user@user/rstromlund) (Ping timeout: 244 seconds)
2024-12-13 04:56:10 +0100td_(~td@i5387093F.versanet.de) td_
2024-12-13 04:57:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 05:04:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 05:10:11 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2024-12-13 05:12:50 +0100housemate(~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 +0100gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-12-13 05:14:15 +0100gorignak(~gorignak@user/gorignak) gorignak
2024-12-13 05:15:50 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 05:19:39 +0100OftenFaded(~OftenFade@user/tisktisk) OftenFaded
2024-12-13 05:20:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 05:22:44 +0100homo_(~homo@user/homo) homo
2024-12-13 05:23:27 +0100homo(~homo@user/homo) (Ping timeout: 246 seconds)
2024-12-13 05:23:28 +0100homo_homo
2024-12-13 05:25:24 +0100Elena59(~Elena@37.25.86.87)
2024-12-13 05:26:58 +0100Elena59(~Elena@37.25.86.87) (Client Quit)
2024-12-13 05:31:13 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 05:35:19 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds)
2024-12-13 05:35:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 05:36:16 +0100ethantwardy(user@user/ethantwardy) ethantwardy
2024-12-13 05:37:36 +0100aforemny(~aforemny@i577B130D.versanet.de) aforemny
2024-12-13 05:38:40 +0100aforemny_(~aforemny@2001:9e8:6cd1:7b00:688b:324:5065:e57a) (Ping timeout: 260 seconds)
2024-12-13 05:46:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 05:49:50 +0100harveypwca(~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) (Quit: Leaving)
2024-12-13 05:51:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-13 05:52:40 +0100youthlic(~Thunderbi@user/youthlic) (Quit: youthlic)
2024-12-13 05:54:53 +0100youthlic(~Thunderbi@user/youthlic) youthlic
2024-12-13 06:01:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 06:04:44 +0100alp(~alp@2001:861:8ca0:4940:4155:329b:9129:3e66) (Remote host closed the connection)
2024-12-13 06:05:00 +0100alp(~alp@2001:861:8ca0:4940:1c03:a77a:acae:42)
2024-12-13 06:06:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 06:15:12 +0100rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) (Remote host closed the connection)
2024-12-13 06:17:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 06:21:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 06:32:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 06:34:11 +0100sam113101(~sam@modemcable220.199-203-24.mc.videotron.ca) sam113101
2024-12-13 06:39:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-13 06:39:31 +0100michalz(~michalz@185.246.207.197)
2024-12-13 06:51:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 06:51:40 +0100OftenFaded(~OftenFade@user/tisktisk) (Ping timeout: 240 seconds)
2024-12-13 06:56:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-13 06:58:21 +0100gorignak(~gorignak@user/gorignak) (Quit: quit)
2024-12-13 06:59:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 07:02:02 +0100gorignak(~gorignak@user/gorignak) gorignak
2024-12-13 07:04:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 07:08:15 +0100falafel(~falafel@2603:8000:b4f0:62a0:a2ac:33fd:6c9:13bb) falafel
2024-12-13 07:15:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 07:20:27 +0100cptaffe(~cptaffe@user/cptaffe) (Ping timeout: 276 seconds)
2024-12-13 07:22:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 07:23:06 +0100cptaffe(~cptaffe@user/cptaffe) cptaffe
2024-12-13 07:33:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 07:38:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 07:39:18 +0100falafel(~falafel@2603:8000:b4f0:62a0:a2ac:33fd:6c9:13bb) (Ping timeout: 276 seconds)
2024-12-13 07:42:48 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-13 07:44:29 +0100mange(~user@user/mange) (Remote host closed the connection)
2024-12-13 07:48:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 07:53:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-13 07:55:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 07:56:03 +0100housemate(~housemate@2001:8004:27a8:259e:1908:8615:d13f:227b) housemate
2024-12-13 07:57:18 +0100CiaoSen(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 08:00:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 08:01:57 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 08:04:00 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-12-13 08:05:15 +0100merijn(~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 +0100acidsys(~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 +0100housemate(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 08:20:20 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-12-13 08:23:36 +0100merijn(~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 +0100ft(~ft@p508db9c7.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-12-13 08:29:26 +0100peterbecich(~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 +0100vpan(~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 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp) (Remote host closed the connection)
2024-12-13 08:33:03 +0100acidsys(~crameleon@openSUSE/member/crameleon) crameleon
2024-12-13 08:34:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 08:34:28 +0100mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-12-13 08:36:21 +0100tromp(~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 +0100CiaoSen(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 08:40:30 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 08:40:46 +0100housemate(~housemate@2001:8004:1640:2cb0::12e) housemate
2024-12-13 08:44:32 +0100briandaed(~root@user/briandaed) briandaed
2024-12-13 08:46:37 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-12-13 08:49:31 +0100CiaoSen(~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) CiaoSen
2024-12-13 08:49:43 +0100merijn(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-12-13 08:54:32 +0100lortabac(~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 +0100falafel(~falafel@2603:8000:b4f0:62a0:b2f3:1ea5:3edd:91fa) falafel
2024-12-13 09:00:02 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-12-13 09:00:40 +0100caconym(~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 +0100merijn(~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 +0100merijn(~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 +0100tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2024-12-13 09:11:07 +0100Square(~Square@user/square) Square
2024-12-13 09:11:38 +0100ash3en(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 09:17:53 +0100peterbecich(~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 +0100lortabac(~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 +0100merijn(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 09:38:13 +0100tcard(~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 +0100housemate(~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 +0100housemate(~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 +0100merijn(~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 +0100Smiles(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 +0100merijn(~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 +0100szkl(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 +0100tromp(~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 +0100merijn(~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 +0100lxsameer(~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 +0100chiselfuse(~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 +0100merijn(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 10:23:34 +0100acidjnk_new(~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) acidjnk
2024-12-13 10:27:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 10:30:31 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-12-13 10:31:27 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2024-12-13 10:31:53 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
2024-12-13 10:31:53 +0100jmcantrell_jmcantrell
2024-12-13 10:31:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 10:38:53 +0100Digitteknohippie(~user@user/digit) Digit
2024-12-13 10:40:39 +0100Digit(~user@user/digit) (Ping timeout: 276 seconds)
2024-12-13 10:41:51 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) jespada
2024-12-13 10:42:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 10:44:44 +0100falafel(~falafel@2603:8000:b4f0:62a0:b2f3:1ea5:3edd:91fa) (Ping timeout: 260 seconds)
2024-12-13 10:47:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 10:50:29 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2024-12-13 10:50:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 10:52:06 +0100sprotte24(~sprotte24@p200300d16f08ae001421f9574c92b051.dip0.t-ipconnect.de)
2024-12-13 10:52:17 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-12-13 10:58:07 +0100merijn(~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 +0100housemate(~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 +0100mari-estel(~mari-este@user/mari-estel) mari-estel
2024-12-13 11:07:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 11:08:06 +0100DigitteknohippieDigit
2024-12-13 11:09:39 +0100tromp(~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 +0100Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2024-12-13 11:19:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 11:24:53 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-12-13 11:25:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-13 11:31:38 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
2024-12-13 11:32:11 +0100CrunchyFlakes(~CrunchyFl@31.19.233.78) (Read error: Connection reset by peer)
2024-12-13 11:32:42 +0100homo(~homo@user/homo) (Quit: homo)
2024-12-13 11:35:01 +0100CrunchyFlakes(~CrunchyFl@31.19.233.78)
2024-12-13 11:35:32 +0100homo(~homo@user/homo) homo
2024-12-13 11:39:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 11:43:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 11:48:16 +0100CiaoSen(~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 272 seconds)
2024-12-13 11:49:53 +0100ubert(~Thunderbi@p200300ecdf117c5bfeb2bbe2c0c50acc.dip0.t-ipconnect.de) ubert
2024-12-13 11:54:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 11:58:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 12:04:54 +0100merijn(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 12:11:39 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-12-13 12:20:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 12:25:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 12:33:09 +0100arthurvlearthy
2024-12-13 12:35:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 12:40:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-12-13 12:40:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 12:47:07 +0100mari-estel(~mari-este@user/mari-estel) ()
2024-12-13 12:51:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 12:55:22 +0100sprotte24(~sprotte24@p200300d16f08ae001421f9574c92b051.dip0.t-ipconnect.de) (Quit: Leaving)
2024-12-13 12:57:53 +0100merijn(~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 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 13:05:45 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-13 13:05:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 13:09:09 +0100CiaoSen(~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) CiaoSen
2024-12-13 13:10:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-13 13:20:46 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-12-13 13:21:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 13:23:30 +0100xff0x(~xff0x@2405:6580:b080:900:33bd:b9d7:1cc6:1151)
2024-12-13 13:28:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 13:33:23 +0100housemate(~housemate@2001:8004:1680:45b::12e) housemate
2024-12-13 13:35:40 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-13 13:39:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 13:41:38 +0100Digitteknohippie(~user@user/digit) Digit
2024-12-13 13:42:58 +0100Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-12-13 13:43:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 13:46:00 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 13:50:34 +0100housemate(~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 +0100DigitteknohippieDigit
2024-12-13 13:54:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 13:54:49 +0100doyougnu(~doyougnu@syn-045-046-170-068.res.spectrum.com) (Ping timeout: 252 seconds)
2024-12-13 13:55:00 +0100doyougnu(~doyougnu@syn-045-046-170-068.res.spectrum.com) doyougnu
2024-12-13 13:59:35 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 14:00:20 +0100ubert(~Thunderbi@p200300ecdf117c5bfeb2bbe2c0c50acc.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-12-13 14:06:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 14:07:37 +0100srazkvt(~sarah@user/srazkvt) srazkvt
2024-12-13 14:11:13 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 14:16:45 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-12-13 14:22:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 14:22:30 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-12-13 14:23:25 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2024-12-13 14:25:37 +0100ubert(~Thunderbi@p200300ecdf117c5bcbacc4208e66254f.dip0.t-ipconnect.de) ubert
2024-12-13 14:30:33 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-12-13 14:31:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 14:41:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 14:43:37 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-12-13 14:46:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 14:47:23 +0100ft(~ft@p508db9c7.dip0.t-ipconnect.de) ft
2024-12-13 14:51:45 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2024-12-13 14:57:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 14:58:58 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Read error: Connection reset by peer)
2024-12-13 14:59:40 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2024-12-13 15:01:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 15:04:47 +0100tinjamin4(~tinjamin@banshee.h4x0r.space) (Quit: The Lounge - https://thelounge.chat)
2024-12-13 15:06:32 +0100tinjamin4(~tinjamin@banshee.h4x0r.space)
2024-12-13 15:06:43 +0100Fabric(~Fabric@167.136.189.80.dyn.plus.net)
2024-12-13 15:06:59 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2)
2024-12-13 15:07:14 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2024-12-13 15:07:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 15:12:19 +0100vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2024-12-13 15:12:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-13 15:18:59 +0100dpratt(~dpratt@165.225.220.148) dpratt
2024-12-13 15:23:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 15:25:09 +0100weary-traveler(~user@user/user363627) user363627
2024-12-13 15:26:09 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 246 seconds)
2024-12-13 15:26:32 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2024-12-13 15:27:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 15:30:34 +0100CiaoSen(~Jura@2a05:5800:209:ac00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
2024-12-13 15:44:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 15:49:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 15:54:24 +0100rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-06-76-69-85-220.dsl.bell.ca) rekahsoft
2024-12-13 15:55:08 +0100mceresa(~mceresa@user/mceresa) (Remote host closed the connection)
2024-12-13 15:56:26 +0100mceresa(~mceresa@user/mceresa) mceresa
2024-12-13 15:57:50 +0100dpratt(~dpratt@165.225.220.148) (Quit: Client closed)
2024-12-13 15:59:05 +0100alp(~alp@2001:861:8ca0:4940:1c03:a77a:acae:42) (Remote host closed the connection)
2024-12-13 15:59:24 +0100alp(~alp@2001:861:8ca0:4940:fe35:b2c7:be3f:81c)
2024-12-13 15:59:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 16:00:47 +0100alp(~alp@2001:861:8ca0:4940:fe35:b2c7:be3f:81c) (Remote host closed the connection)
2024-12-13 16:01:06 +0100alp(~alp@2001:861:8ca0:4940:c731:528a:cc7b:83c4)
2024-12-13 16:02:28 +0100alp(~alp@2001:861:8ca0:4940:c731:528a:cc7b:83c4) (Remote host closed the connection)
2024-12-13 16:02:47 +0100alp(~alp@2001:861:8ca0:4940:6356:ce55:f764:8f07)
2024-12-13 16:04:09 +0100alp(~alp@2001:861:8ca0:4940:6356:ce55:f764:8f07) (Remote host closed the connection)
2024-12-13 16:04:29 +0100alp(~alp@2001:861:8ca0:4940:1fde:7520:470c:b702)
2024-12-13 16:04:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-13 16:05:50 +0100alp(~alp@2001:861:8ca0:4940:1fde:7520:470c:b702) (Remote host closed the connection)
2024-12-13 16:06:09 +0100alp(~alp@2001:861:8ca0:4940:a0f8:bb83:fcc1:1af2)
2024-12-13 16:07:31 +0100alp(~alp@2001:861:8ca0:4940:a0f8:bb83:fcc1:1af2) (Remote host closed the connection)
2024-12-13 16:07:49 +0100alp(~alp@2001:861:8ca0:4940:368f:e308:67fd:150f)
2024-12-13 16:08:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 16:09:31 +0100alp_(~alp@2001:861:8ca0:4940:bbaf:78a6:fe4b:94e9)
2024-12-13 16:10:54 +0100alp_(~alp@2001:861:8ca0:4940:bbaf:78a6:fe4b:94e9) (Remote host closed the connection)
2024-12-13 16:11:12 +0100alp_(~alp@2001:861:8ca0:4940:3ebc:4e24:bba7:15f2)
2024-12-13 16:12:08 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-12-13 16:12:35 +0100alp_(~alp@2001:861:8ca0:4940:3ebc:4e24:bba7:15f2) (Remote host closed the connection)
2024-12-13 16:12:52 +0100alp(~alp@2001:861:8ca0:4940:368f:e308:67fd:150f) (Ping timeout: 252 seconds)
2024-12-13 16:12:52 +0100alp_(~alp@2001:861:8ca0:4940:86cd:64ae:1e47:4ab3)
2024-12-13 16:14:35 +0100alp__(~alp@128-79-174-146.hfc.dyn.abo.bbox.fr)
2024-12-13 16:15:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 16:17:41 +0100alp_(~alp@2001:861:8ca0:4940:86cd:64ae:1e47:4ab3) (Ping timeout: 252 seconds)
2024-12-13 16:18:18 +0100acidjnk_new(~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2024-12-13 16:18:54 +0100dpratt(~dpratt@165.225.220.148) dpratt
2024-12-13 16:19:32 +0100remexre(~remexre@user/remexre) (Ping timeout: 252 seconds)
2024-12-13 16:19:34 +0100dpratt(~dpratt@165.225.220.148) (Client Quit)
2024-12-13 16:20:00 +0100dpratt(~dpratt@165.225.220.148) dpratt
2024-12-13 16:24:33 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Quit: dostoevsky)
2024-12-13 16:26:09 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 16:26:15 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Max SendQ exceeded)
2024-12-13 16:26:53 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 16:26:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 16:27:03 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Max SendQ exceeded)
2024-12-13 16:27:35 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 16:27:43 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Max SendQ exceeded)
2024-12-13 16:31:05 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 16:31:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 16:34:35 +0100dpratt(~dpratt@165.225.220.148) (Quit: Client closed)
2024-12-13 16:40:49 +0100srazkvt(~sarah@user/srazkvt) (Quit: Konversation terminated!)
2024-12-13 16:44:50 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 252 seconds)
2024-12-13 16:45:13 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2024-12-13 16:45:46 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-13 16:47:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 16:49:57 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Quit: dostoevsky)
2024-12-13 16:51:48 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 16:55:09 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 16:55:29 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Client Quit)
2024-12-13 16:57:34 +0100mari-estel(~mari-este@user/mari-estel) mari-estel
2024-12-13 16:58:07 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 16:59:01 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Remote host closed the connection)
2024-12-13 17:01:23 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 17:01:56 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Remote host closed the connection)
2024-12-13 17:02:38 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 17:05:44 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 17:06:52 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Remote host closed the connection)
2024-12-13 17:07:11 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 17:08:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 17:09:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 17:13:40 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 17:14:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 17:15:20 +0100housemate(~housemate@2001:8004:1680:2767:7a79:ea75:6048:3bdc) housemate
2024-12-13 17:16:47 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2024-12-13 17:17:58 +0100dostoevsky(~dostoevsk@user/dostoevsky) (Quit: Leaving)
2024-12-13 17:18:17 +0100dostoevsky(~dostoevsk@user/dostoevsky) dostoevsky
2024-12-13 17:25:15 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 17:28:42 +0100acidjnk_new(~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) acidjnk
2024-12-13 17:29:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 17:29:53 +0100Digitteknohippie(~user@user/digit) Digit
2024-12-13 17:31:02 +0100Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-12-13 17:38:25 +0100housemate(~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 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-12-13 17:40:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 17:42:56 +0100mari-estel(~mari-este@user/mari-estel) ()
2024-12-13 17:45:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 17:46:33 +0100sprotte24(~sprotte24@p200300d16f08ae0004e79d08210c66b3.dip0.t-ipconnect.de)
2024-12-13 17:48:17 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 248 seconds)
2024-12-13 17:56:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 17:58:52 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-12-13 18:00:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 18:01:38 +0100DigitteknohippieDigit
2024-12-13 18:09:38 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-12-13 18:10:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 18:16:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 18:16:26 +0100sonolin(~michael@user/sonolin) sonolin
2024-12-13 18:20:50 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-12-13 18:21:16 +0100remexre(~remexre@user/remexre) remexre
2024-12-13 18:23:36 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 244 seconds)
2024-12-13 18:26:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 18:31:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-13 18:34:40 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 244 seconds)
2024-12-13 18:34:51 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Remote host closed the connection)
2024-12-13 18:35:11 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-12-13 18:39:10 +0100zenmov(~zenmov@user/zenmov) (Ping timeout: 252 seconds)
2024-12-13 18:40:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 18:43:42 +0100zenmov(~zenmov@user/zenmov) zenmov
2024-12-13 18:44:01 +0100acidjnk_new(~acidjnk@p200300d6e7283f423cf02b510a599160.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-12-13 18:44:19 +0100acidjnk_new(~acidjnk@p200300d6e7283f42ed270669e8aec613.dip0.t-ipconnect.de) acidjnk
2024-12-13 18:44:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 18:50:04 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2024-12-13 18:54:34 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 245 seconds)
2024-12-13 18:55:43 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 18:58:06 +0100OftenFaded(~OftenFade@user/tisktisk) OftenFaded
2024-12-13 19:00:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 19:00:30 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 252 seconds)
2024-12-13 19:09:21 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2024-12-13 19:09:55 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-12-13 19:10:43 +0100jespada(~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 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2024-12-13 19:11:05 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 19:13:42 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-12-13 19:14:46 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
2024-12-13 19:15:04 +0100Lord_of_Life_Lord_of_Life
2024-12-13 19:15:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-13 19:26:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 19:30:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 19:35:16 +0100ash3en(~Thunderbi@146.70.124.222) ash3en
2024-12-13 19:36:31 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-12-13 19:40:04 +0100meooow_(~meooow@165.232.184.169) (Quit: q)
2024-12-13 19:40:19 +0100meooow(~meooow@2400:6180:100:d0::ad9:e001) meooow
2024-12-13 19:40:42 +0100zenmov_(~zenmov@user/zenmov) zenmov
2024-12-13 19:40:46 +0100zenmov(~zenmov@user/zenmov) (Ping timeout: 252 seconds)
2024-12-13 19:41:13 +0100acidjnk_new(~acidjnk@p200300d6e7283f42ed270669e8aec613.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2024-12-13 19:41:51 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 19:42:35 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-13 19:43:04 +0100Digitteknohippie(~user@user/digit) Digit
2024-12-13 19:44:08 +0100Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-12-13 19:44:09 +0100tdammers(~tdammers@110-136-178-143.ftth.glasoperator.nl) (Ping timeout: 245 seconds)
2024-12-13 19:46:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 19:50:24 +0100arjun(~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 +0100tdammers(~tdammers@110-136-178-143.ftth.glasoperator.nl) tdammers
2024-12-13 19:57:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 20:01:57 +0100arjun(~arjun@user/arjun) (Quit: Leaving)
2024-12-13 20:02:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-12-13 20:02:59 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-12-13 20:03:03 +0100ash3en(~Thunderbi@146.70.124.222) (Quit: ash3en)
2024-12-13 20:06:51 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-12-13 20:08:21 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-12-13 20:10:39 +0100ubert(~Thunderbi@p200300ecdf117c5bcbacc4208e66254f.dip0.t-ipconnect.de) (Remote host closed the connection)
2024-12-13 20:12:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 20:15:52 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-12-13 20:17:52 +0100merijn(~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 +0100jmcantrellGuest8945
2024-12-13 20:26:32 +0100Guest8945(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 +0100jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2024-12-13 20:29:01 +0100merijn(~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 +0100merijn(~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 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-12-13 20:43:03 +0100acidjnk_new(~acidjnk@p200300d6e7283f42593f59da3b296f97.dip0.t-ipconnect.de) acidjnk
2024-12-13 20:44:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 20:49:13 +0100merijn(~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 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2024-12-13 20:54:18 +0100zzz(~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 +0100zero(~z@user/zero) zero
2024-12-13 20:57:37 +0100mastarija(~mastarija@42-117.dsl.iskon.hr) mastarija
2024-12-13 20:58:12 +0100lxsameer(~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 +0100OftenFaded(~OftenFade@user/tisktisk) (Quit: Client closed)
2024-12-13 20:59:03 +0100DigitteknohippieDigit
2024-12-13 20:59:12 +0100zero(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 21:00:04 +0100caconym(~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 +0100caconym(~caconym@user/caconym) caconym
2024-12-13 21:00:50 +0100zero(~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 +0100iteratee(~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 +0100merijn(~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 +0100tdammers(~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 +0100tabemann_(~tabemann@2600:1700:7990:24e0:73ec:4dd3:844e:8eb8)
2024-12-13 21:08:55 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-12-13 21:09:33 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-13 21:09:42 +0100iteratee(~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 +0100tabemann(~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 +0100merijn(~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 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-13 21:19:50 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 21:20:29 +0100CrunchyFlakes(~CrunchyFl@31.19.233.78) (Read error: Connection reset by peer)
2024-12-13 21:21:02 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-12-13 21:21:05 +0100tdammers(~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 +0100CrunchyFlakes(~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 +0100Smiles(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 +0100tdammers(~tdammers@110-136-178-143.ftth.glasoperator.nl) (Ping timeout: 246 seconds)
2024-12-13 21:30:44 +0100merijn(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-12-13 21:36:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-13 21:41:40 +0100tdammers(~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 +0100merijn(~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 +0100tromp(~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 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 248 seconds)
2024-12-13 21:53:05 +0100merijn(~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 +0100L29Ah(~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 +0100kimiamania(~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 +0100kimiamania(~65804703@user/kimiamania) kimiamania
2024-12-13 22:02:05 +0100 <mastarija> I see the reset.
2024-12-13 22:04:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 22:08:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 22:13:47 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-12-13 22:13:49 +0100harveypwca(~harveypwc@2601:246:d080:b40:1889:d9bf:2dd8:b288) HarveyPwca
2024-12-13 22:19:31 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 22:21:20 +0100homo(~homo@user/homo) (Quit: homo)
2024-12-13 22:24:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 22:25:58 +0100Leary(~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 +0100pavonia(~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 +0100L29Ah(~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 +0100merijn(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 22:39:26 +0100Leary(~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 +0100takuan(~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 +0100hellwolffelt 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 +0100finsternis(~X@23.226.237.192) (Read error: Connection reset by peer)
2024-12-13 22:48:44 +0100ljdarj(~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 +0100michalz(~michalz@185.246.207.197) (Remote host closed the connection)
2024-12-13 22:50:18 +0100merijn(~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 +0100dpratt(~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 +0100merijn(~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 +0100weary-traveler(~user@user/user363627) user363627
2024-12-13 23:03:35 +0100OftenFaded(~OftenFade@user/tisktisk) OftenFaded
2024-12-13 23:03:38 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
2024-12-13 23:03:38 +0100jmcantrell_jmcantrell
2024-12-13 23:04:54 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-13 23:05:41 +0100merijn(~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 +0100simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Remote host closed the connection)
2024-12-13 23:10:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-12-13 23:10:21 +0100dpratt(~dpratt@165.225.220.148) (Quit: Client closed)
2024-12-13 23:15:57 +0100remexre(~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 +0100tromp(~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 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2024-12-13 23:20:25 +0100ljdarj(~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 +0100merijn(~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 +0100merijn(~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 +0100ljdarj(~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 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 23:40:30 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-13 23:40:51 +0100todi(~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in)
2024-12-13 23:41:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-12-13 23:49:49 +0100chiselfuse(~chiselfus@user/chiselfuse) chiselfuse
2024-12-13 23:49:57 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-12-13 23:51:42 +0100dsrt^(~dsrt@c-98-242-74-66.hsd1.ga.comcast.net)
2024-12-13 23:51:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-13 23:55:04 +0100mastarija(~mastarija@42-117.dsl.iskon.hr) (Quit: Leaving)
2024-12-13 23:56:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2024-12-13 23:58:48 +0100briandaed(~root@user/briandaed) (Quit: Lost terminal)
2024-12-13 23:59:21 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Quit: Lost terminal)
2024-12-13 23:59:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)