Home liberachat/#haskell: Logs Calendar

Logs on 2025-12-04 (liberachat/#haskell)

00:01:14 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
00:08:03 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
00:09:47 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:14:35 X-Scale joins (~ARM@50.65.114.89.rev.vodafone.pt)
00:14:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
00:25:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:26:09 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
00:30:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
00:41:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:41:43 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
00:44:12 peterbecich joins (~Thunderbi@172.222.148.214)
00:46:07 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
00:46:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
00:49:20 × xff0x quits (~xff0x@2405:6580:b080:900:9a8d:d213:9a6f:7468) (Ping timeout: 244 seconds)
00:50:08 <haskellbridge> <Zemyla> I wish GHC would turn compile-time lists of primitive types into operations on an Addr# defined at compile time.
00:50:44 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 265 seconds)
00:51:29 <haskellbridge> <Zemyla> Like, [1, 3, 5, 8, 14] :: [Int32] would become unpackInt32List# 5# "[something]"#.
00:51:45 × sam113101 quits (~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer)
00:53:09 <geekosaur> I can't see that being any faster, and possibly slower if it needs to box the contents individually
00:54:01 sam113101 joins (~sam@modemcable200.189-202-24.mc.videotron.ca)
00:57:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:58:28 <EvanR> the question becomes how unpackInt32List# primitive is implemented
00:58:57 <EvanR> is it even different from normal
00:59:59 <EvanR> also, a string?
01:00:48 × jle` quits (~jle`@2603:8001:3b00:11:cbef:e190:cb2:e0d) (Ping timeout: 244 seconds)
01:02:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
01:02:46 × peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 244 seconds)
01:02:50 jle` joins (~jle`@2603:8001:3b00:11:ed74:b35d:c320:7e16)
01:05:10 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
01:05:50 <haskellbridge> <Zemyla> If it's not faster, then why is it used that way for lists of Char?
01:09:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:09:37 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 246 seconds)
01:11:08 ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com)
01:11:54 <EvanR> seems like they would coerce to the same thing
01:13:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
01:17:20 × firesquidwao quits (~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 244 seconds)
01:18:13 tuxpaint joins (~a@2600:3c06::f03c:93ff:fea6:ef0e)
01:18:36 omidmash9 joins (~omidmash@user/omidmash)
01:20:51 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds)
01:20:51 omidmash9 is now known as omidmash
01:24:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:28:54 <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).
01:29:48 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
01:29:49 × Tuplanolla quits (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.)
01:35:18 × acidjnk quits (~acidjnk@p200300d6e71719231986af8ebf40e0fc.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
01:36:31 × X-Scale quits (~ARM@50.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
01:36:40 inline__ joins (~wbooze@cgn-195-14-219-122.nc.de)
01:39:43 × wbooze quits (~wbooze@2001-4dd7-9813-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) (Ping timeout: 250 seconds)
01:40:37 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:40:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:45:32 × ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...)
01:46:38 X-Scale joins (~ARM@50.65.114.89.rev.vodafone.pt)
01:47:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
01:48:56 × inline__ quits (~wbooze@cgn-195-14-219-122.nc.de) (Ping timeout: 240 seconds)
01:54:46 × arahael quits (~wetfoot@user/arahael) (Ping timeout: 256 seconds)
01:55:39 × trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Remote host closed the connection)
01:58:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:03:35 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
02:03:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
02:08:25 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
02:12:42 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 252 seconds)
02:14:27 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:18:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
02:29:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:35:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
02:38:39 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 250 seconds)
02:40:27 vanishingideal joins (~vanishing@user/vanishingideal)
02:45:29 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:46:25 trickard_ is now known as trickard
02:50:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
02:56:22 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb)
03:01:14 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:9151:2ca2:ed0a:49fb) (Ping timeout: 265 seconds)
03:01:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:06:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
03:09:00 × trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
03:09:13 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
03:13:12 × tuxpaint quits (~a@2600:3c06::f03c:93ff:fea6:ef0e) (Ping timeout: 252 seconds)
03:15:16 tuxpaint joins (~a@2600:3c06::f03c:93ff:fea6:ef0e)
03:17:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:20:54 × ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
03:22:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
03:26:21 marlino joins (~marlino@96-8-193-98.block0.gvtc.com)
03:28:13 × td_ quits (~td@i5387093E.versanet.de) (Ping timeout: 246 seconds)
03:30:04 td_ joins (~td@i5387090C.versanet.de)
03:32:52 × annamalai quits (~annamalai@157.32.222.111) (Read error: Connection reset by peer)
03:32:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:33:13 annamalai joins (~annamalai@157.32.222.111)
03:37:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
03:37:51 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
03:42:29 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
03:43:54 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
03:44:52 spew joins (~spew@user/spew)
03:48:39 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:48:54 × spew quits (~spew@user/spew) (Client Quit)
03:49:51 × omidmash quits (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
03:53:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
03:54:16 omidmash joins (~omidmash@user/omidmash)
04:04:27 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:09:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
04:11:02 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
04:12:59 trickard_ is now known as trickard
04:19:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:21:35 weary-traveler joins (~user@user/user363627)
04:22:01 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
04:25:05 divlamir_ joins (~divlamir@user/divlamir)
04:25:31 × weary-traveler quits (~user@user/user363627) (Client Quit)
04:25:47 weary-traveler joins (~user@user/user363627)
04:26:19 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds)
04:26:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
04:27:22 × divlamir quits (~divlamir@user/divlamir) (Ping timeout: 244 seconds)
04:27:23 divlamir_ is now known as divlamir
04:36:32 × foul_owl quits (~kerry@94.156.149.97) (Ping timeout: 240 seconds)
04:37:54 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:39:04 peterbecich joins (~Thunderbi@172.222.148.214)
04:42:27 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
04:44:15 × pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 240 seconds)
04:47:14 × mehbark quits (~mehbark@user/mehbark) (Quit: insert leave message here)
04:47:23 mehbark joins (~mehbark@joey.luug.ece.vt.edu)
04:47:44 × mehbark quits (~mehbark@joey.luug.ece.vt.edu) (Changing host)
04:47:44 mehbark joins (~mehbark@user/mehbark)
04:48:40 × machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 245 seconds)
04:49:51 marlino parts (~marlino@96-8-193-98.block0.gvtc.com) (WeeChat 4.7.2)
04:50:26 foul_owl joins (~kerry@94.156.149.97)
04:53:40 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:58:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:09:28 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:11:25 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
05:11:39 weary-traveler joins (~user@user/user363627)
05:14:12 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
05:18:10 Guest35 joins (~Guest35@2607:fa49:1940:8200:c958:535b:5462:796d)
05:20:01 × Guest35 quits (~Guest35@2607:fa49:1940:8200:c958:535b:5462:796d) (Write error: Broken pipe)
05:20:07 pabs3 joins (~pabs3@user/pabs3)
05:20:32 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
05:22:37 weary-traveler joins (~user@user/user363627)
05:23:20 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
05:24:13 sp1ff joins (~user@2601:1c2:4c00:6820::e122)
05:25:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:27:55 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 244 seconds)
05:29:53 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
05:30:44 <iqubic> Hmm... cabal repl is doing weird things for me.
05:35:05 <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
05:35:51 <iqubic> All the Day* files have their own `part1 :: String -> Int` and `part2 :: String -> Int` functions.
05:36:26 <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`
05:37:16 <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.
05:37:21 <iqubic> What the hell?!?!?
05:41:03 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:41:19 <iqubic> Here's my cabal repl output: https://dpaste.alwaysdata.org/3r1Wpc4o
05:43:01 michalz joins (~michalz@185.246.207.203)
05:45:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
05:47:38 <koala_man> wild
05:55:14 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
05:56:15 × hdggxin quits (~hdggxin@223.181.46.243) (Ping timeout: 250 seconds)
05:56:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:57:32 <iqubic> Why is cabal repl / GHCi doing weird things here?
05:59:35 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
06:00:19 Square joins (~Square@user/square)
06:01:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
06:03:00 takuan joins (~takuan@d8D86B9E9.access.telenet.be)
06:04:13 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 264 seconds)
06:07:06 hdggxin joins (~hdggxin@2401:4900:88a9:6ec5:fd6a:959:46fd:f2a3)
06:10:32 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
06:12:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:12:45 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
06:14:29 dfg joins (~dfg@user/dfg)
06:14:36 weary-traveler joins (~user@user/user363627)
06:14:55 × dysfigured quits (~dfg@50.116.28.89) (Ping timeout: 240 seconds)
06:17:16 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
06:28:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:33:04 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
06:33:05 Enrico63 joins (~Enrico63@host-212-171-79-170.pool212171.interbusiness.it)
06:35:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
06:39:41 <jreicher> sprout: are there other languages like Egel? (untyped, pure functional)
06:40:15 karenw joins (~karenw@user/karenw)
06:41:45 × Enrico63 quits (~Enrico63@host-212-171-79-170.pool212171.interbusiness.it) (Quit: Client closed)
06:45:52 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
06:46:29 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:48:31 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
06:51:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:51:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:52:39 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
06:53:13 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
06:55:32 × jreicher quits (~user@user/jreicher) (Quit: In transit)
06:56:32 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
06:58:29 × mikess quits (~sam@user/mikess) (Ping timeout: 260 seconds)
06:59:11 arahael joins (~wetfoot@user/arahael)
07:00:57 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
07:01:10 × hdggxin quits (~hdggxin@2401:4900:88a9:6ec5:fd6a:959:46fd:f2a3) (Ping timeout: 245 seconds)
07:04:17 hdggxin joins (~hdggxin@2401:4900:88a9:bff0:be1a:791c:4871:3d3b)
07:05:23 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
07:07:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:10:09 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 265 seconds)
07:12:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:23:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:25:36 × ft quits (~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving)
07:25:48 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
07:26:29 Square2 joins (~Square4@user/square)
07:28:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
07:30:31 × Square quits (~Square@user/square) (Ping timeout: 240 seconds)
07:37:04 × peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds)
07:39:07 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:39:40 × divlamir quits (~divlamir@user/divlamir) (Ping timeout: 244 seconds)
07:40:16 divlamir joins (~divlamir@user/divlamir)
07:41:20 <iqubic> Anyone know why cabal repl is being weird for me?
07:41:42 lucabtz joins (~lucabtz@user/lucabtz)
07:44:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
07:50:28 tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
07:52:00 <arahael> iqubic: Nobody is going to know that without any context.
07:52:21 <iqubic> What kind of context will I need to provide?
07:52:32 <iqubic> I'm using GHC 9.12.3
07:53:23 <iqubic> I'm also running NixOS, but I'm not sure that's the root cause here.
07:53:33 <arahael> Generally a good template is "I have this... I expected to see this... But got this..."
07:54:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:00:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
08:01:36 <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
08:01:36 <iqubic> actually ever loaded Day01 in this repl.
08:02:00 <iqubic> https://gist.github.com/IQubic/ae3f1e0c3062ffd0a65035771dffdc90
08:02:50 × mehbark quits (~mehbark@user/mehbark) (Quit: insert leave message here)
08:03:49 mehbark joins (~mehbark@joey.luug.ece.vt.edu)
08:04:01 × mehbark quits (~mehbark@joey.luug.ece.vt.edu) (Changing host)
08:04:01 mehbark joins (~mehbark@user/mehbark)
08:06:33 <iqubic> Is the issue using a * in ":m *Day04"?
08:09:27 <iqubic> If I use ":m Day04", without the *, then run ":r", it seems to load both Day01 and Day04 for some reason.
08:10:36 <iqubic> https://dpaste.alwaysdata.org/y9NWyXCq
08:10:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:10:48 <iqubic> Why is Day01 added automatically??!!?
08:17:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
08:20:34 jreicher joins (~user@user/jreicher)
08:24:26 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:27:48 × annamalai quits (~annamalai@157.32.222.111) (Ping timeout: 252 seconds)
08:28:16 <sprout> jreicher: yes, there are other untyped functional languages. many even, it's a favorite for plt people to implement
08:28:38 <sprout> jreicher: most notorious is lisp of course
08:28:56 <sprout> well, you know that one I guess
08:29:22 <sprout> wasn't there some package manager language lazy, untyped, functional?
08:30:23 <sprout> nix
08:30:45 edm is now known as edmerry
08:31:07 <sprout> https://nix.dev/tutorials/nix-language
08:31:17 <haskellbridge> <iqubic (she/her)> Yeah. Nix
08:31:18 <haskellbridge> <iqubic (she/her)> Nix is good.
08:31:37 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
08:33:08 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
08:37:42 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 252 seconds)
08:37:55 chele joins (~chele@user/chele)
08:38:24 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
08:41:49 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 246 seconds)
08:46:55 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds)
08:47:06 kuribas joins (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf)
08:49:54 × iqubic quits (~sophia@2601:602:9203:1660:661f:14db:875e:5d74) (Remote host closed the connection)
08:54:19 × orizuru quits (~orizuru@user/orizuru) (Quit: The Lounge - https://thelounge.chat)
08:54:46 × weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!)
08:54:53 user363627 joins (~user@user/user363627)
08:55:35 × kuribas quits (~user@2a02:1808:51:4205:657b:77d9:3519:9aaf) (Remote host closed the connection)
08:55:48 kuribas joins (~user@2a02:1808:51:4205:f3c0:d777:6713:bee2)
08:55:59 × trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
08:56:13 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
08:56:42 orizuru joins (~orizuru@178-79-171-63.ip.linodeusercontent.com)
08:57:55 × orizuru quits (~orizuru@178-79-171-63.ip.linodeusercontent.com) (Changing host)
08:57:55 orizuru joins (~orizuru@user/orizuru)
08:59:32 iqubic joins (~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b)
09:03:15 <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.
09:06:26 merijn joins (~merijn@77.242.116.146)
09:07:02 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
09:07:23 <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
09:07:44 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
09:08:08 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection)
09:09:49 <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.
09:10:47 <jreicher> The only reason Lisp feels functional is an almost-coincidental side effect of "everything is data" is that functions become first class.
09:13:47 kuribas parts (~user@2a02:1808:51:4205:f3c0:d777:6713:bee2) (ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.3))
09:15:19 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 264 seconds)
09:16:04 <merijn> Also, Haskell admits mutable references too :p
09:16:25 <merijn> They're just more principled (or making your jump through more hoops to use the unprincipled ones)
09:16:59 <merijn> jackdk: Ocaml is clearly functional, just not pure
09:23:28 × tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:27:06 <jreicher> sprout: In case it's worth saying, I meant practical untyped functional languages; not toy languages.
09:28:24 <sprout> well, nix then
09:29:02 <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.
09:29:05 <sprout> although I don't know what you consider *practical*
09:29:19 <sprout> mwa, pretty shitty interpreter
09:29:25 <sprout> slow and buggy
09:29:28 arandombit joins (~arandombi@user/arandombit)
09:29:37 <sprout> well, maybe not that buggy. but slow
09:29:38 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
09:29:42 <sprout> so not practical
09:29:45 <sprout> cannot recommend
09:29:55 <jreicher> As a rough and ready definition, "practical" is "can at least do IO with files, but should approach an FFI"
09:30:33 <jreicher> I consider anything limited to stdin and sdtout to be toy. Doesn't mean it's not theoretically significant though, of course.
09:31:03 <sprout> well, it has most IO
09:31:15 <jreicher> Yeah, that's what stood out to me.
09:31:37 <sprout> but it's an esolang in that it's an experiment with an operational model
09:31:40 <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.
09:31:44 <lambdabot> <hint>:1:67: error: parse error on input `,'
09:32:15 <sprout> succesful experiment, mostly a failed too slow language though
09:32:26 <sprout> it's interesting to people doing plt
09:32:57 <sprout> like 'hey, here's a different manner of implementing a term rewriter'
09:32:58 <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.
09:33:21 <sprout> haskell must have a stack of redexes though
09:33:35 <jreicher> It does. But like I said, that's an optimisation IMO.
09:34:57 <sprout> sure. I cannot even state it's a very bright idea. just something silly I wanted to show works
09:35:04 dhil joins (~dhil@5.151.29.139)
09:35:15 <sprout> and then a decade later I am still stuck with an interpreter :/
09:35:19 <sprout> ah well
09:36:34 <sprout> it's interesting since it simplifies normal rather elaborate machinery for evaluation like a SECD or CAM machine
09:37:02 <sprout> theoretically interesting
09:37:13 <sprout> practically, not so much
09:37:19 <sprout> well, that's what I feel
09:41:54 acidjnk joins (~acidjnk@p200300d6e71719824d363649e1e7df87.dip0.t-ipconnect.de)
09:42:01 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
09:42:07 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
09:42:35 <jreicher> Is Egel yours?
09:42:39 <sprout> yah
09:43:02 <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.
09:43:15 <sprout> oh. thanks!
09:43:37 <jreicher> That's why I was asking if you knew any others. It's rare.
09:43:37 × img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
09:43:43 <jreicher> (I think)
09:44:04 <sprout> still. cannot recommend..
09:44:11 <sprout> it's an esolang at heart
09:44:26 <sprout> maybe I'll find use for it somewhere sometime
09:44:39 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
09:44:51 img joins (~img@user/img)
09:49:24 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
09:52:34 × robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
09:52:34 xff0x joins (~xff0x@om126158246192.30.openmobile.ne.jp)
09:54:07 trickard_ is now known as trickard
09:54:23 × xff0x quits (~xff0x@om126158246192.30.openmobile.ne.jp) (Read error: Connection reset by peer)
09:54:56 merijn joins (~merijn@77.242.116.146)
09:59:24 ljdarj joins (~Thunderbi@user/ljdarj)
09:59:45 xff0x joins (~xff0x@fs98a57788.tkyc008.ap.nuro.jp)
10:01:28 annamalai joins (~annamalai@157.32.217.175)
10:03:38 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
10:04:08 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
10:04:28 inline__ joins (~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de)
10:05:10 inline__ is now known as wbooze
10:10:06 fp joins (~Thunderbi@130.233.70.22)
10:20:27 × Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
10:20:38 Googulator joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
10:26:07 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 246 seconds)
10:29:54 merijn joins (~merijn@77.242.116.146)
10:29:55 Jackneill_ joins (~Jackneill@94-21-15-191.pool.digikabel.hu)
10:32:34 × Jackneill quits (~Jackneill@178-164-177-218.pool.digikabel.hu) (Ping timeout: 260 seconds)
10:33:05 divlamir_ joins (~divlamir@user/divlamir)
10:34:32 × fp quits (~Thunderbi@130.233.70.22) (Remote host closed the connection)
10:34:51 fp joins (~Thunderbi@130.233.70.22)
10:35:48 × divlamir quits (~divlamir@user/divlamir) (Ping timeout: 256 seconds)
10:35:49 divlamir_ is now known as divlamir
10:36:49 tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
10:44:51 inline__ joins (~wbooze@cgn-195-14-220-195.nc.de)
10:46:55 × wbooze quits (~wbooze@2001-4dd4-1daa-0-5961-9b55-d1ca-8eee.ipv6dyn.netcologne.de) (Killed (uranium.libera.chat (Nickname regained by services)))
10:46:55 inline__ is now known as wbooze
10:47:11 × Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (*.net *.split)
10:48:23 × marinelli quits (~weechat@gateway/tor-sasl/marinelli) (*.net *.split)
10:48:23 × chexum_ quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split)
10:48:23 × califax quits (~califax@user/califx) (*.net *.split)
10:48:23 × gmg quits (~user@user/gehmehgeh) (*.net *.split)
10:48:23 × ec quits (~ec@gateway/tor-sasl/ec) (*.net *.split)
10:48:23 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (*.net *.split)
11:04:05 poscat0x04 joins (~poscat@user/poscat)
11:04:13 × fp quits (~Thunderbi@130.233.70.22) (Ping timeout: 264 seconds)
11:05:06 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 252 seconds)
11:05:29 chromoblob joins (~chromoblo@user/chromob1ot1c)
11:05:32 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
11:05:40 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds)
11:05:45 × poscat quits (~poscat@user/poscat) (Ping timeout: 245 seconds)
11:08:50 × Square2 quits (~Square4@user/square) (Quit: Leaving)
11:09:53 × chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 260 seconds)
11:16:35 × DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Ping timeout: 245 seconds)
11:17:25 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 264 seconds)
11:23:23 fp joins (~Thunderbi@130.233.70.22)
11:26:15 chromoblob joins (~chromoblo@user/chromob1ot1c)
11:28:49 × xff0x quits (~xff0x@fs98a57788.tkyc008.ap.nuro.jp) (Ping timeout: 264 seconds)
11:38:59 DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK)
11:39:51 × annamalai quits (~annamalai@157.32.217.175) (Ping timeout: 265 seconds)
11:57:40 × karenw quits (~karenw@user/karenw) (Ping timeout: 255 seconds)
11:59:30 × trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
11:59:44 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
12:00:23 × wbooze quits (~wbooze@cgn-195-14-220-195.nc.de) (Quit: Leaving)
12:02:58 __monty__ joins (~toonn@user/toonn)
12:05:22 srazkvt joins (~sarah@user/srazkvt)
12:12:30 <lucabtz> https://paste.tomsmeding.com/blBvVp0I does this make any sense to you?
12:12:41 ljdarj joins (~Thunderbi@user/ljdarj)
12:19:20 wbooze joins (~wbooze@2001-4dd4-1daa-0-acf3-bea0-8250-a5a2.ipv6dyn.netcologne.de)
12:21:10 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 245 seconds)
12:24:15 × trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
12:24:29 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
12:26:25 <tomsmeding> yes
12:26:32 <tomsmeding> names are a little long, but that's personal :p
12:26:57 <tomsmeding> lucabtz: with the <= bound it's impossible to hvae an "impossible" BoundedNatural
12:27:06 <tomsmeding> so there is kind of one natural case that you cannot express
12:27:18 merijn joins (~merijn@77.242.116.146)
12:27:29 <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"
12:27:39 <tomsmeding> consider changing the <= to <
12:29:00 × PaulMartensen quits (15a119e437@2001:bc8:1210:2cd8::3bc) (Remote host closed the connection)
12:29:00 × Ging_ quits (46fea76d80@2001:bc8:1210:2cd8::470) (Remote host closed the connection)
12:29:00 × Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Remote host closed the connection)
12:29:44 × X-Scale quits (~ARM@50.65.114.89.rev.vodafone.pt) (Ping timeout: 240 seconds)
12:30:20 PaulMartensen joins (2c15493d69@2001:bc8:1210:2cd8::3bc)
12:30:20 Ging_ joins (46fea76d80@2001:bc8:1210:2cd8::470)
12:30:21 Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494)
12:34:41 × Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Ping timeout: 244 seconds)
12:35:01 × PaulMartensen quits (2c15493d69@2001:bc8:1210:2cd8::3bc) (Ping timeout: 255 seconds)
12:35:02 ljdarj1 joins (~Thunderbi@user/ljdarj)
12:36:32 × hdggxin quits (~hdggxin@2401:4900:88a9:bff0:be1a:791c:4871:3d3b) (Remote host closed the connection)
12:36:35 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
12:36:35 × Ging_ quits (46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 245 seconds)
12:36:35 ljdarj1 is now known as ljdarj
12:38:21 <lucabtz> yeah i might change to that
12:39:35 <lucabtz> im confused on how to go from value level to type level though, if it even is possible
12:39:56 × img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in)
12:41:09 xff0x joins (~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f)
12:41:11 img joins (~img@user/img)
12:46:18 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
12:47:50 divya joins (divya@140.238.251.170)
12:53:20 Ging_ joins (46fea76d80@2001:bc8:1210:2cd8::470)
12:54:05 Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494)
12:55:20 PaulMartensen joins (15a119e437@2001:bc8:1210:2cd8::3bc)
12:56:09 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds)
12:56:38 × srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!)
12:58:59 <tomsmeding> lucabtz: what do you mean with that?
12:59:07 × Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Ping timeout: 265 seconds)
12:59:07 × Ging_ quits (46fea76d80@2001:bc8:1210:2cd8::470) (Ping timeout: 265 seconds)
12:59:45 X-Scale joins (~ARM@50.65.114.89.rev.vodafone.pt)
13:03:03 annamalai joins (~annamalai@157.32.218.49)
13:03:08 × PaulMartensen quits (15a119e437@2001:bc8:1210:2cd8::3bc) (Ping timeout: 256 seconds)
13:04:12 Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494)
13:05:24 <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
13:06:16 × Typosit quits (b41a81e702@2001:bc8:1210:2cd8::494) (Write error: error:80000068:system library::Connection reset by peer)
13:06:45 <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
13:06:48 <ski> (also i'd implement `fromInteger', or else i'd say that `Show' instance is incorrect)
13:07:27 <ski> mm, yea, that would be possible
13:07:50 <lucabtz> i will look better into it later
13:09:20 Square2 joins (~Square4@user/square)
13:09:27 <lucabtz> i think mkBoundedNatural should have a different signature taking the bound into account too. it should be done with SNat
13:09:29 <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')
13:10:05 <lucabtz> yeah i havent studied in detail Read/Show i find them confusing
13:10:17 <lucabtz> i just needed a way to print the stuff to the terminal
13:10:23 <tomsmeding> lucabtz: while that is possible, bounds on the type level like that tend to make for very cumbersome interfaces
13:10:55 <tomsmeding> https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-TypeNats.html#t:-60--61-
13:12:08 × trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
13:12:22 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
13:12:50 × fp quits (~Thunderbi@130.233.70.22) (Quit: fp)
13:13:05 <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
13:13:12 fp joins (~Thunderbi@2001:708:20:1406::1370)
13:13:22 <lucabtz> and i need the bound as part of the type
13:13:34 <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
13:13:47 <tomsmeding> (agreed with ski)
13:14:09 <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
13:14:52 <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
13:16:02 <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',
13:16:08 <ski> which is confusing and not that useful
13:19:28 <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
13:20:48 <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)
13:21:16 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:22:32 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds)
13:23:12 <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
13:23:46 <tomsmeding> c0?
13:23:47 <ski> > listArray (-3,3) [(i,i^2) | i <- range (-3,3)]
13:23:51 <lambdabot> array (-3,3) [(-3,(-3,9)),(-2,(-2,4)),(-1,(-1,1)),(0,(0,0)),(1,(1,1)),(2,(2,...
13:23:54 <lucabtz> it seems like this would be the case for me
13:24:06 <lucabtz> i wouldnt export UnsafeMkBoundedInteger
13:25:37 <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
13:27:47 <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'
13:29:25 <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
13:30:31 <ski> (i'd possibly still define `Read' to accept both record notation and plain data constructor with components as arguments version, though)
13:30:46 <lucabtz> thank you
13:31:01 <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
13:31:01 <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
13:31:16 <lucabtz> *the grid based problems in advent of code
13:32:12 <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)
13:32:50 <ski> aha
13:33:27 × trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
13:33:41 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
13:35:28 <ski> how are you detecting over- / under- flow ?
13:37:14 trickard_ is now known as trickard
13:37:17 <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
13:38:00 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
13:39:16 fp joins (~Thunderbi@wireless-86-50-141-176.open.aalto.fi)
13:39:22 <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')
13:39:57 <lucabtz> ski i have a new typeclass PartialAdditive with an operator +?
13:40:17 <lucabtz> (:?) :: a -> a -> Maybe a
13:40:30 <ski> mhm
13:40:41 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
13:42:12 ski . o O ( `(+) :: BoundedNatural m -> BoundedNatural n -> BoundedNatural (m + n)' )
13:42:27 <ski> (assuming you use `<' rather than `<=')
13:43:04 <ski> (.. not too sure how useful this version would be for you .. just pondering)
13:43:53 <lucabtz> no that version isnt what i need
13:44:05 <lucabtz> even though i suppose it could have an use somewhere
13:50:21 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 265 seconds)
13:51:58 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
13:59:47 × Digit quits (~user@user/digit) (Read error: Connection reset by peer)
14:02:34 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
14:03:15 Ging_ joins (46fea76d80@2001:bc8:1210:2cd8::470)
14:05:40 × tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:06:36 tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
14:08:29 pr1sm joins (~pr1sm@24.91.163.31)
14:08:38 × pr1sm quits (~pr1sm@24.91.163.31) (Remote host closed the connection)
14:10:04 Digit joins (~user@user/digit)
14:15:44 mikess joins (~sam@user/mikess)
14:22:22 × fp quits (~Thunderbi@wireless-86-50-141-176.open.aalto.fi) (Quit: fp)
14:22:32 fp1 joins (~Thunderbi@wireless-86-50-141-176.open.aalto.fi)
14:23:55 × xff0x quits (~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f) (Ping timeout: 255 seconds)
14:24:13 × wbooze quits (~wbooze@2001-4dd4-1daa-0-acf3-bea0-8250-a5a2.ipv6dyn.netcologne.de) (Read error: Connection reset by peer)
14:24:56 fp1 is now known as fp
14:27:41 × trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
14:27:54 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
14:28:58 divlamir_ joins (~divlamir@user/divlamir)
14:29:09 × divlamir quits (~divlamir@user/divlamir) (Ping timeout: 252 seconds)
14:29:49 divlamir_ is now known as divlamir
14:30:52 wbooze joins (~wbooze@2001-4dd4-1daa-0-dd66-75b6-3dbd-fc23.ipv6dyn.netcologne.de)
14:35:07 × fp quits (~Thunderbi@wireless-86-50-141-176.open.aalto.fi) (Remote host closed the connection)
14:46:54 xff0x joins (~xff0x@2405:6580:b080:900:d454:e7ea:27f9:454f)
14:52:58 chiselfuse joins (~chiselfus@user/chiselfuse)
14:53:57 × trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
14:54:10 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
14:55:28 spew joins (~spew@user/spew)
14:58:38 califax joins (~califax@user/califx)
14:59:15 gmg joins (~user@user/gehmehgeh)
14:59:33 ChaiTRex joins (~ChaiTRex@user/chaitrex)
15:02:16 Sgeo joins (~Sgeo@user/sgeo)
15:04:08 Typosit joins (b41a81e702@2001:bc8:1210:2cd8::494)
15:05:49 marinelli joins (~weechat@gateway/tor-sasl/marinelli)
15:05:58 ec joins (~ec@gateway/tor-sasl/ec)
15:14:09 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
15:14:57 kmein joins (~weechat@user/kmein)
15:15:55 × cstml3 quits (~cstml@user/cstml) (Ping timeout: 240 seconds)
15:16:32 cstml3 joins (~cstml@user/cstml)
15:24:08 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
15:25:42 × mikess quits (~sam@user/mikess) (Ping timeout: 244 seconds)
15:31:55 sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no)
15:36:21 fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi)
15:46:38 × tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:49:20 × fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Remote host closed the connection)
15:51:42 ttybitnik joins (~ttybitnik@user/wolper)
15:55:09 × Digit quits (~user@user/digit) (Quit: brb)
15:56:12 PaulMartensen joins (15a119e437@2001:bc8:1210:2cd8::3bc)
15:56:58 Digit joins (~user@user/digit)
15:58:58 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 246 seconds)
16:00:12 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:02:27 mikess joins (~sam@user/mikess)
16:03:51 × spew quits (~spew@user/spew) (Quit: WeeChat 4.7.2)
16:05:03 tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
16:08:44 __monty_1 joins (~toonn@user/toonn)
16:10:21 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds)
16:10:40 × trickard_ quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
16:10:54 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
16:12:02 <lucabtz> tomsmeding in defense of the inclusive upper bound in haskell [x..y] includes y
16:12:15 <lucabtz> anyhow i dropped the idea for now as it was taking me too long
16:12:29 <tomsmeding> yeah and this is why I always have to [0 .. n-1] and it's annoying :p
16:12:45 <tomsmeding> Rust has 0 ..< n syntax
16:13:40 <lucabtz> yeah i agree it is annoying
16:13:49 <lucabtz> i got reminded just now so i sent that
16:20:52 × lucabtz quits (~lucabtz@user/lucabtz) (Remote host closed the connection)
16:24:05 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 245 seconds)
16:32:06 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
16:32:38 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
16:32:58 <EvanR> clearly we need special syntax [0 .. n)
16:33:03 <EvanR> just kidding
16:33:38 <EvanR> I actually hate the implicitly not including the right number
16:33:46 <EvanR> in the case of sequence of integers
16:34:06 <EvanR> this is where C syntax wins, since it's not implicit
16:34:06 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
16:35:49 lambda_gibbon joins (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287)
16:36:09 <tomsmeding> EvanR: what about [0 ..< n]?
16:36:22 <tomsmeding> (I'm not actually suggesting Haskell get this, we have enough special syntax as is)
16:37:00 × humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 244 seconds)
16:38:02 <EvanR> it's kind of lucky / good that [0 .. n-1] even works without more parentheses or something
16:38:12 <EvanR> so you can just write that
16:38:32 <EvanR> tell the next person who complains that IS the special syntax for that xD
16:40:04 × lambda_gibbon quits (~lambda_gi@2603:7080:ee00:37d8:313d:1898:c3f8:5287) (Ping timeout: 260 seconds)
16:42:37 × sindu quits (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 264 seconds)
16:44:36 infinity0 joins (~infinity0@pwned.gg)
16:57:11 euphores joins (~SASL_euph@user/euphores)
16:58:18 × euphores quits (~SASL_euph@user/euphores) (Client Quit)
16:59:35 trickard_ is now known as trickard
17:07:38 AlexZenon_2 joins (~alzenon@85.174.183.177)
17:07:50 × AlexZenon quits (~alzenon@85.174.183.177) (Ping timeout: 245 seconds)
17:09:57 euphores joins (~SASL_euph@user/euphores)
17:10:48 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:11:28 gmg joins (~user@user/gehmehgeh)
17:12:01 × merijn quits (~merijn@77.242.116.146) (Ping timeout: 264 seconds)
17:14:21 gehmehgeh joins (~user@user/gehmehgeh)
17:14:36 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:14:42 × X-Scale quits (~ARM@50.65.114.89.rev.vodafone.pt) (Quit: HydraIRC -> http://www.hydrairc.com <- \o/)
17:22:35 wickedjargon joins (~user@207.194.126.4)
17:25:11 marlino joins (~marlino@96-8-193-101.block0.gvtc.com)
17:26:01 machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net)
17:26:44 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
17:34:00 <__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`?
17:34:05 __monty_1 is now known as __monty__
17:35:47 divlamir_ joins (~divlamir@user/divlamir)
17:38:55 × divlamir quits (~divlamir@user/divlamir) (Ping timeout: 240 seconds)
17:38:56 divlamir_ is now known as divlamir
17:46:49 × Square2 quits (~Square4@user/square) (Ping timeout: 264 seconds)
17:47:53 Googulator joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
17:48:07 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
18:00:17 target_i joins (~target_i@user/target-i/x-6023099)
18:03:13 sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no)
18:08:01 lambda_gibbon joins (~lambda_gi@208.83.175.39)
18:08:18 × wickedjargon quits (~user@207.194.126.4) (Remote host closed the connection)
18:09:25 ft joins (~ft@p508db844.dip0.t-ipconnect.de)
18:18:52 Square2 joins (~Square4@user/square)
18:21:07 <__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.
18:22:39 deptype joins (~deptype@2406:b400:3a:9d2f:cc6c:ad35:cfc6:21bb)
18:30:58 <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
18:31:49 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
18:31:49 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
18:31:49 haritz joins (~hrtz@user/haritz)
18:33:28 <haskellbridge> <loonycyborg> Haskell's notation is on the simpler side actually. Even compared to C I'd say.
18:35:34 × annamalai quits (~annamalai@157.32.218.49) (Ping timeout: 260 seconds)
18:35:55 annamalai joins (~annamalai@117.246.122.240)
18:37:13 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 264 seconds)
18:38:43 <haskellbridge> <loonycyborg> In particular the "data" declaration, it can both replace C enum and C struct while being simpler conceptually.
18:39:06 <haskellbridge> <loonycyborg> unless you're using record syntax, then they're mostly same :P
18:39:41 × tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:41:12 <haskellbridge> <loonycyborg> as in C
18:41:39 <mauke> upto n = [0 .. n-1]
18:43:54 <monochrom> [0 .. n-1] is why, for example, length :: ... -> Int instead of Word
18:45:51 Googulator15 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
18:45:56 <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)
18:45:56 × Googulator quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
18:46:10 <mauke> why?
18:46:45 <monochrom> Because [0 .. (n :: Int) - 1] and [0 .. (n :: Integer) - 1] are foot guns.
18:47:07 fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi)
18:47:07 <monochrom> Err, [0 .. (n :: Word) - 1] and [0 .. (n :: Natural) - 1] are foot guns.
18:47:32 <int-e> monochrom: what is this "Word" you're talking about? https://www.haskell.org/onlinereport/basic.html#sect6.4
18:47:38 <haskellbridge> <Zemyla> filter (/= n) [0..n]
18:47:52 <monochrom> Word is in Data.Word
18:48:06 <int-e> monochrom: I know, and you missed the point :-P
18:48:34 <monochrom> I don't get the point.
18:48:34 <int-e> I just don't think your explanation why `length` doesn't return Word is supported by history.
18:49:37 <monochrom> Oh, I revise history all the time. >:)
18:50:21 <mauke> "upto" is the kind of [0..n)
18:51:29 <mauke> maybe its implementation needs to be revised: upto n = takeWhile (< n) [0 ..]
18:51:41 <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
18:52:11 <Square2> Anyone know of a better trick?
18:52:23 <monochrom> Yeah you want to avoid `n-1`.
18:55:13 tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
18:55:31 <monochrom> You can write your own Trifunctor class. If you subclass from Bifunctor, then you just have to add the third method. :)
18:56:09 × tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Client Quit)
18:56:19 <c_wraith> I found myself looking for how to write octal literals for the first time today. after almost 20 years using Haskell.
18:56:35 <monochrom> heh
18:57:36 <mauke> 0o (pronounced "uh-oh")
18:57:46 <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
18:59:02 <mauke> do any other programming languages (outside of Perl/Haskell) support 0o notation?
19:02:03 <int-e> let's see.. Python 3 does it and forbids leading zeros in decimal literals on top of that
19:03:29 <mauke> nice
19:03:39 <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
19:03:40 <int-e> Rust too. The aforementioned LPC too (at least in its modern ldmud dialect).
19:05:13 <int-e> But not Pike (which is another branch of LPC), so I think the caveat is important.
19:07:12 ski . o O ( `0o0.4' )
19:08:15 <mauke> kind of. perl supports 0o0.4p0
19:08:21 <mauke> but the exponent is required
19:11:47 gehmehgeh is now known as gmg
19:15:10 <tomsmeding> int-e: I could have _sworn_ rust had ..<
19:16:18 <tomsmeding> int-e: Swift seems to have ..< with the meaning I had in mind
19:16:55 <tomsmeding> got the language wrong, but at least it exists in a common language :p
19:18:42 <tomsmeding> mauke: uh, what about C?
19:19:15 <tomsmeding> I'd rather expect that all mentioned examples got 0o from C :p
19:19:57 <monochrom> But C didn't have the o, you go straight to 0777
19:20:15 <tomsmeding> TIL
19:20:19 <tomsmeding> or wait what
19:20:33 <tomsmeding> 1. you're right
19:20:38 <tomsmeding> 2. what is my brain doing
19:20:51 <tomsmeding> (I had to pass -std=c99 -pedantic to get gcc to complain about it)
19:21:00 <monochrom> Your brain makes sense, therefore you don't understand a poor syntax choice in C. :)
19:21:05 <tomsmeding> :)
19:25:01 <int-e> . o O ( it's called "revising history", I learned today )
19:26:25 <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
19:27:18 AlexZenon_2 is now known as AlexZenon
19:27:38 <tomsmeding> fortunately -- contrary to segfaultfizzbuzz's wishes -- history is being revised regularly :)
19:27:56 <ski> rebased ?
19:28:33 <monochrom> haha
19:30:02 × xnyhps quits (~xnyhps@s.xnyhps.nl) (Remote host closed the connection)
19:30:12 <EvanR> redacted
19:30:37 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
19:34:55 × Square2 quits (~Square4@user/square) (Ping timeout: 246 seconds)
19:36:37 × dhil quits (~dhil@5.151.29.139) (Quit: Leaving)
19:39:49 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds)
19:40:22 gAy_Dragon is now known as TypesWithAHammer
19:41:05 TypesWithAHammer is now known as gAy_Dragon
19:49:00 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
19:52:41 × Pixi quits (~Pixi@user/pixi) (Quit: Leaving)
19:52:58 Pixi joins (~Pixi@user/pixi)
19:56:59 peterbecich joins (~Thunderbi@172.222.148.214)
19:58:44 × bggd quits (~bgg@2a01:e0a:fd5:f510:9b09:80f:2f26:e3ad) (Quit: std::move)
20:04:00 pavonia joins (~user@user/siracusa)
20:04:51 lambda_gibbon joins (~lambda_gi@208.83.175.39)
20:05:44 × Googulator15 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
20:05:53 Googulator15 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
20:09:14 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 246 seconds)
20:12:31 lambda_gibbon joins (~lambda_gi@208.83.175.39)
20:13:46 × peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 246 seconds)
20:17:00 × marlino quits (~marlino@96-8-193-101.block0.gvtc.com) (Quit: WeeChat 4.7.2)
20:22:43 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
20:23:26 gmg joins (~user@user/gehmehgeh)
20:24:12 × deptype quits (~deptype@2406:b400:3a:9d2f:cc6c:ad35:cfc6:21bb) (Remote host closed the connection)
20:47:25 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
20:47:54 × michalz quits (~michalz@185.246.207.203) (Remote host closed the connection)
21:10:59 Lycurgus joins (~juan@user/Lycurgus)
21:15:54 × finsternis quits (~X@23.226.237.192) (Ping timeout: 244 seconds)
21:16:31 finsternis joins (~X@23.226.237.192)
21:21:03 × Googulator15 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
21:21:25 Googulator15 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
21:30:58 karenw joins (~karenw@user/karenw)
21:35:44 × Googulator15 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
21:35:47 Googulator58 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
21:36:16 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
22:01:04 hc_ joins (~hc@mail.hce.li)
22:01:10 × hc_ quits (~hc@mail.hce.li) (Client Quit)
22:03:04 Tuplanolla joins (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi)
22:14:37 lambda_gibbon joins (~lambda_gi@208.83.175.39)
22:23:15 × Googulator58 quits (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu) (Quit: Client closed)
22:23:34 Googulator58 joins (~Googulato@2a01-036d-0106-479c-d9ec-010d-f188-ffcb.pool6.digikabel.hu)
22:24:52 tromp joins (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e)
22:27:25 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 245 seconds)
22:34:49 × karenw quits (~karenw@user/karenw) (Ping timeout: 264 seconds)
22:35:34 × fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 244 seconds)
22:37:00 karenw joins (~karenw@user/karenw)
22:37:12 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
22:41:40 × sindu quits (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 244 seconds)
22:42:04 × karenw quits (~karenw@user/karenw) (Read error: Connection reset by peer)
22:47:27 peterbecich joins (~Thunderbi@172.222.148.214)
22:49:15 × Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
22:53:09 × iqubic quits (~sophia@2601:602:9203:1660:d33f:96d:145c:6b4b) (Remote host closed the connection)
23:00:47 × omidmash quits (~omidmash@user/omidmash) (Ping timeout: 244 seconds)
23:20:46 × peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 255 seconds)
23:21:28 × tromp quits (~textual@2001:1c00:3487:1b00:a4ed:9e46:fd5d:6b4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:30:16 Googulator58 is now known as Googulator
23:36:38 × tjbc_ quits (~tjbc@user/fliife) (Quit: ZNC - https://znc.in)
23:38:35 omidmash joins (~omidmash@user/omidmash)
23:39:03 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 265 seconds)
23:39:23 emmanuelux joins (~emmanuelu@user/emmanuelux)
23:39:50 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:42:32 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:44:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
23:45:19 × trickard quits (~trickard@cpe-85-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
23:45:47 trickard_ joins (~trickard@cpe-85-98-47-163.wireline.com.au)
23:47:48 lambda_gibbon joins (~lambda_gi@208.83.175.39)
23:52:49 × lambda_gibbon quits (~lambda_gi@208.83.175.39) (Ping timeout: 264 seconds)
23:55:15 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)

All times are in UTC on 2025-12-04.