2025/12/16

2025-12-16 00:01:47 +0100myxokephale(~myxos@2001:579:8380:f20:50ce:9e79:bbea:e21f) myxokephale
2025-12-16 00:04:34 +0100myxos(~myxos@2001:579:8380:f20:fbd3:ef8a:e888:18ad) (Ping timeout: 255 seconds)
2025-12-16 00:04:43 +0100 <dolio> It's fine, just don't put it in Monad.
2025-12-16 00:05:41 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 00:05:46 +0100Googulator33(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 00:06:01 +0100 <dolio> Originally I think failable patterns would desugar to MonadZero.
2025-12-16 00:10:17 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 00:17:31 +0100 <jackdk> The H98 report, s3.14, desugars `do { p <- e; stmts }` to `let { ok p = do {stmts}; ok _ = fail "..." in e >>= ok }`
2025-12-16 00:18:07 +0100 <jackdk> (And specifies that `fail` is an operation of `class Monad`)
2025-12-16 00:19:50 +0100 <haskellbridge> <loonycyborg> "do" can be used in pure code to together with BlockArguments kill even more parentheses :P
2025-12-16 00:20:16 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 256 seconds)
2025-12-16 00:20:29 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-16 00:22:24 +0100Googulator33(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 00:22:41 +0100Googulator33(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 00:24:14 +0100 <chromoblob> ... = ... $ do ...
2025-12-16 00:24:43 +0100 <haskellbridge> <loonycyborg> +to
2025-12-16 00:24:56 +0100 <chromoblob> `$` is how i kill parentheses :p
2025-12-16 00:28:38 +0100 <chromoblob> and i have even defined `($$) = flip ($)` in past, to do `... $$ ... $$ ...` - iirc
2025-12-16 00:33:29 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds)
2025-12-16 00:34:21 +0100Googulator33Googulator
2025-12-16 00:36:04 +0100Googulator96(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 00:36:19 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 00:38:37 +0100Googulator96Googulator
2025-12-16 00:40:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 00:41:31 +0100mange(~mange@user/mange) mange
2025-12-16 00:43:44 +0100bggd__(~bgg@2a01:e0a:fd5:f510:6bc5:c845:f799:c476) (Remote host closed the connection)
2025-12-16 00:44:00 +0100latticepolytope(~user@user/isekaijin) isekaijin
2025-12-16 00:44:03 +0100tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-16 00:44:09 +0100 <jackdk> chromoblob: Your ($$) is (Data.Function.&), since base-4.8 (ghc 7.10.1, April 2015)
2025-12-16 00:45:24 +0100 <chromoblob> yeah, i did this in 2014 lol
2025-12-16 00:45:37 +0100 <chromoblob> :i &
2025-12-16 00:45:48 +0100 <chromoblob> no work...
2025-12-16 00:46:10 +0100 <jackdk> % :i &
2025-12-16 00:46:10 +0100 <yahb2> <interactive>:1:1: error: [GHC-76037] Not in scope: ‘&’
2025-12-16 00:46:53 +0100 <geekosaur> % :i Data.Function.&
2025-12-16 00:46:53 +0100 <yahb2> (GHC.Internal.Data.Function.&) :: a -> (a -> b) -> b ; -- Defined in ‘GHC.Internal.Data.Function’ ; infixl 1 GHC.Internal.Data.Function.&
2025-12-16 00:48:03 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 00:54:46 +0100 <chromoblob> wait, i mixed it up
2025-12-16 00:55:15 +0100 <chromoblob> i mean that ($$) is same that ($) but has left associativity
2025-12-16 00:55:17 +0100dolio(~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in)
2025-12-16 00:55:31 +0100 <chromoblob> that -> as
2025-12-16 00:58:52 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:01:15 +0100dolio(~dolio@130.44.140.168) dolio
2025-12-16 01:03:01 +0100dolio(~dolio@130.44.140.168) (Client Quit)
2025-12-16 01:03:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 01:09:04 +0100jmcantrell_jmcantrell
2025-12-16 01:14:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:15:08 +0100dolio(~dolio@130.44.140.168) dolio
2025-12-16 01:19:14 +0100itaipu(~itaipu@168.121.97.28) itaipu
2025-12-16 01:19:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 01:30:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:30:40 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 01:34:53 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Ping timeout: 244 seconds)
2025-12-16 01:35:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-16 01:35:23 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 01:36:00 +0100Googulator20(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 01:36:23 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 01:38:02 +0100ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-12-16 01:46:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 01:55:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-16 02:04:20 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds)
2025-12-16 02:04:36 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 02:06:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:08:15 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 240 seconds)
2025-12-16 02:08:55 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
2025-12-16 02:10:31 +0100xff0x(~xff0x@2405:6580:b080:900:1f68:a6af:8023:736) (Ping timeout: 246 seconds)
2025-12-16 02:10:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 02:20:15 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
2025-12-16 02:22:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:24:40 +0100divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2025-12-16 02:24:52 +0100divlamir(~divlamir@user/divlamir) divlamir
2025-12-16 02:25:10 +0100somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2025-12-16 02:25:23 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 02:26:43 +0100kodachi(~kodachi@198.105.112.55) (Quit: Leaving)
2025-12-16 02:27:25 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-16 02:28:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 02:29:03 +0100omidmash5(~omidmash@user/omidmash) omidmash
2025-12-16 02:30:28 +0100acidjnk(~acidjnk@p200300d6e7171911ece553fa3dd3d975.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2025-12-16 02:30:59 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 265 seconds)
2025-12-16 02:30:59 +0100omidmash5omidmash
2025-12-16 02:31:54 +0100spew(~spew@user/spew) (Ping timeout: 252 seconds)
2025-12-16 02:33:41 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-16 02:39:50 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 02:40:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:40:04 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 02:42:34 +0100DetourNe-(DetourNetw@user/DetourNetworkUK) DetourNetworkUK
2025-12-16 02:43:04 +0100DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Ping timeout: 246 seconds)
2025-12-16 02:44:50 +0100DetourNe-DetourNetworkUK
2025-12-16 02:45:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-16 02:46:10 +0100Square(~Square4@user/square) Square
2025-12-16 02:49:49 +0100Square2(~Square@user/square) (Ping timeout: 264 seconds)
2025-12-16 02:55:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 02:57:11 +0100Googulator20Googulator
2025-12-16 03:01:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 03:05:52 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 03:05:55 +0100Googulator73(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 03:10:25 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-12-16 03:11:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:16:08 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-12-16 03:16:34 +0100spew(~spew@user/spew) spew
2025-12-16 03:16:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 03:24:23 +0100spew(~spew@user/spew) (Ping timeout: 260 seconds)
2025-12-16 03:26:34 +0100spew(~spew@user/spew) spew
2025-12-16 03:27:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:33:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 03:35:47 +0100Googulator73(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 03:35:52 +0100Googulator11(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 03:40:13 +0100Googulator11Googulator
2025-12-16 03:43:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 03:48:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 03:59:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:05:19 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds)
2025-12-16 04:05:45 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 04:05:49 +0100Googulator61(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 04:05:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 04:06:05 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 04:13:30 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2025-12-16 04:15:33 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-12-16 04:15:43 +0100spew(~spew@user/spew) (Ping timeout: 260 seconds)
2025-12-16 04:16:18 +0100finsternis(~X@23.226.237.192) finsternis
2025-12-16 04:17:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:22:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-16 04:24:37 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Quit: Leaving)
2025-12-16 04:33:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:35:42 +0100Googulator61(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 04:35:47 +0100Googulator31(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 04:37:26 +0100Googulator31Googulator
2025-12-16 04:37:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 04:39:01 +0100hsw(~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw
2025-12-16 04:40:49 +0100td_(~td@i53870904.versanet.de) (Ping timeout: 264 seconds)
2025-12-16 04:42:05 +0100td_(~td@i53870911.versanet.de) td_
2025-12-16 04:48:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 04:49:57 +0100omidmash(~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat)
2025-12-16 04:52:20 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-16 04:52:28 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 04:53:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 04:54:19 +0100omidmash(~omidmash@user/omidmash) omidmash
2025-12-16 04:59:55 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds)
2025-12-16 05:00:47 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 05:03:19 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-16 05:03:46 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 05:04:40 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:06:24 +0100latticepolytope(~user@user/isekaijin) (Quit: bbl)
2025-12-16 05:06:31 +0100somemathguy(~somemathg@user/somemathguy) (Quit: WeeChat 4.1.1)
2025-12-16 05:08:25 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 264 seconds)
2025-12-16 05:09:02 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 05:09:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 05:11:33 +0100spew(~spew@user/spew) spew
2025-12-16 05:20:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:25:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-12-16 05:25:50 +0100Square(~Square4@user/square) (Ping timeout: 244 seconds)
2025-12-16 05:26:09 +0100vetkat(~vetkat@user/vetkat) (Read error: Connection reset by peer)
2025-12-16 05:26:31 +0100vetkat(~vetkat@user/vetkat) vetkat
2025-12-16 05:27:26 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-16 05:27:47 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-16 05:28:06 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 05:32:37 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 255 seconds)
2025-12-16 05:36:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:43:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-16 05:48:01 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-12-16 05:54:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 05:54:33 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 05:58:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 06:07:22 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 06:14:52 +0100spew(~spew@user/spew) (Quit: WeeChat 4.7.2)
2025-12-16 06:20:38 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-12-16 06:22:45 +0100weary-traveler(~user@user/user363627) user363627
2025-12-16 06:23:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 06:24:26 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds)
2025-12-16 06:27:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-16 06:28:26 +0100jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.8.1)
2025-12-16 06:34:19 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-16 06:34:39 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-16 06:37:34 +0100mange(~mange@user/mange) (Quit: Zzz...)
2025-12-16 06:38:23 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 06:43:38 +0100michalz(~michalz@185.246.207.221)
2025-12-16 06:43:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 06:52:29 +0100 <chromoblob> and i was frustrated that you can't set $$ to less precedence than $
2025-12-16 06:54:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 06:58:05 +0100 <[exa]> lol.
2025-12-16 06:58:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 07:03:14 +0100 <[exa]> Is there a way to do something Selective-like with parsers that read a sequence length and then the sequence? roughly like: parseInt >>= \n -> replicateA n parseValue
2025-12-16 07:04:05 +0100 <[exa]> (or do we need Repetitive or something such for that)
2025-12-16 07:05:36 +0100Googulator88(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 07:05:49 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 07:10:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:16:49 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-16 07:21:07 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-12-16 07:21:29 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2025-12-16 07:27:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:33:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-16 07:35:40 +0100Googulator52(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 07:37:21 +0100Googulator88(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 07:43:18 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-16 07:43:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 07:48:24 +0100ft(~ft@p4fc2ab42.dip0.t-ipconnect.de) (Quit: leaving)
2025-12-16 07:48:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 07:59:27 +0100tt12316072(~tt1231@75.185.104.199) tt1231
2025-12-16 07:59:34 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 08:00:22 +0100tt1231607(~tt1231@75.185.104.199) (Read error: Connection reset by peer)
2025-12-16 08:00:22 +0100tt12316072tt1231607
2025-12-16 08:00:40 +0100lbseale(~quassel@user/ep1ctetus) (Quit: No Ping reply in 180 seconds.)
2025-12-16 08:00:56 +0100lbseale(~quassel@user/ep1ctetus) ep1ctetus
2025-12-16 08:01:55 +0100myxos(~myxos@2001:579:8380:f20:bd90:58c1:9ba1:835a) myxokephale
2025-12-16 08:03:37 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 264 seconds)
2025-12-16 08:03:53 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 08:04:07 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 08:04:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 08:04:56 +0100myxokephale(~myxos@2001:579:8380:f20:50ce:9e79:bbea:e21f) (Ping timeout: 256 seconds)
2025-12-16 08:05:42 +0100Googulator52(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 08:05:47 +0100Googulator90(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 08:06:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 08:08:32 +0100xstill_(xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
2025-12-16 08:11:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 08:11:53 +0100xstill_(xstill@fimu/xstill) xstill
2025-12-16 08:22:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 08:25:33 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2025-12-16 08:26:40 +0100Igloo(~ian@81.2.99.210) (Ping timeout: 244 seconds)
2025-12-16 08:27:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 08:34:00 +0100 <gentauro> quote: tomsmeding> gentauro: nice, very helpful error. -> I guess it was inevitable: https://github.com/NixOS/nixpkgs/commit/39e997304a220f5e80a097296fa07149344f0e15 (🤖 Generated with [Claude Code]) GG
2025-12-16 08:36:09 +0100 <gentauro> no wonder the "stable" NixOS channel keeps breaking https://status.nixos.org/. I guess that's the state of software development these days :(
2025-12-16 08:38:11 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 08:38:35 +0100Igloo(~ian@81.2.99.210)
2025-12-16 08:39:25 +0100Guest98(~Guest98@122.11.246.146)
2025-12-16 08:41:30 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-16 08:42:29 +0100skilikes `return' more
2025-12-16 08:42:37 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds)
2025-12-16 08:43:12 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-16 08:48:10 +0100Guest98(~Guest98@122.11.246.146) (Quit: Client closed)
2025-12-16 08:53:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 08:56:35 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 240 seconds)
2025-12-16 08:57:36 +0100fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-12-16 08:58:39 +0100tromp(~textual@2001:1c00:3487:1b00:dc21:3bf3:aa50:6091)
2025-12-16 08:59:03 +0100tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-12-16 08:59:05 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-16 08:59:14 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-16 09:07:38 +0100 <gentauro> ski: if related to `Monads` then `return` is the right keyword. If related to `Applicative`, `pure` is the right keyword
2025-12-16 09:07:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-16 09:12:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-16 09:15:40 +0100Googulator72(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 09:15:49 +0100Googulator90(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 09:17:45 +0100euphores(~SASL_euph@user/euphores) euphores
2025-12-16 09:22:30 +0100LainIwakura(~LainIwaku@user/LainIwakura) LainIwakura
2025-12-16 09:24:09 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-16 09:24:33 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-16 09:26:42 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-12-16 09:27:15 +0100weary-traveler(~user@user/user363627) (Ping timeout: 240 seconds)
2025-12-16 09:27:56 +0100weary-traveler(~user@user/user363627) user363627
2025-12-16 09:42:41 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 09:42:54 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 09:58:24 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-16 10:00:41 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 10:00:54 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 10:03:47 +0100fp1(~Thunderbi@dhcp-86-128.eduroam.aalto.fi) fp
2025-12-16 10:05:06 +0100fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 252 seconds)
2025-12-16 10:05:10 +0100fp1fp
2025-12-16 10:05:17 +0100Googulator72Googulator
2025-12-16 10:06:33 +0100acidjnk(~acidjnk@p200300d6e71719974d985e7e473d8889.dip0.t-ipconnect.de) acidjnk
2025-12-16 10:10:49 +0100 <tomsmeding> gentauro: is it indeed that commit that breaks things for you?
2025-12-16 10:12:46 +0100 <tomsmeding> gentauro: also, if the problem is broken haskell packages, then that still doesn't explain why you get an error without any info
2025-12-16 10:15:07 +0100kuribas(~user@2a02:1808:41:7270:9839:ee7c:6379:63a8) kuribas
2025-12-16 10:15:38 +0100fp1(~Thunderbi@2001:708:20:1406::1370) fp
2025-12-16 10:15:42 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 10:15:43 +0100Googulator18(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 10:16:14 +0100fp(~Thunderbi@dhcp-86-128.eduroam.aalto.fi) (Ping timeout: 260 seconds)
2025-12-16 10:16:14 +0100fp1fp
2025-12-16 10:16:28 +0100chele(~chele@user/chele) chele
2025-12-16 10:18:18 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-16 10:18:40 +0100Googulator18Googulator
2025-12-16 10:24:01 +0100sp1ff(~user@2601:1c2:4c00:6820::c593) (Ping timeout: 246 seconds)
2025-12-16 10:28:36 +0100sp1ff(~user@2601:1c2:4c00:6820::c593) sp1ff
2025-12-16 10:30:48 +0100kuribas(~user@2a02:1808:41:7270:9839:ee7c:6379:63a8) (Ping timeout: 260 seconds)
2025-12-16 10:34:33 +0100fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 256 seconds)
2025-12-16 10:42:22 +0100 <gentauro> tomsmeding: jep xD
2025-12-16 10:44:49 +0100 <dminuoso> gentauro: I favour `pure` only, but I learned Haskell post AMPD.
2025-12-16 10:44:54 +0100 <dminuoso> s/AMPD/AMP/
2025-12-16 10:45:05 +0100 <gentauro> but truth to be told, I'm building from GIT (scratch), so I'm not really impacted by that issue. (they have made a simplex-chat-desktop heavy on the UI, but not the simplex-chat-cli, which is what I'm trying to do, but, if I can't build locally, pretty diff to make a pkg)
2025-12-16 10:45:56 +0100trickard_trickard
2025-12-16 10:46:19 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-16 10:47:49 +0100 <dminuoso> [exa]: No, that's precisely the upgrade you get from Monad over Applicative or Selective.
2025-12-16 10:48:12 +0100 <dminuoso> % :t (>>=>)
2025-12-16 10:48:12 +0100 <yahb2> <interactive>:1:1: error: [GHC-88464] ; Variable not in scope: >>=> ; Suggested fix: Perhaps use ‘>>=’ (imported from Prelude)
2025-12-16 10:48:17 +0100 <dminuoso> % :t (>>=)
2025-12-16 10:48:17 +0100 <yahb2> (>>=) :: Monad m => m a -> (a -> m b) -> m b
2025-12-16 10:48:51 +0100 <dminuoso> This describes precisely an effect that depends on the result of a previous effect.
2025-12-16 10:50:26 +0100 <dminuoso> [exa]: *If* your Int is bounded, in theory you could also describe it with Selective of course if you enumerate every possible number in your program.
2025-12-16 10:50:45 +0100 <dminuoso> I'll leave the decision up to you whether you should do that. :-)
2025-12-16 10:51:49 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 260 seconds)
2025-12-16 10:52:30 +0100 <gentauro> if you parse, lets say encoded bytes over the wire, where the length is encoded in varInt/zigZag/…, you MUST use `>>=` to parse length to ensure correct boundries with upcoming bytes?
2025-12-16 10:52:59 +0100 <gentauro> ex: list of strings
2025-12-16 10:53:09 +0100 <dminuoso> gentauro: I think you could do a kind of recursion trick parsing it with `select` perhaps.
2025-12-16 10:53:20 +0100 <dminuoso> But it would result in downright silly performance.
2025-12-16 10:53:38 +0100fp(~Thunderbi@130.233.70.102) fp
2025-12-16 10:53:41 +0100 <gentauro> makes sense
2025-12-16 10:54:07 +0100fp1(~Thunderbi@wireless-86-50-140-165.open.aalto.fi) fp
2025-12-16 10:55:07 +0100 <dminuoso> This should be a fun excercise, let me try this.
2025-12-16 10:55:30 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-12-16 10:56:30 +0100 <dminuoso> I think you should be able to write `>>= :: (Enum a, Selective f) => f a -> (a -> f b) -> f b`
2025-12-16 10:56:30 +0100chromoblob✌️ ski
2025-12-16 10:57:03 +0100poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2025-12-16 10:57:08 +0100 <dminuoso> Ah no, not quite.
2025-12-16 10:57:47 +0100 <dminuoso> `bindEither :: (Enum a, Selective f) => f (Either a b) -> (a -> f b) -> f b`
2025-12-16 10:57:49 +0100 <dminuoso> This.
2025-12-16 10:58:05 +0100fp(~Thunderbi@130.233.70.102) (Ping timeout: 250 seconds)
2025-12-16 10:58:07 +0100fp1(~Thunderbi@wireless-86-50-140-165.open.aalto.fi) (Ping timeout: 240 seconds)
2025-12-16 11:00:10 +0100poscat(~poscat@user/poscat) poscat
2025-12-16 11:04:41 +0100humasect_(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-16 11:04:52 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-16 11:06:28 +0100mangoiv(~mangoiv@user/mangoiv) mangoiv
2025-12-16 11:09:18 +0100humasect_(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 260 seconds)
2025-12-16 11:09:19 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-16 11:21:15 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-16 11:21:25 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds)
2025-12-16 11:24:26 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-16 11:25:14 +0100trickard(~trickard@cpe-81-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-16 11:25:27 +0100trickard_(~trickard@cpe-81-98-47-163.wireline.com.au)
2025-12-16 11:25:35 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 240 seconds)
2025-12-16 11:28:59 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-12-16 11:28:59 +0100haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-12-16 11:28:59 +0100haritz(~hrtz@user/haritz) haritz
2025-12-16 11:31:20 +0100 <dutchie> I'm having trouble with quoting ghc-options in cabal files. In my .cabal I have: `ghc-options: -Wall -with-rtsopts="-N -I0"` but when I build, I get a warning `Warning: [misplaced-c-opt] Instead of 'ghc-options: -I0"' use 'include-dirs: 0"'` and then my program errors out complaining that the rts option `"-N` is unexpected
2025-12-16 11:31:34 +0100 <dutchie> how can i pass multiple flags to -with-rtsopts?
2025-12-16 11:31:48 +0100 <[exa]> dminuoso: Is that precisely the Monad jump though? I somehow felt that having the integers always finite would degrade the capabilities of the stuff a little (as in, you can't encode actual turing machine into that computation, right?)
2025-12-16 11:31:51 +0100 <tomsmeding> dutchie: you have to put the quotes around the entire thing
2025-12-16 11:31:57 +0100 <tomsmeding> "-with-rtsopts=-N -I0"
2025-12-16 11:32:14 +0100 <dutchie> ah i think that's about the only quotation mode i've not tried lol
2025-12-16 11:32:40 +0100 <dminuoso> [exa]: Like I said, in principle you could recurse over anything enumerable with something like `bindEither :: (Enum a, Selective f) => f (Either a b) -> (a -> f b) -> f b`, but it would result in terrible performance
2025-12-16 11:33:17 +0100 <dutchie> ty, that's sorted it
2025-12-16 11:33:39 +0100 <dminuoso> [exa]: So its not just about being finite, but being enumerable.
2025-12-16 11:33:45 +0100 <[exa]> dminuoso: yeah that is true, I'm more like searching for a theoretical argument
2025-12-16 11:34:51 +0100 <[exa]> as in, not "how to simulate this with selectives" but "how does this allow you to run an arbitrary monad"
2025-12-16 11:34:58 +0100 <dminuoso> [exa]: Selective gives you the power to branch. To find a number, you would have to essentially enumerate that branching until you arrive at a branch that matches that precise number/
2025-12-16 11:35:17 +0100 <dminuoso> [exa]: That is, you enumerate all possible numbers into a parser tree, and with `select` you can navigate one branch at a time.
2025-12-16 11:35:32 +0100 <dminuoso> This is not an arbitrary monad.
2025-12-16 11:35:35 +0100 <dminuoso> Monad is strictly more powerful.
2025-12-16 11:35:44 +0100 <[exa]> ah okay good
2025-12-16 11:35:54 +0100 <dminuoso> Monad can do it without having to enumerate.
2025-12-16 11:36:03 +0100 <dminuoso> So it works on things that are not enumerable.
2025-12-16 11:36:24 +0100 <[exa]> ahhhhhhhhh ok I think I get the whole problem now
2025-12-16 11:36:26 +0100 <[exa]> okay
2025-12-16 11:36:28 +0100 <[exa]> good
2025-12-16 11:36:30 +0100 <[exa]> thanks
2025-12-16 11:37:08 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-16 11:37:28 +0100 <[exa]> so if this would be a typeclass, it would make sense (not completely a Monad) but it would be more like an efficiency upgrade of Selectives for this exact case, not actual new functionality
2025-12-16 11:37:51 +0100 <dminuoso> [exa]: One good way to think about selective is to imagine that `Applicative` gives you a kind of diamond that acts "in parallel" (but I mean that in a reall loose sense), whereas `Selective` gives you a diamond that acts as a conditional branch .
2025-12-16 11:39:08 +0100 <dminuoso> [exa]: And no, not a separate typeclass
2025-12-16 11:39:24 +0100 <dminuoso> [exa]: The prescribed `bindEither` above should be writable.
2025-12-16 11:39:28 +0100 <dminuoso> With no extra typeclass
2025-12-16 11:39:54 +0100 <tomsmeding> I guess you can formulate it as: with Selective you can have branching on previously-computed values, but the whole branching tree must be known before seeing any values
2025-12-16 11:40:14 +0100 <[exa]> yeah, I wanted this more for the static analysis, the extra action would be somewhat of a kleene star, but you'd know exactly what you need to compute to know how many repetitions are there
2025-12-16 11:40:40 +0100 <tomsmeding> whereas with Monad, the branches can be decided on _after_ seeing values, which corresponds to a possibly infinite branching tree if you'dd need to specify it all statically
2025-12-16 11:40:49 +0100 <dminuoso> tomsmeding: Sure. And with `monad` the parse structure is potentially completely unknown, as it can depend on effect results.
2025-12-16 11:40:58 +0100 <dminuoso> % :t (>>=)
2025-12-16 11:40:59 +0100 <yahb2> (>>=) :: Monad m => m a -> (a -> m b) -> m b
2025-12-16 11:41:02 +0100 <dminuoso> It's literally baked into this type. :)
2025-12-16 11:41:07 +0100 <tomsmeding> yes :)
2025-12-16 11:41:43 +0100merijn(~merijn@77.242.116.146) (Ping timeout: 264 seconds)
2025-12-16 11:41:58 +0100 <dminuoso> Of course, if we applied some black hole theory and cosmology, one could argue that all possible executions are enumeratable - the entropy of the visible universe is finite.
2025-12-16 11:42:03 +0100 <dminuoso> enumerable?
2025-12-16 11:42:10 +0100 <[exa]> I probably just want an actual marker there into the selective tree that tells me "this selection is numeric"
2025-12-16 11:42:33 +0100 <tomsmeding> and give an infinite list of branches?
2025-12-16 11:42:48 +0100 <dminuoso> Finiteness is a red herring.
2025-12-16 11:42:54 +0100 <dminuoso> It's just about enumerability I think?
2025-12-16 11:42:59 +0100 <tomsmeding> is Integer enumerable?
2025-12-16 11:43:09 +0100 <tomsmeding> (ignoring cosmology arguments)
2025-12-16 11:43:30 +0100 <dminuoso> `Enum Integer` is a thing
2025-12-16 11:44:06 +0100 <tomsmeding> but can you simulate `(>>=) @_ @Integer` with Selective?
2025-12-16 11:44:25 +0100 <tomsmeding> (you can simulate `(>>=) @_ @Bool` trivially using Either () ())
2025-12-16 11:44:48 +0100 <dminuoso> Im thinking that perhaps we need at least one bound, or some base case. Enum doesnt seem to have `zero :: Enum a => a`
2025-12-16 11:45:11 +0100 <tomsmeding> you can also simulate `(>>=) @_ @Int`, with a branching tree that has 2^64 leaves, and a cosmological computer
2025-12-16 11:45:18 +0100 <dminuoso> There is `toEnum :: Enum a => Int -> a` but Im not sure about its semantics
2025-12-16 11:45:30 +0100merijn(~merijn@77.242.116.146) merijn
2025-12-16 11:45:42 +0100Googulator71(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-16 11:45:44 +0100 <dminuoso> tomsmeding: Even without cosmology arguments, it's very trivial to enumerate over all Integer?
2025-12-16 11:45:48 +0100 <dminuoso> Assuming infinite memory.
2025-12-16 11:45:55 +0100 <dminuoso> Integer is countable
2025-12-16 11:45:58 +0100 <tomsmeding> only if the selective functor itself is lazy, I guess?
2025-12-16 11:46:07 +0100 <tomsmeding> because the branching tree would be infinitely large
2025-12-16 11:46:14 +0100 <dminuoso> It just matters whether its countable.
2025-12-16 11:46:20 +0100 <dminuoso> Or does it?
2025-12-16 11:46:24 +0100 <tomsmeding> well everything is countable
2025-12-16 11:46:25 +0100Googulator(~Googulato@2a01-036d-0106-01cb-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-16 11:46:29 +0100 <dminuoso> Not everything is.
2025-12-16 11:46:34 +0100 <tomsmeding> in computer science, everything is
2025-12-16 11:47:45 +0100 <tomsmeding> so if the question is just whether the thing being branched on is countable, then the difference between Selective and Monad would only be one of performance and memory use
2025-12-16 11:48:03 +0100 <dminuoso> So this is an interesting question.
2025-12-16 11:48:16 +0100 <dminuoso> Is `Enum` the typeclass of things that are countable?
2025-12-16 11:48:21 +0100 <dminuoso> Is Rational Enum?
2025-12-16 11:48:38 +0100 <tomsmeding> Enum is nothing, essentially, as it has no sensible laws and the methods are nonsense too (can you only enumerate things that are Int-large?)
2025-12-16 11:49:23 +0100 <tomsmeding> no, because Rational is at least as large as Integer, and Integer is bigger than Int, and you must define fromEnum
2025-12-16 11:49:38 +0100 <tomsmeding> but that just shows that the Enum class is nonsense, not any kind of enumerability of Rational
2025-12-16 11:49:47 +0100 <tomsmeding> because Rational is very countable indeed
2025-12-16 11:49:53 +0100somemathguy(~somemathg@user/somemathguy) somemathguy
2025-12-16 11:50:22 +0100 <tomsmeding> (Enum is useful as a base for [..] syntax, but that's not under discussion here)