2025/12/04

2025-12-04 00:03:55 +0100 <haskellbridge> <lucabtz> Leary maybe your way is better than an Additive typeclass as I was doing
2025-12-04 00:06:14 +0100oats(~oats@user/oats) (Read error: Connection reset by peer)
2025-12-04 00:06:29 +0100oats(~oats@user/oats) oats
2025-12-04 00:06:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 00:11:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 00:12:37 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-12-04 00:14:10 +0100 <EvanR> TMA, due to buffy the vampire slayer, anything can be anythinged
2025-12-04 00:22:01 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-04 00:22:15 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 240 seconds)
2025-12-04 00:22:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 00:23:30 +0100 <geekosaur> due to pretty much any native English speaker 🙂
2025-12-04 00:23:41 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-12-04 00:23:51 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-04 00:25:36 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-04 00:27:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-04 00:28:07 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds)
2025-12-04 00:30:40 +0100 <EvanR> the word museum in washington DC is pretty cool
2025-12-04 00:31:02 +0100 <EvanR> all about language learning language, inventing new words, and not just english
2025-12-04 00:38:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 00:42:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 00:46:16 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-04 00:47:15 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-04 00:53:40 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds)
2025-12-04 00:54:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 00:58:28 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
2025-12-04 00:59:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-04 01:01:14 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-12-04 01:08:03 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-12-04 01:09:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 01:14:35 +0100X-Scale(~ARM@50.65.114.89.rev.vodafone.pt) X-Scale
2025-12-04 01:14:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 01:25:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 01:26:09 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) szkl
2025-12-04 01:30:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 01:41:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 01:41:43 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
2025-12-04 01:44:12 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-04 01:46:07 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
2025-12-04 01:46:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-04 01:49:20 +0100xff0x(~xff0x@2405:6580:b080:900:9a8d:d213:9a6f:7468) (Ping timeout: 244 seconds)
2025-12-04 01:50:08 +0100 <haskellbridge> <Zemyla> I wish GHC would turn compile-time lists of primitive types into operations on an Addr# defined at compile time.
2025-12-04 01:50:44 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 265 seconds)
2025-12-04 01:51:29 +0100 <haskellbridge> <Zemyla> Like, [1, 3, 5, 8, 14] :: [Int32] would become unpackInt32List# 5# "[something]"#.
2025-12-04 01:51:45 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer)
2025-12-04 01:53:09 +0100 <geekosaur> I can't see that being any faster, and possibly slower if it needs to box the contents individually
2025-12-04 01:54:01 +0100sam113101(~sam@modemcable200.189-202-24.mc.videotron.ca) sam113101
2025-12-04 01:57:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 01:58:28 +0100 <EvanR> the question becomes how unpackInt32List# primitive is implemented
2025-12-04 01:58:57 +0100 <EvanR> is it even different from normal
2025-12-04 01:59:59 +0100 <EvanR> also, a string?
2025-12-04 02:00:48 +0100jle`(~jle`@2603:8001:3b00:11:cbef:e190:cb2:e0d) (Ping timeout: 244 seconds)
2025-12-04 02:02:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-04 02:02:46 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds)
2025-12-04 02:02:50 +0100jle`(~jle`@2603:8001:3b00:11:ed74:b35d:c320:7e16) jle`
2025-12-04 02:05:10 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
2025-12-04 02:05:50 +0100 <haskellbridge> <Zemyla> If it's not faster, then why is it used that way for lists of Char?
2025-12-04 02:09:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 02:09:37 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 246 seconds)
2025-12-04 02:11:08 +0100ryanbooker(uid4340@id-4340.hampstead.irccloud.com) ryanbooker
2025-12-04 02:11:54 +0100 <EvanR> seems like they would coerce to the same thing
2025-12-04 02:13:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 02:17:20 +0100firesquidwao(~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 244 seconds)
2025-12-04 02:18:13 +0100tuxpaint(~a@2600:3c06::f03c:93ff:fea6:ef0e)
2025-12-04 02:18:36 +0100omidmash9(~omidmash@user/omidmash) omidmash
2025-12-04 02:20:51 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2025-12-04 02:20:51 +0100omidmash9omidmash
2025-12-04 02:24:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 02:28:54 +0100 <haskellbridge> <Zemyla> Also, it's not just about it being faster. It's also about it being a good producer and potentially having rewrite rules that straight up don't produce an intermediate list (for instance, a Vector implementation).
2025-12-04 02:29:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-04 02:29:49 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.)
2025-12-04 02:35:18 +0100acidjnk(~acidjnk@p200300d6e71719231986af8ebf40e0fc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-12-04 02:36:31 +0100X-Scale(~ARM@50.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
2025-12-04 02:36:40 +0100inline__(~wbooze@cgn-195-14-219-122.nc.de) Inline
2025-12-04 02:39:43 +0100wbooze(~wbooze@2001-4dd7-9813-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) (Ping timeout: 250 seconds)
2025-12-04 02:40:37 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-12-04 02:40:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 02:45:32 +0100ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-12-04 02:46:38 +0100X-Scale(~ARM@50.65.114.89.rev.vodafone.pt) X-Scale
2025-12-04 02:47:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-04 02:48:56 +0100inline__(~wbooze@cgn-195-14-219-122.nc.de) (Ping timeout: 240 seconds)
2025-12-04 02:54:46 +0100arahael(~wetfoot@user/arahael) (Ping timeout: 256 seconds)
2025-12-04 02:55:39 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Remote host closed the connection)
2025-12-04 02:58:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 03:03:35 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 03:03:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-04 03:08:25 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
2025-12-04 03:12:42 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 252 seconds)
2025-12-04 03:14:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 03:18:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 03:29:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 03:35:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-04 03:38:39 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 250 seconds)
2025-12-04 03:40:27 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-12-04 03:45:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 03:46:25 +0100trickard_trickard
2025-12-04 03:50:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 03:56:22 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
2025-12-04 04:01:14 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 265 seconds)
2025-12-04 04:01:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 04:06:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-04 04:09:00 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 04:09:13 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 04:13:12 +0100tuxpaint(~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 252 seconds)
2025-12-04 04:15:16 +0100tuxpaint(~a@2600:3c06::f03c:93ff:fea6:ef0e)
2025-12-04 04:17:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 04:20:54 +0100ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2025-12-04 04:22:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-04 04:26:21 +0100marlino(~marlino@96-8-193-98.block0.gvtc.com)
2025-12-04 04:28:13 +0100td_(~td@i5387093E.versanet.de) (Ping timeout: 246 seconds)
2025-12-04 04:30:04 +0100td_(~td@i5387090C.versanet.de)
2025-12-04 04:32:52 +0100annamalai(~annamalai@157.32.222.111) (Read error: Connection reset by peer)
2025-12-04 04:32:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 04:33:13 +0100annamalai(~annamalai@157.32.222.111) annamalai
2025-12-04 04:37:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 04:37:51 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 04:42:29 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
2025-12-04 04:43:54 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-12-04 04:44:52 +0100spew(~spew@user/spew) spew
2025-12-04 04:48:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 04:48:54 +0100spew(~spew@user/spew) (Client Quit)
2025-12-04 04:49:51 +0100omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2025-12-04 04:53:22 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 04:54:16 +0100omidmash(~omidmash@user/omidmash) omidmash
2025-12-04 05:04:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 05:09:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-04 05:11:02 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-04 05:12:59 +0100trickard_trickard
2025-12-04 05:19:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 05:21:35 +0100weary-traveler(~user@user/user363627) user363627
2025-12-04 05:22:01 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 05:25:05 +0100divlamir_(~divlamir@user/divlamir) divlamir
2025-12-04 05:25:31 +0100weary-traveler(~user@user/user363627) (Client Quit)
2025-12-04 05:25:47 +0100weary-traveler(~user@user/user363627) user363627
2025-12-04 05:26:19 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds)
2025-12-04 05:26:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-04 05:27:22 +0100divlamir(~divlamir@user/divlamir) (Ping timeout: 244 seconds)
2025-12-04 05:27:23 +0100divlamir_divlamir
2025-12-04 05:36:32 +0100foul_owl(~kerry@94.156.149.97) (Ping timeout: 240 seconds)
2025-12-04 05:37:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 05:39:04 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-04 05:42:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 05:44:15 +0100pabs3(~pabs3@user/pabs3) (Ping timeout: 240 seconds)
2025-12-04 05:47:14 +0100mehbark(~mehbark@user/mehbark) (Quit: insert leave message here)
2025-12-04 05:47:23 +0100mehbark(~mehbark@joey.luug.ece.vt.edu)
2025-12-04 05:47:44 +0100mehbark(~mehbark@joey.luug.ece.vt.edu) (Changing host)
2025-12-04 05:47:44 +0100mehbark(~mehbark@user/mehbark) mehbark
2025-12-04 05:48:40 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 245 seconds)
2025-12-04 05:49:51 +0100marlino(~marlino@96-8-193-98.block0.gvtc.com) (WeeChat 4.7.2)
2025-12-04 05:50:26 +0100foul_owl(~kerry@94.156.149.97) foul_owl
2025-12-04 05:53:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 05:58:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 06:09:28 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 06:11:25 +0100weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-12-04 06:11:39 +0100weary-traveler(~user@user/user363627) user363627
2025-12-04 06:14:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-04 06:18:10 +0100Guest35(~Guest35@2607:fa49:1940:8200:c958:535b:5462:796d)
2025-12-04 06:20:01 +0100Guest35(~Guest35@2607:fa49:1940:8200:c958:535b:5462:796d) (Write error: Broken pipe)
2025-12-04 06:20:07 +0100pabs3(~pabs3@user/pabs3) pabs3
2025-12-04 06:20:32 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-04 06:22:37 +0100weary-traveler(~user@user/user363627) user363627
2025-12-04 06:23:20 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 06:24:13 +0100sp1ff(~user@2601:1c2:4c00:6820::e122) sp1ff
2025-12-04 06:25:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 06:27:55 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 244 seconds)
2025-12-04 06:29:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 06:30:44 +0100 <iqubic> Hmm... cabal repl is doing weird things for me.
2025-12-04 06:35:05 +0100 <iqubic> So, I have a bunch of files in my src directory for doing Advent of Code. The src directory looks like this: https://dpaste.alwaysdata.org/ATNKbB9Q
2025-12-04 06:35:51 +0100 <iqubic> All the Day* files have their own `part1 :: String -> Int` and `part2 :: String -> Int` functions.
2025-12-04 06:36:26 +0100 <iqubic> When I start a cabal repl, I can do `:m *Day04` and that gives me access to the `part1` and `part2` functions from `Day04.hs`
2025-12-04 06:37:16 +0100 <iqubic> But when run `:r` to reload it, the repl decides to pull in the part1 and part2 functions from Day01, even though it says it's compiling Day04 for me.
2025-12-04 06:37:21 +0100 <iqubic> What the hell?!?!?
2025-12-04 06:41:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 06:41:19 +0100 <iqubic> Here's my cabal repl output: https://dpaste.alwaysdata.org/3r1Wpc4o
2025-12-04 06:43:01 +0100michalz(~michalz@185.246.207.203)
2025-12-04 06:45:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 06:47:38 +0100 <koala_man> wild
2025-12-04 06:55:14 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-12-04 06:56:15 +0100hdggxin(~hdggxin@223.181.46.243) (Ping timeout: 250 seconds)
2025-12-04 06:56:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 06:57:32 +0100 <iqubic> Why is cabal repl / GHCi doing weird things here?
2025-12-04 06:59:35 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-04 07:00:19 +0100Square(~Square@user/square) Square
2025-12-04 07:01:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-04 07:03:00 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-12-04 07:04:13 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds)
2025-12-04 07:07:06 +0100hdggxin(~hdggxin@2401:4900:88a9:6ec5:fd6a:959:46fd:f2a3)
2025-12-04 07:10:32 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-12-04 07:12:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 07:12:45 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-04 07:14:29 +0100dfg(~dfg@user/dfg) dfg
2025-12-04 07:14:36 +0100weary-traveler(~user@user/user363627) user363627
2025-12-04 07:14:55 +0100dysfigured(~dfg@50.116.28.89) (Ping timeout: 240 seconds)
2025-12-04 07:17:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-04 07:28:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 07:33:04 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-04 07:33:05 +0100Enrico63(~Enrico63@host-212-171-79-170.pool212171.interbusiness.it) Enrico63
2025-12-04 07:35:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-12-04 07:39:41 +0100 <jreicher> sprout: are there other languages like Egel? (untyped, pure functional)
2025-12-04 07:40:15 +0100karenw(~karenw@user/karenw) karenw
2025-12-04 07:41:45 +0100Enrico63(~Enrico63@host-212-171-79-170.pool212171.interbusiness.it) (Quit: Client closed)
2025-12-04 07:45:52 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 07:46:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 07:48:31 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-12-04 07:51:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 07:51:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 07:52:39 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
2025-12-04 07:53:13 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-04 07:55:32 +0100jreicher(~user@user/jreicher) (Quit: In transit)
2025-12-04 07:56:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-04 07:58:29 +0100mikess(~sam@user/mikess) (Ping timeout: 260 seconds)
2025-12-04 07:59:11 +0100arahael(~wetfoot@user/arahael) arahael
2025-12-04 08:00:57 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-04 08:01:10 +0100hdggxin(~hdggxin@2401:4900:88a9:6ec5:fd6a:959:46fd:f2a3) (Ping timeout: 245 seconds)
2025-12-04 08:04:17 +0100hdggxin(~hdggxin@2401:4900:88a9:bff0:be1a:791c:4871:3d3b)
2025-12-04 08:05:23 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 08:07:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 08:10:09 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 265 seconds)
2025-12-04 08:12:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-04 08:23:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 08:25:36 +0100ft(~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving)
2025-12-04 08:25:48 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-04 08:26:29 +0100Square2(~Square4@user/square) Square
2025-12-04 08:28:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-04 08:30:31 +0100Square(~Square@user/square) (Ping timeout: 240 seconds)
2025-12-04 08:37:04 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds)
2025-12-04 08:39:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 08:39:40 +0100divlamir(~divlamir@user/divlamir) (Ping timeout: 244 seconds)
2025-12-04 08:40:16 +0100divlamir(~divlamir@user/divlamir) divlamir
2025-12-04 08:41:20 +0100 <iqubic> Anyone know why cabal repl is being weird for me?
2025-12-04 08:41:42 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-04 08:44:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-04 08:50:28 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
2025-12-04 08:52:00 +0100 <arahael> iqubic: Nobody is going to know that without any context.
2025-12-04 08:52:21 +0100 <iqubic> What kind of context will I need to provide?
2025-12-04 08:52:32 +0100 <iqubic> I'm using GHC 9.12.3
2025-12-04 08:53:23 +0100 <iqubic> I'm also running NixOS, but I'm not sure that's the root cause here.
2025-12-04 08:53:33 +0100 <arahael> Generally a good template is "I have this... I expected to see this... But got this..."
2025-12-04 08:54:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 09:00:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-04 09:01:36 +0100 <iqubic> So, I have a project set up like this https://gist.github.com/IQubic/a9b2d200d368124993c30b4611151749. I have run cabal repl to start up a repl for my project. I can run ":m *Day04" to load Day04. When I make changes to Day04.hs, I then run :r to reload things. When I run the function part2, the repl is now calling the part2 function from Day01, instead of Day04. I'd expect it to be running the functions from Day04.hs, because I have
2025-12-04 09:01:36 +0100 <iqubic> actually ever loaded Day01 in this repl.
2025-12-04 09:02:00 +0100 <iqubic> https://gist.github.com/IQubic/ae3f1e0c3062ffd0a65035771dffdc90
2025-12-04 09:02:50 +0100mehbark(~mehbark@user/mehbark) (Quit: insert leave message here)
2025-12-04 09:03:49 +0100mehbark(~mehbark@joey.luug.ece.vt.edu)
2025-12-04 09:04:01 +0100mehbark(~mehbark@joey.luug.ece.vt.edu) (Changing host)
2025-12-04 09:04:01 +0100mehbark(~mehbark@user/mehbark) mehbark
2025-12-04 09:06:33 +0100 <iqubic> Is the issue using a * in ":m *Day04"?
2025-12-04 09:09:27 +0100 <iqubic> If I use ":m Day04", without the *, then run ":r", it seems to load both Day01 and Day04 for some reason.
2025-12-04 09:10:36 +0100 <iqubic> https://dpaste.alwaysdata.org/y9NWyXCq
2025-12-04 09:10:42 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-04 09:10:48 +0100 <iqubic> Why is Day01 added automatically??!!?
2025-12-04 09:17:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-04 09:20:34 +0100jreicher(~user@user/jreicher) jreicher
2025-12-04 09:24:26 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-04 09:27:48 +0100annamalai(~annamalai@157.32.222.111) (Ping timeout: 252 seconds)
2025-12-04 09:28:16 +0100 <sprout> jreicher: yes, there are other untyped functional languages. many even, it's a favorite for plt people to implement
2025-12-04 09:28:38 +0100 <sprout> jreicher: most notorious is lisp of course
2025-12-04 09:28:56 +0100 <sprout> well, you know that one I guess
2025-12-04 09:29:22 +0100 <sprout> wasn't there some package manager language lazy, untyped, functional?
2025-12-04 09:30:23 +0100 <sprout> nix
2025-12-04 09:30:45 +0100edmedmerry
2025-12-04 09:31:07 +0100 <sprout> https://nix.dev/tutorials/nix-language
2025-12-04 09:31:17 +0100 <haskellbridge> <iqubic (she/her)> Yeah. Nix
2025-12-04 09:31:18 +0100 <haskellbridge> <iqubic (she/her)> Nix is good.
2025-12-04 09:31:37 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-12-04 09:33:08 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 09:37:42 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 252 seconds)
2025-12-04 09:37:55 +0100chele(~chele@user/chele) chele
2025-12-04 09:38:24 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-12-04 09:41:49 +0100arandombit(~arandombi@user/arandombit) (Ping timeout: 246 seconds)
2025-12-04 09:46:55 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds)
2025-12-04 09:47:06 +0100kuribas(~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) kuribas
2025-12-04 09:49:54 +0100iqubic(~sophia@2601:602:9203:1660:661f:14db:875e:5d74) (Remote host closed the connection)
2025-12-04 09:54:19 +0100orizuru(~orizuru@user/orizuru) (Quit: The Lounge - https://thelounge.chat)
2025-12-04 09:54:46 +0100weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-12-04 09:54:53 +0100user363627(~user@user/user363627) user363627
2025-12-04 09:55:35 +0100kuribas(~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) (Remote host closed the connection)
2025-12-04 09:55:48 +0100kuribas(~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) kuribas
2025-12-04 09:55:59 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 09:56:13 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 09:56:42 +0100orizuru(~orizuru@178-79-171-63.ip.linodeusercontent.com)
2025-12-04 09:57:55 +0100orizuru(~orizuru@178-79-171-63.ip.linodeusercontent.com) (Changing host)
2025-12-04 09:57:55 +0100orizuru(~orizuru@user/orizuru) orizuru
2025-12-04 09:59:32 +0100iqubic(~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) iqubic
2025-12-04 10:03:15 +0100 <jreicher> sprout: I don't consider Lisp to be a functional language. I get in trouble in Lisp channels for saying that but I expect there might be a bit more sympathy for the view here.
2025-12-04 10:06:26 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-04 10:07:02 +0100chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2025-12-04 10:07:23 +0100 <jackdk> I'm curious if you consider ocaml a functional language then, because I can see arguments in both directions. It's definitely from a functional tradition but admits mutable references like many lisps do. But I'd definitely consider it "culturally" functional in that AFAIK people write pure interfaces around mutable bits, etc
2025-12-04 10:07:44 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 10:08:08 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2025-12-04 10:09:49 +0100 <jreicher> Lisp doesn't admit mutable references. In Lisp EVERYTHING is mutable because there's no code; only data. And all the data is mutable. And then you can direct the language to interpret one of data structures as code. In a functional language things are primarily code, and if data is admitted then it just means it's not pure.
2025-12-04 10:10:47 +0100 <jreicher> The only reason Lisp feels functional is an almost-coincidental side effect of "everything is data" is that functions become first class.
2025-12-04 10:13:47 +0100kuribas(~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
2025-12-04 10:15:19 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 264 seconds)
2025-12-04 10:16:04 +0100 <merijn> Also, Haskell admits mutable references too :p
2025-12-04 10:16:25 +0100 <merijn> They're just more principled (or making your jump through more hoops to use the unprincipled ones)
2025-12-04 10:16:59 +0100 <merijn> jackdk: Ocaml is clearly functional, just not pure
2025-12-04 10:23:28 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-04 10:27:06 +0100 <jreicher> sprout: In case it's worth saying, I meant practical untyped functional languages; not toy languages.
2025-12-04 10:28:24 +0100 <sprout> well, nix then
2025-12-04 10:29:02 +0100 <jreicher> :) Ta. That one I already knew, but I had never heard of Egel and it's the first practical-ish one I've seen in a while.
2025-12-04 10:29:05 +0100 <sprout> although I don't know what you consider *practical*
2025-12-04 10:29:19 +0100 <sprout> mwa, pretty shitty interpreter
2025-12-04 10:29:25 +0100 <sprout> slow and buggy
2025-12-04 10:29:28 +0100arandombit(~arandombi@user/arandombit) arandombit
2025-12-04 10:29:37 +0100 <sprout> well, maybe not that buggy. but slow
2025-12-04 10:29:38 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-04 10:29:42 +0100 <sprout> so not practical
2025-12-04 10:29:45 +0100 <sprout> cannot recommend
2025-12-04 10:29:55 +0100 <jreicher> As a rough and ready definition, "practical" is "can at least do IO with files, but should approach an FFI"
2025-12-04 10:30:33 +0100 <jreicher> I consider anything limited to stdin and sdtout to be toy. Doesn't mean it's not theoretically significant though, of course.
2025-12-04 10:31:03 +0100 <sprout> well, it has most IO
2025-12-04 10:31:15 +0100 <jreicher> Yeah, that's what stood out to me.
2025-12-04 10:31:37 +0100 <sprout> but it's an esolang in that it's an experiment with an operational model
2025-12-04 10:31:40 +0100 <sprout> > Egel is primarily about exploiting a trivialized operational model, a program (state) can be represented as a directed acyclic graph solely and program evaluation corresponds to trampolining the combinator at the root of that graph.
2025-12-04 10:31:44 +0100 <lambdabot> <hint>:1:67: error: parse error on input `,'
2025-12-04 10:32:15 +0100 <sprout> succesful experiment, mostly a failed too slow language though
2025-12-04 10:32:26 +0100 <sprout> it's interesting to people doing plt
2025-12-04 10:32:57 +0100 <sprout> like 'hey, here's a different manner of implementing a term rewriter'
2025-12-04 10:32:58 +0100 <jreicher> I would argue Haskell is not really so different. All the heap objects form that graph, and any differences can probably be characterised as very clever optimisations.
2025-12-04 10:33:21 +0100 <sprout> haskell must have a stack of redexes though
2025-12-04 10:33:35 +0100 <jreicher> It does. But like I said, that's an optimisation IMO.
2025-12-04 10:34:57 +0100 <sprout> sure. I cannot even state it's a very bright idea. just something silly I wanted to show works
2025-12-04 10:35:04 +0100dhil(~dhil@5.151.29.139) dhil
2025-12-04 10:35:15 +0100 <sprout> and then a decade later I am still stuck with an interpreter :/
2025-12-04 10:35:19 +0100 <sprout> ah well
2025-12-04 10:36:34 +0100 <sprout> it's interesting since it simplifies normal rather elaborate machinery for evaluation like a SECD or CAM machine
2025-12-04 10:37:02 +0100 <sprout> theoretically interesting
2025-12-04 10:37:13 +0100 <sprout> practically, not so much
2025-12-04 10:37:19 +0100 <sprout> well, that's what I feel
2025-12-04 10:41:54 +0100acidjnk(~acidjnk@p200300d6e71719824d363649e1e7df87.dip0.t-ipconnect.de) acidjnk
2025-12-04 10:42:01 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2025-12-04 10:42:07 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-12-04 10:42:35 +0100 <jreicher> Is Egel yours?
2025-12-04 10:42:39 +0100 <sprout> yah
2025-12-04 10:43:02 +0100 <jreicher> Like I said, it stood out. I don't think many other people have tried to do something like it. It's not toy; you've made it practical.
2025-12-04 10:43:15 +0100 <sprout> oh. thanks!
2025-12-04 10:43:37 +0100 <jreicher> That's why I was asking if you knew any others. It's rare.
2025-12-04 10:43:37 +0100img(~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
2025-12-04 10:43:43 +0100 <jreicher> (I think)
2025-12-04 10:44:04 +0100 <sprout> still. cannot recommend..
2025-12-04 10:44:11 +0100 <sprout> it's an esolang at heart
2025-12-04 10:44:26 +0100 <sprout> maybe I'll find use for it somewhere sometime
2025-12-04 10:44:39 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 10:44:51 +0100img(~img@user/img) img
2025-12-04 10:49:24 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
2025-12-04 10:52:34 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2025-12-04 10:52:34 +0100xff0x(~xff0x@om126158246192.30.openmobile.ne.jp)
2025-12-04 10:54:07 +0100trickard_trickard
2025-12-04 10:54:23 +0100xff0x(~xff0x@om126158246192.30.openmobile.ne.jp) (Read error: Connection reset by peer)
2025-12-04 10:54:56 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-04 10:59:24 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-04 10:59:45 +0100xff0x(~xff0x@fs98a57788.tkyc008.ap.nuro.jp)
2025-12-04 11:01:28 +0100annamalai(~annamalai@157.32.217.175) annamalai
2025-12-04 11:03:38 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-04 11:04:08 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 11:04:28 +0100inline__(~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) Inline
2025-12-04 11:05:10 +0100inline__wbooze
2025-12-04 11:10:06 +0100fp(~Thunderbi@130.233.70.22) fp
2025-12-04 11:20:27 +0100Googulator(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-04 11:20:38 +0100Googulator(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-04 11:26:07 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 246 seconds)
2025-12-04 11:29:54 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-04 11:29:55 +0100Jackneill_(~Jackneill@94-21-15-191.pool.digikabel.hu)
2025-12-04 11:32:34 +0100Jackneill(~Jackneill@178-164-177-218.pool.digikabel.hu) (Ping timeout: 260 seconds)
2025-12-04 11:33:05 +0100divlamir_(~divlamir@user/divlamir) divlamir
2025-12-04 11:34:32 +0100fp(~Thunderbi@130.233.70.22) (Remote host closed the connection)
2025-12-04 11:34:51 +0100fp(~Thunderbi@130.233.70.22) fp
2025-12-04 11:35:48 +0100divlamir(~divlamir@user/divlamir) (Ping timeout: 256 seconds)
2025-12-04 11:35:49 +0100divlamir_divlamir
2025-12-04 11:36:49 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
2025-12-04 11:44:51 +0100inline__(~wbooze@cgn-195-14-220-195.nc.de) Inline
2025-12-04 11:46:55 +0100wbooze(~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) (Killed (uranium.libera.chat (Nickname regained by services)))
2025-12-04 11:46:55 +0100inline__wbooze
2025-12-04 11:47:11 +0100Googulator(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (*.net *.split)
2025-12-04 11:48:23 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (*.net *.split)
2025-12-04 11:48:23 +0100chexum_(~quassel@gateway/tor-sasl/chexum) (*.net *.split)
2025-12-04 11:48:23 +0100califax(~califax@user/califx) (*.net *.split)
2025-12-04 11:48:23 +0100gmg(~user@user/gehmehgeh) (*.net *.split)
2025-12-04 11:48:23 +0100ec(~ec@gateway/tor-sasl/ec) (*.net *.split)
2025-12-04 11:48:23 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (*.net *.split)
2025-12-04 12:04:05 +0100poscat0x04(~poscat@user/poscat) poscat
2025-12-04 12:04:13 +0100fp(~Thunderbi@130.233.70.22) (Ping timeout: 264 seconds)
2025-12-04 12:05:06 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 252 seconds)
2025-12-04 12:05:29 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-04 12:05:32 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-12-04 12:05:40 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds)
2025-12-04 12:05:45 +0100poscat(~poscat@user/poscat) (Ping timeout: 245 seconds)
2025-12-04 12:08:50 +0100Square2(~Square4@user/square) (Quit: Leaving)
2025-12-04 12:09:53 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 260 seconds)
2025-12-04 12:16:35 +0100DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Ping timeout: 245 seconds)
2025-12-04 12:17:25 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds)
2025-12-04 12:23:23 +0100fp(~Thunderbi@130.233.70.22) fp
2025-12-04 12:26:15 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-04 12:28:49 +0100xff0x(~xff0x@fs98a57788.tkyc008.ap.nuro.jp) (Ping timeout: 264 seconds)
2025-12-04 12:38:59 +0100DetourNetworkUK(~DetourNet@user/DetourNetworkUK) DetourNetworkUK
2025-12-04 12:39:51 +0100annamalai(~annamalai@157.32.217.175) (Ping timeout: 265 seconds)
2025-12-04 12:57:40 +0100karenw(~karenw@user/karenw) (Ping timeout: 255 seconds)
2025-12-04 12:59:30 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 12:59:44 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 13:00:23 +0100wbooze(~wbooze@cgn-195-14-220-195.nc.de) (Quit: Leaving)
2025-12-04 13:02:58 +0100__monty__(~toonn@user/toonn) toonn
2025-12-04 13:05:22 +0100srazkvt(~sarah@user/srazkvt) srazkvt
2025-12-04 13:12:30 +0100 <lucabtz> https://paste.tomsmeding.com/blBvVp0I does this make any sense to you?
2025-12-04 13:12:41 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-04 13:19:20 +0100wbooze(~wbooze@2001-4dd4-1daa-0-acf3-bea0-8250-a5a2.ipv6dyn.netcologne.de) Inline
2025-12-04 13:21:10 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 245 seconds)
2025-12-04 13:24:15 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 13:24:29 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 13:26:25 +0100 <tomsmeding> yes
2025-12-04 13:26:32 +0100 <tomsmeding> names are a little long, but that's personal :p
2025-12-04 13:26:57 +0100 <tomsmeding> lucabtz: with the <= bound it's impossible to hvae an "impossible" BoundedNatural
2025-12-04 13:27:06 +0100 <tomsmeding> so there is kind of one natural case that you cannot express
2025-12-04 13:27:18 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-04 13:27:29 +0100 <tomsmeding> this need not be a problem at all, but I find that things work a bit more nicely if you keep to the convention "lower bounds are inclusive, upper bounds are exclusive"
2025-12-04 13:27:39 +0100 <tomsmeding> consider changing the <= to <
2025-12-04 13:29:00 +0100PaulMartensen(15a119e437@2001:bc8:1210:2cd8::3bc) (Remote host closed the connection)
2025-12-04 13:29:00 +0100Ging_(46fea76d80@2001:bc8:1210:2cd8::470) (Remote host closed the connection)
2025-12-04 13:29:00 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494) (Remote host closed the connection)
2025-12-04 13:29:44 +0100X-Scale(~ARM@50.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
2025-12-04 13:30:20 +0100PaulMartensen(2c15493d69@2001:bc8:1210:2cd8::3bc)
2025-12-04 13:30:20 +0100Ging_(46fea76d80@2001:bc8:1210:2cd8::470)
2025-12-04 13:30:21 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494)
2025-12-04 13:34:41 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494) (Ping timeout: 244 seconds)
2025-12-04 13:35:01 +0100PaulMartensen(2c15493d69@2001:bc8:1210:2cd8::3bc) (Ping timeout: 255 seconds)
2025-12-04 13:35:02 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-12-04 13:36:32 +0100hdggxin(~hdggxin@2401:4900:88a9:bff0:be1a:791c:4871:3d3b) (Remote host closed the connection)
2025-12-04 13:36:35 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
2025-12-04 13:36:35 +0100Ging_(46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 245 seconds)
2025-12-04 13:36:35 +0100ljdarj1ljdarj
2025-12-04 13:38:21 +0100 <lucabtz> yeah i might change to that
2025-12-04 13:39:35 +0100 <lucabtz> im confused on how to go from value level to type level though, if it even is possible
2025-12-04 13:39:56 +0100img(~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
2025-12-04 13:41:09 +0100xff0x(~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f)
2025-12-04 13:41:11 +0100img(~img@user/img) img
2025-12-04 13:46:18 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 13:47:50 +0100divya(divya@140.238.251.170) divya
2025-12-04 13:53:20 +0100Ging_(46fea76d80@2001:bc8:1210:2cd8::470)
2025-12-04 13:54:05 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494)
2025-12-04 13:55:20 +0100PaulMartensen(15a119e437@2001:bc8:1210:2cd8::3bc)
2025-12-04 13:56:09 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds)
2025-12-04 13:56:38 +0100srazkvt(~sarah@user/srazkvt) (Quit: Konversation terminated!)
2025-12-04 13:58:59 +0100 <tomsmeding> lucabtz: what do you mean with that?
2025-12-04 13:59:07 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494) (Ping timeout: 265 seconds)
2025-12-04 13:59:07 +0100Ging_(46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 265 seconds)
2025-12-04 13:59:45 +0100X-Scale(~ARM@50.65.114.89.rev.vodafone.pt) X-Scale
2025-12-04 14:03:03 +0100annamalai(~annamalai@157.32.218.49) annamalai
2025-12-04 14:03:08 +0100PaulMartensen(15a119e437@2001:bc8:1210:2cd8::3bc) (Ping timeout: 256 seconds)
2025-12-04 14:04:12 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494)
2025-12-04 14:05:24 +0100 <ski> lucabtz : fwiw, i'd s/UnsafeMkBoundedNatural/PromiseBoundedNatural/, indicating that by using the constructor, you promise that the argument/component is bounded, and that by pattern-matching, you are being promised that the component is bounded
2025-12-04 14:06:16 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494) (Write error: error:80000068:system library::Connection reset by peer)
2025-12-04 14:06:45 +0100 <tomsmeding> oh what might be even nicer is to keep UnsafeMkBoundedNatural, but provide a pattern synonym (Mk)BoundedNatural that does a dynamic check on construction
2025-12-04 14:06:48 +0100 <ski> (also i'd implement `fromInteger', or else i'd say that `Show' instance is incorrect)
2025-12-04 14:07:27 +0100 <ski> mm, yea, that would be possible
2025-12-04 14:07:50 +0100 <lucabtz> i will look better into it later
2025-12-04 14:09:20 +0100Square2(~Square4@user/square) Square
2025-12-04 14:09:27 +0100 <lucabtz> i think mkBoundedNatural should have a different signature taking the bound into account too. it should be done with SNat
2025-12-04 14:09:29 +0100 <ski> (`showsPrec p (PromiseBoundedNatural n) = showParen (p > 10) $ showString "PromiseBoundedNatural " . showsPrec 11 n' is how i'd do `Show', if no `fromInteger' for `BoundedNatural bound')
2025-12-04 14:10:05 +0100 <lucabtz> yeah i havent studied in detail Read/Show i find them confusing
2025-12-04 14:10:17 +0100 <lucabtz> i just needed a way to print the stuff to the terminal
2025-12-04 14:10:23 +0100 <tomsmeding> lucabtz: while that is possible, bounds on the type level like that tend to make for very cumbersome interfaces
2025-12-04 14:10:55 +0100 <tomsmeding> https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-TypeNats.html#t:-60--61-
2025-12-04 14:12:08 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 14:12:22 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 14:12:50 +0100fp(~Thunderbi@130.233.70.22) (Quit: fp)
2025-12-04 14:13:05 +0100 <lucabtz> i think the check has to be kept at runtime, because i need to determine the type at runtime, however i want the type to extend another typeclass which i called PartialAdditive which supports an operator +? which may fail and a zero
2025-12-04 14:13:12 +0100fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-12-04 14:13:22 +0100 <lucabtz> and i need the bound as part of the type
2025-12-04 14:13:34 +0100 <ski> lucabtz : imho, (a) `Show' ought to use Haskell syntax (rather than some custom syntax format), so that its `String' output (in an appropriate environment) will evaluate to an equal value; and (b) if you also have `Read', then it ought to be able to read (finite) output generated from `Show', producing an equal value
2025-12-04 14:13:47 +0100 <tomsmeding> (agreed with ski)
2025-12-04 14:14:09 +0100 <lucabtz> if it was something like data BoundedNatural = { val :: Natural, bound :: Natural } then zero would not make sense because how do you pick a bound
2025-12-04 14:14:52 +0100 <lucabtz> ski yeah i realized last night when i was trying to understand Read and i saw it is so much related to haskell lexicon itself
2025-12-04 14:16:02 +0100 <ski> (a) means that, normally, if defining `Show' explicitly (rather than `deriving'), you'll normally define `showsPrec', to deal with precdedence and bracketing properly. do note that different `Show' instances are intended to work together (e.g. `instance Show a => Show (Maybe a)'), so that if you happen to use custom syntax for `T', you'll then get a mix of custom and Haskell syntax for (e.g.) `Maybe T',
2025-12-04 14:16:08 +0100 <ski> which is confusing and not that useful
2025-12-04 14:19:28 +0100 <ski> *if* your output will never need extra brackets, you can define `show' instead. do note that getting the brackets properly printed in `Just (-1)' relies on defining `showsPrec' for the number type, so that `Just' can tell it the precedence level (of application, being `11' for the argument expression, see example above), so that `-1' will know to wrap itself in brackets, when `showsPrec' is called on it
2025-12-04 14:20:48 +0100 <ski> (for your case, `Natural's can't be negative, so this issue doesn't arise there. this was just one example of why `showsPrec' is needed)
2025-12-04 14:21:16 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-12-04 14:22:32 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
2025-12-04 14:23:12 +0100 <ski> common valid reasons for wanting to custom-define `Show' (and `Read') are (c0) you want to have an abstract data type, not exporting data constructors, so `Show' should show how to construct the value in terms of exported operations instead (and similarly for the `Read' case, parsing that). e.g. `Array',`Set',`Map' does this
2025-12-04 14:23:46 +0100 <tomsmeding> c0?
2025-12-04 14:23:47 +0100 <ski> > listArray (-3,3) [(i,i^2) | i <- range (-3,3)]
2025-12-04 14:23:51 +0100 <lambdabot> array (-3,3) [(-3,(-3,9)),(-2,(-2,4)),(-1,(-1,1)),(0,(0,0)),(1,(1,1)),(2,(2,...
2025-12-04 14:23:54 +0100 <lucabtz> it seems like this would be the case for me
2025-12-04 14:24:06 +0100 <lucabtz> i wouldnt export UnsafeMkBoundedInteger
2025-12-04 14:25:37 +0100 <ski> and (c1) you want to use `fromInteger' (or similar hooks into literal syntax for other things, e.g. overloaded string literals), and so you'd probably want `Read' to be able to parse that, and possibly want `Show' to produce it
2025-12-04 14:27:47 +0100 <ski> also (c2), if you have infix operator declarations for some data constructors, and you want your `Show' to omit unnecessary brackets (when showing in infix form), since iirc GHC for some reason ignores the fixities when `deriving' `Show'
2025-12-04 14:29:25 +0100 <ski> i not too seldom also do (c3) define a data type with record notation for some data constructors, but i don't want `Show' to use the record syntax (because it's verbose, when you're trying to read some larger output), which is what the `deriving' syntax will give you, in this case
2025-12-04 14:30:31 +0100 <ski> (i'd possibly still define `Read' to accept both record notation and plain data constructor with components as arguments version, though)
2025-12-04 14:30:46 +0100 <lucabtz> thank you
2025-12-04 14:31:01 +0100 <lucabtz> yeah the whole point for me is having an interface which supports partial addition, in which the sum of two numbers may not be defined. maybe im just overthinking, its for the grid based problems. i want this abstraction because i can change the grid type by changing the coordinate types, if i put bounded integers when asking for neighbours they maybe be 8 or less (because you may exit the
2025-12-04 14:31:01 +0100 <lucabtz> grid). on the other hand i could have a type which does addition in a modular way and get a toroidal grid. i wanted to write the code once to support both options
2025-12-04 14:31:16 +0100 <lucabtz> *the grid based problems in advent of code
2025-12-04 14:32:12 +0100 <ski> otoh, if you want some custom pretty-printing syntax, i'd suggest not using `Show' (nor `Read') for this, rather defining separate functions (or perhaps using some other type class, possibly one you defined yourself)
2025-12-04 14:32:50 +0100 <ski> aha
2025-12-04 14:33:27 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 14:33:41 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 14:35:28 +0100 <ski> how are you detecting over- / under- flow ?
2025-12-04 14:37:14 +0100trickard_trickard
2025-12-04 14:37:17 +0100 <ski> lucabtz : yep, so either you could have `Show' generate a call to `mkBoundedNatural'. or, if you do the pattern synonym, you could have it generate a call to that
2025-12-04 14:38:00 +0100fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
2025-12-04 14:39:16 +0100fp(~Thunderbi@wireless-86-50-141-176.open.aalto.fi) fp
2025-12-04 14:39:22 +0100 <ski> (oh, and the corresponding operation handling precedences, for `Read', would be `readsPrec', which you'd define in terms of `readParen',`readsPrec',`lex'. for `Show' there's also `showChar')
2025-12-04 14:39:57 +0100 <lucabtz> ski i have a new typeclass PartialAdditive with an operator +?
2025-12-04 14:40:17 +0100 <lucabtz> (:?) :: a -> a -> Maybe a
2025-12-04 14:40:30 +0100 <ski> mhm
2025-12-04 14:40:41 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-12-04 14:42:12 +0100ski. o O ( `(+) :: BoundedNatural m -> BoundedNatural n -> BoundedNatural (m + n)' )
2025-12-04 14:42:27 +0100 <ski> (assuming you use `<' rather than `<=')
2025-12-04 14:43:04 +0100 <ski> (.. not too sure how useful this version would be for you .. just pondering)
2025-12-04 14:43:53 +0100 <lucabtz> no that version isnt what i need
2025-12-04 14:44:05 +0100 <lucabtz> even though i suppose it could have an use somewhere
2025-12-04 14:50:21 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 265 seconds)
2025-12-04 14:51:58 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 14:59:47 +0100Digit(~user@user/digit) (Read error: Connection reset by peer)
2025-12-04 15:02:34 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-04 15:03:15 +0100Ging_(46fea76d80@2001:bc8:1210:2cd8::470)
2025-12-04 15:05:40 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-04 15:06:36 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
2025-12-04 15:08:29 +0100pr1sm(~pr1sm@24.91.163.31)
2025-12-04 15:08:38 +0100pr1sm(~pr1sm@24.91.163.31) (Remote host closed the connection)
2025-12-04 15:10:04 +0100Digit(~user@user/digit) Digit
2025-12-04 15:15:44 +0100mikess(~sam@user/mikess) mikess
2025-12-04 15:22:22 +0100fp(~Thunderbi@wireless-86-50-141-176.open.aalto.fi) (Quit: fp)
2025-12-04 15:22:32 +0100fp1(~Thunderbi@wireless-86-50-141-176.open.aalto.fi) fp
2025-12-04 15:23:55 +0100xff0x(~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f) (Ping timeout: 255 seconds)
2025-12-04 15:24:13 +0100wbooze(~wbooze@2001-4dd4-1daa-0-acf3-bea0-8250-a5a2.ipv6dyn.netcologne.de) (Read error: Connection reset by peer)
2025-12-04 15:24:56 +0100fp1fp
2025-12-04 15:27:41 +0100trickard(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 15:27:54 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 15:28:58 +0100divlamir_(~divlamir@user/divlamir) divlamir
2025-12-04 15:29:09 +0100divlamir(~divlamir@user/divlamir) (Ping timeout: 252 seconds)
2025-12-04 15:29:49 +0100divlamir_divlamir
2025-12-04 15:30:52 +0100wbooze(~wbooze@2001-4dd4-1daa-0-dd66-75b6-3dbd-fc23.ipv6dyn.netcologne.de) Inline
2025-12-04 15:35:07 +0100fp(~Thunderbi@wireless-86-50-141-176.open.aalto.fi) (Remote host closed the connection)
2025-12-04 15:46:54 +0100xff0x(~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f)
2025-12-04 15:52:58 +0100chiselfuse(~chiselfus@user/chiselfuse) chiselfuse
2025-12-04 15:53:57 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 15:54:10 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 15:55:28 +0100spew(~spew@user/spew) spew
2025-12-04 15:58:38 +0100califax(~califax@user/califx) califx
2025-12-04 15:59:15 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-12-04 15:59:33 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-12-04 16:02:16 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-04 16:04:08 +0100Typosit(b41a81e702@2001:bc8:1210:2cd8::494)
2025-12-04 16:05:49 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) marinelli
2025-12-04 16:05:58 +0100ec(~ec@gateway/tor-sasl/ec) ec
2025-12-04 16:14:09 +0100kmein(~weechat@user/kmein) (Quit: ciao kakao)
2025-12-04 16:14:57 +0100kmein(~weechat@user/kmein) kmein
2025-12-04 16:15:55 +0100cstml3(~cstml@user/cstml) (Ping timeout: 240 seconds)
2025-12-04 16:16:32 +0100cstml3(~cstml@user/cstml) cstml
2025-12-04 16:24:08 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-04 16:25:42 +0100mikess(~sam@user/mikess) (Ping timeout: 244 seconds)
2025-12-04 16:31:55 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no)
2025-12-04 16:36:21 +0100fp(~Thunderbi@89-27-10-140.bb.dnainternet.fi) fp
2025-12-04 16:46:38 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-04 16:49:20 +0100fp(~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Remote host closed the connection)
2025-12-04 16:51:42 +0100ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-12-04 16:55:09 +0100Digit(~user@user/digit) (Quit: brb)
2025-12-04 16:56:12 +0100PaulMartensen(15a119e437@2001:bc8:1210:2cd8::3bc)
2025-12-04 16:56:58 +0100Digit(~user@user/digit) Digit
2025-12-04 16:58:58 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds)
2025-12-04 17:00:12 +0100chele(~chele@user/chele) (Remote host closed the connection)
2025-12-04 17:02:27 +0100mikess(~sam@user/mikess) mikess
2025-12-04 17:03:51 +0100spew(~spew@user/spew) (Quit: WeeChat 4.7.2)
2025-12-04 17:05:03 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
2025-12-04 17:08:44 +0100__monty_1(~toonn@user/toonn) toonn
2025-12-04 17:10:21 +0100__monty__(~toonn@user/toonn) (Ping timeout: 252 seconds)
2025-12-04 17:10:40 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-04 17:10:54 +0100trickard_(~trickard@cpe-85-98-47-163.wireline.com.au)
2025-12-04 17:12:02 +0100 <lucabtz> tomsmeding in defense of the inclusive upper bound in haskell [x..y] includes y
2025-12-04 17:12:15 +0100 <lucabtz> anyhow i dropped the idea for now as it was taking me too long
2025-12-04 17:12:29 +0100 <tomsmeding> yeah and this is why I always have to [0 .. n-1] and it's annoying :p
2025-12-04 17:12:45 +0100 <tomsmeding> Rust has 0 ..< n syntax
2025-12-04 17:13:40 +0100 <lucabtz> yeah i agree it is annoying
2025-12-04 17:13:49 +0100 <lucabtz> i got reminded just now so i sent that
2025-12-04 17:20:52 +0100lucabtz(~lucabtz@user/lucabtz) (Remote host closed the connection)
2025-12-04 17:24:05 +0100infinity0(~infinity0@pwned.gg) (Ping timeout: 245 seconds)
2025-12-04 17:32:06 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-04 17:32:38 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-04 17:32:58 +0100 <EvanR> clearly we need special syntax [0 .. n)
2025-12-04 17:33:03 +0100 <EvanR> just kidding
2025-12-04 17:33:38 +0100 <EvanR> I actually hate the implicitly not including the right number
2025-12-04 17:33:46 +0100 <EvanR> in the case of sequence of integers
2025-12-04 17:34:06 +0100 <EvanR> this is where C syntax wins, since it's not implicit
2025-12-04 17:34:06 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-04 17:35:49 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
2025-12-04 17:36:09 +0100 <tomsmeding> EvanR: what about [0 ..< n]?
2025-12-04 17:36:22 +0100 <tomsmeding> (I'm not actually suggesting Haskell get this, we have enough special syntax as is)
2025-12-04 17:37:00 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 244 seconds)
2025-12-04 17:38:02 +0100 <EvanR> it's kind of lucky / good that [0 .. n-1] even works without more parentheses or something
2025-12-04 17:38:12 +0100 <EvanR> so you can just write that
2025-12-04 17:38:32 +0100 <EvanR> tell the next person who complains that IS the special syntax for that xD
2025-12-04 17:40:04 +0100lambda_gibbon(~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
2025-12-04 17:42:37 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 264 seconds)
2025-12-04 17:44:36 +0100infinity0(~infinity0@pwned.gg) infinity0
2025-12-04 17:57:11 +0100euphores(~SASL_euph@user/euphores) euphores
2025-12-04 17:58:18 +0100euphores(~SASL_euph@user/euphores) (Client Quit)
2025-12-04 17:59:35 +0100trickard_trickard
2025-12-04 18:07:38 +0100AlexZenon_2(~alzenon@85.174.183.177)
2025-12-04 18:07:50 +0100AlexZenon(~alzenon@85.174.183.177) (Ping timeout: 245 seconds)
2025-12-04 18:09:57 +0100euphores(~SASL_euph@user/euphores) euphores
2025-12-04 18:10:48 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-12-04 18:11:28 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-12-04 18:12:01 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2025-12-04 18:14:21 +0100gehmehgeh(~user@user/gehmehgeh) gehmehgeh
2025-12-04 18:14:36 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-12-04 18:14:42 +0100X-Scale(~ARM@50.65.114.89.rev.vodafone.pt) (Quit: HydraIRC -> http://www.hydrairc.com <- \o/)
2025-12-04 18:22:35 +0100wickedjargon(~user@207.194.126.4) wickedjargon
2025-12-04 18:25:11 +0100marlino(~marlino@96-8-193-101.block0.gvtc.com)
2025-12-04 18:26:01 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-04 18:26:44 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
2025-12-04 18:34:00 +0100 <__monty_1> I find myself doing `fold . unfoldr` is there a combinator I'm missing that does this? My intuition from foldr->fold suggests unfold but none of those expects a Monoid constraint. Corecursive from recursion-schemes seems similar to Monoid maybe. So then it would be `hylo`?
2025-12-04 18:34:05 +0100__monty_1__monty__
2025-12-04 18:35:47 +0100divlamir_(~divlamir@user/divlamir) divlamir
2025-12-04 18:38:55 +0100divlamir(~divlamir@user/divlamir) (Ping timeout: 240 seconds)
2025-12-04 18:38:56 +0100divlamir_divlamir
2025-12-04 18:46:49 +0100Square2(~Square4@user/square) (Ping timeout: 264 seconds)
2025-12-04 18:47:53 +0100Googulator(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-04 18:48:07 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-12-04 19:00:17 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2025-12-04 19:03:13 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no)
2025-12-04 19:08:01 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-04 19:08:18 +0100wickedjargon(~user@207.194.126.4) (Remote host closed the connection)
2025-12-04 19:09:25 +0100ft(~ft@p508db844.dip0.t-ipconnect.de) ft
2025-12-04 19:18:52 +0100Square2(~Square4@user/square) Square
2025-12-04 19:21:07 +0100 <__monty__> Hmm, `hylo` still requires passing in `fold` and `unfoldr (...)` I guess. It's also a lot slower than just `fold . unfoldr (...)` in my case for some reason.
2025-12-04 19:22:39 +0100deptype(~deptype@2406:b400:3a:9d2f:cc6c:ad35:cfc6:21bb)
2025-12-04 19:30:58 +0100 <int-e> tomsmeding: Rust has the distinction but uses .. (exclusive) and ..= (inclusive). I know a languaage (LPC) that uses ..< but there ranges are inclusive and the < means "index from the end of the array". :-P
2025-12-04 19:31:49 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-12-04 19:31:49 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-12-04 19:31:49 +0100haritz(~hrtz@user/haritz) haritz
2025-12-04 19:33:28 +0100 <haskellbridge> <loonycyborg> Haskell's notation is on the simpler side actually. Even compared to C I'd say.
2025-12-04 19:35:34 +0100annamalai(~annamalai@157.32.218.49) (Ping timeout: 260 seconds)
2025-12-04 19:35:55 +0100annamalai(~annamalai@117.246.122.240) annamalai
2025-12-04 19:37:13 +0100euphores(~SASL_euph@user/euphores) (Ping timeout: 264 seconds)
2025-12-04 19:38:43 +0100 <haskellbridge> <loonycyborg> In particular the "data" declaration, it can both replace C enum and C struct while being simpler conceptually.
2025-12-04 19:39:06 +0100 <haskellbridge> <loonycyborg> unless you're using record syntax, then they're mostly same :P
2025-12-04 19:39:41 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-04 19:41:12 +0100 <haskellbridge> <loonycyborg> as in C
2025-12-04 19:41:39 +0100 <mauke> upto n = [0 .. n-1]
2025-12-04 19:43:54 +0100 <monochrom> [0 .. n-1] is why, for example, length :: ... -> Int instead of Word
2025-12-04 19:45:51 +0100Googulator15(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-04 19:45:56 +0100 <monochrom> If you take the position that length should have an unsigned type, then you must logically take the position that we need some kind of [0..n)
2025-12-04 19:45:56 +0100Googulator(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-04 19:46:10 +0100 <mauke> why?
2025-12-04 19:46:45 +0100 <monochrom> Because [0 .. (n :: Int) - 1] and [0 .. (n :: Integer) - 1] are foot guns.
2025-12-04 19:47:07 +0100fp(~Thunderbi@89-27-10-140.bb.dnainternet.fi) fp
2025-12-04 19:47:07 +0100 <monochrom> Err, [0 .. (n :: Word) - 1] and [0 .. (n :: Natural) - 1] are foot guns.
2025-12-04 19:47:32 +0100 <int-e> monochrom: what is this "Word" you're talking about? https://www.haskell.org/onlinereport/basic.html#sect6.4
2025-12-04 19:47:38 +0100 <haskellbridge> <Zemyla> filter (/= n) [0..n]
2025-12-04 19:47:52 +0100 <monochrom> Word is in Data.Word
2025-12-04 19:48:06 +0100 <int-e> monochrom: I know, and you missed the point :-P
2025-12-04 19:48:34 +0100 <monochrom> I don't get the point.
2025-12-04 19:48:34 +0100 <int-e> I just don't think your explanation why `length` doesn't return Word is supported by history.
2025-12-04 19:49:37 +0100 <monochrom> Oh, I revise history all the time. >:)
2025-12-04 19:50:21 +0100 <mauke> "upto" is the kind of [0..n)
2025-12-04 19:51:29 +0100 <mauke> maybe its implementation needs to be revised: upto n = takeWhile (< n) [0 ..]
2025-12-04 19:51:41 +0100 <Square2> first/second from Bifunctor is great for tuples. I ended up with a tuple-3 and tried to find something similar but the only thing I foudn was https://hackage.haskell.org/package/n-ary-functor-1.0 which felt a bit clumsy
2025-12-04 19:52:11 +0100 <Square2> Anyone know of a better trick?
2025-12-04 19:52:23 +0100 <monochrom> Yeah you want to avoid `n-1`.
2025-12-04 19:55:13 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
2025-12-04 19:55:31 +0100 <monochrom> You can write your own Trifunctor class. If you subclass from Bifunctor, then you just have to add the third method. :)
2025-12-04 19:56:09 +0100tromp(~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Client Quit)
2025-12-04 19:56:19 +0100 <c_wraith> I found myself looking for how to write octal literals for the first time today. after almost 20 years using Haskell.
2025-12-04 19:56:35 +0100 <monochrom> heh
2025-12-04 19:57:36 +0100 <mauke> 0o (pronounced "uh-oh")
2025-12-04 19:57:46 +0100 <haskellbridge> <loonycyborg> Probably it's possible to write a function that will map on the element number in tuple that you specify as type level Natural :P
2025-12-04 19:59:02 +0100 <mauke> do any other programming languages (outside of Perl/Haskell) support 0o notation?
2025-12-04 20:02:03 +0100 <int-e> let's see.. Python 3 does it and forbids leading zeros in decimal literals on top of that
2025-12-04 20:03:29 +0100 <mauke> nice
2025-12-04 20:03:39 +0100 <c_wraith> actually, I guessed it based on the syntax provided in the binary literals extension rather than looking for a reference. at least things are consistent
2025-12-04 20:03:40 +0100 <int-e> Rust too. The aforementioned LPC too (at least in its modern ldmud dialect).
2025-12-04 20:05:13 +0100 <int-e> But not Pike (which is another branch of LPC), so I think the caveat is important.
2025-12-04 20:07:12 +0100ski. o O ( `0o0.4' )
2025-12-04 20:08:15 +0100 <mauke> kind of. perl supports 0o0.4p0
2025-12-04 20:08:21 +0100 <mauke> but the exponent is required
2025-12-04 20:11:47 +0100gehmehgehgmg
2025-12-04 20:15:10 +0100 <tomsmeding> int-e: I could have _sworn_ rust had ..<
2025-12-04 20:16:18 +0100 <tomsmeding> int-e: Swift seems to have ..< with the meaning I had in mind
2025-12-04 20:16:55 +0100 <tomsmeding> got the language wrong, but at least it exists in a common language :p
2025-12-04 20:18:42 +0100 <tomsmeding> mauke: uh, what about C?
2025-12-04 20:19:15 +0100 <tomsmeding> I'd rather expect that all mentioned examples got 0o from C :p
2025-12-04 20:19:57 +0100 <monochrom> But C didn't have the o, you go straight to 0777
2025-12-04 20:20:15 +0100 <tomsmeding> TIL
2025-12-04 20:20:19 +0100 <tomsmeding> or wait what
2025-12-04 20:20:33 +0100 <tomsmeding> 1. you're right
2025-12-04 20:20:38 +0100 <tomsmeding> 2. what is my brain doing
2025-12-04 20:20:51 +0100 <tomsmeding> (I had to pass -std=c99 -pedantic to get gcc to complain about it)
2025-12-04 20:21:00 +0100 <monochrom> Your brain makes sense, therefore you don't understand a poor syntax choice in C. :)
2025-12-04 20:21:05 +0100 <tomsmeding> :)
2025-12-04 20:25:01 +0100 <int-e> . o O ( it's called "revising history", I learned today )
2025-12-04 20:26:25 +0100 <tomsmeding> it seems that now is really the time that I've not used C for a long enough time that I forget basic syntax like this
2025-12-04 20:27:18 +0100AlexZenon_2AlexZenon
2025-12-04 20:27:38 +0100 <tomsmeding> fortunately -- contrary to segfaultfizzbuzz's wishes -- history is being revised regularly :)
2025-12-04 20:27:56 +0100 <ski> rebased ?
2025-12-04 20:28:33 +0100 <monochrom> haha
2025-12-04 20:30:02 +0100xnyhps(~xnyhps@s.xnyhps.nl) (Remote host closed the connection)
2025-12-04 20:30:12 +0100 <EvanR> redacted
2025-12-04 20:30:37 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2025-12-04 20:34:55 +0100Square2(~Square4@user/square) (Ping timeout: 246 seconds)
2025-12-04 20:36:37 +0100dhil(~dhil@5.151.29.139) (Quit: Leaving)
2025-12-04 20:39:49 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds)
2025-12-04 20:40:22 +0100gAy_DragonTypesWithAHammer
2025-12-04 20:41:05 +0100TypesWithAHammergAy_Dragon
2025-12-04 20:49:00 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-04 20:52:41 +0100Pixi(~Pixi@user/pixi) (Quit: Leaving)
2025-12-04 20:52:58 +0100Pixi(~Pixi@user/pixi) Pixi
2025-12-04 20:56:59 +0100peterbecich(~Thunderbi@172.222.148.214) peterbecich
2025-12-04 20:58:44 +0100bggd(~bgg@2a01:e0a:fd5:f510:9b09:80f:2f26:e3ad) (Quit: std::move)
2025-12-04 21:04:00 +0100pavonia(~user@user/siracusa) siracusa
2025-12-04 21:04:51 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-04 21:05:44 +0100Googulator15(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
2025-12-04 21:05:53 +0100Googulator15(~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
2025-12-04 21:09:14 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds)
2025-12-04 21:12:31 +0100lambda_gibbon(~lambda_gi@208.83.175.39)
2025-12-04 21:13:46 +0100peterbecich(~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds)
2025-12-04 21:17:00 +0100marlino(~marlino@96-8-193-101.block0.gvtc.com) (Quit: WeeChat 4.7.2)
2025-12-04 21:22:43 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-12-04 21:23:26 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-12-04 21:24:12 +0100deptype(~deptype@2406:b400:3a:9d2f:cc6c:ad35:cfc6:21bb) (Remote host closed the connection)
2025-12-04 21:47:25 +0100lambda_gibbon(~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
2025-12-04 21:47:54 +0100michalz(~michalz@185.246.207.203) (Remote host closed the connection)