2025/09/10

2025-09-10 00:02:56 +0200tromp(~textual@2001:1c00:3487:1b00:298e:6063:53dd:ee4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-09-10 00:08:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 00:13:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 00:17:40 +0200 <biberao> ok
2025-09-10 00:17:48 +0200 <biberao> but can i isolate it?
2025-09-10 00:17:53 +0200 <biberao> or its globally installed?
2025-09-10 00:24:06 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 00:28:33 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2025-09-10 00:32:02 +0200 <geekosaur> globally installed. ghcup and even more so stack can isolate them
2025-09-10 00:34:17 +0200davidlbowman(~dlb@user/davidlbowman) davidlbowman
2025-09-10 00:35:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 00:35:44 +0200 <biberao> ah i can use ghcup or stack?
2025-09-10 00:35:47 +0200 <biberao> im cnfused here
2025-09-10 00:38:04 +0200 <geekosaur> both of them can install ghc for you, although modern stack usage gets ghc from ghcup
2025-09-10 00:38:32 +0200 <geekosaur> when you install ghcup, it will install ghc, haskell-language-server, cabal, and stack
2025-09-10 00:38:52 +0200 <geekosaur> it will also ask if you want to install a stack hook that makes it get ghc from ghcup instead of downloading it separately
2025-09-10 00:39:44 +0200 <geekosaur> stack is somewhat easier for beginners to use, although if you find yourself using extra-deps a lot then cabal might be a better alternative
2025-09-10 00:39:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 00:44:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 00:46:38 +0200davidlbowman(~dlb@user/davidlbowman) (Ping timeout: 256 seconds)
2025-09-10 00:47:48 +0200 <biberao> ive always used linux so i dont know win11
2025-09-10 00:49:25 +0200 <geekosaur> unless you need to make a native Windows app then WSL2 + ghcup might be the way to go, then
2025-09-10 00:50:43 +0200 <biberao> geekosaur: any good reading for me to try?
2025-09-10 00:51:12 +0200 <biberao> i dont want it to mess much with the system
2025-09-10 00:53:38 +0200 <monochrom> I don't know what "isolation" means. But I can say what ghcup does. It can install multiple GHC versions, set one of them as default, but the others are still accessible as eg "ghc-9.6.7". It can uninstall any of the GHC versions.
2025-09-10 00:54:40 +0200 <biberao> ayh awesome
2025-09-10 00:54:47 +0200 <biberao> so i grab ghcup and its done then?
2025-09-10 00:54:55 +0200 <geekosaur> I'm not seeing any good documentation. Windows Subsystem for Linux 2 should be available for free in the Windows Store if it's not preinstalled, and once you start it you can use the Linux instructions to install ghcup within it https://haskell.org/ghcup
2025-09-10 00:55:23 +0200 <biberao> ah ok cool thanks
2025-09-10 00:55:28 +0200 <biberao> im sorry
2025-09-10 00:55:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 00:57:00 +0200 <EvanR> is jsaddle an improbably obscure reference to "haskell on a horse"
2025-09-10 00:57:37 +0200 <monochrom> Heh, how does haskell get in there?
2025-09-10 00:58:25 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2025-09-10 00:58:47 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed)
2025-09-10 00:58:52 +0200 <EvanR> it's some thing that facilitates haskell for web
2025-09-10 00:59:04 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu)
2025-09-10 01:00:20 +0200 <geekosaur> ruby on rails, cobol on cogs, haskell on a horse
2025-09-10 01:00:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 01:00:37 +0200 <EvanR> intercal on interstates
2025-09-10 01:00:47 +0200 <monochrom> But then I would expect "hsaddle". :)
2025-09-10 01:01:12 +0200 <geekosaur> I think it's actually saddling Javascript for use with Haskell via ghcjs/the JS backend
2025-09-10 01:01:17 +0200 <Lycurgus> did i imagine a ghcjs oder?
2025-09-10 01:01:52 +0200 <EvanR> ok javascript is the horse
2025-09-10 01:01:57 +0200 <monochrom> May I distort this thing completely and imagine "j in Spanish is like h in English"? >:)
2025-09-10 01:02:10 +0200 <EvanR> no that explains it
2025-09-10 01:02:13 +0200 <geekosaur> harder h, though
2025-09-10 01:02:21 +0200 <monochrom> Jasquell
2025-09-10 01:02:38 +0200 <EvanR> I never learned haskell only HQuery
2025-09-10 01:03:15 +0200 <Lycurgus> https://github.com/ghcjs/ghcjs
2025-09-10 01:03:38 +0200 <Lycurgus> just died out igess
2025-09-10 01:05:35 +0200 <Lycurgus> went to ill conceived idea heaven
2025-09-10 01:05:49 +0200raym(~ray@user/raym) (Ping timeout: 258 seconds)
2025-09-10 01:05:57 +0200 <EvanR> ghcjs was an ill conceived idea and died out?
2025-09-10 01:06:03 +0200acidjnk(~acidjnk@p200300d6e7171905303ea6658b591e68.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2025-09-10 01:06:15 +0200 <jackdk> Isn't there a JS and a WASM backend in mainline GHC now?
2025-09-10 01:07:03 +0200 <geekosaur> more correctly, all its devs moved over to developing ghc's JS backend
2025-09-10 01:07:39 +0200 <geekosaur> because trying to upgrade ghcjs past 8.10 was too much of a nightmare
2025-09-10 01:07:48 +0200 <Lycurgus> so it could hook up with another ill concieved thing igess (wasm)
2025-09-10 01:08:04 +0200 <EvanR> ill advised
2025-09-10 01:08:05 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-09-10 01:08:19 +0200 <Lycurgus> same deal
2025-09-10 01:08:29 +0200 <int-e> There is a wasm backend in mainline GHC. I don't think the JS backend is in there, but that's fine; the WASM one largely supersedes it anyway.
2025-09-10 01:08:41 +0200 <geekosaur> JS is in there
2025-09-10 01:08:45 +0200 <int-e> where?
2025-09-10 01:08:55 +0200 <Lycurgus> unless u think an idea is good if it looks or sounds good
2025-09-10 01:09:16 +0200 <Lycurgus> if sex ka-ching or whatever
2025-09-10 01:09:17 +0200 <int-e> Oh I'm too stupid to search. ./compiler/GHC/StgToJS.hs
2025-09-10 01:09:24 +0200 <Lycurgus> *sez
2025-09-10 01:09:29 +0200 <geekosaur> right
2025-09-10 01:10:42 +0200 <int-e> geekosaur: thanks
2025-09-10 01:10:54 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Quit: Lost terminal)
2025-09-10 01:11:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 01:11:56 +0200 <geekosaur> sorry, I had a link but my sister called me out of the blue
2025-09-10 01:12:06 +0200 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/tree/master/compiler/GHC/StgToJS?ref_type=heads
2025-09-10 01:13:08 +0200 <geekosaur> (we normally text but she couldn't find our texts from yesterday or today on her phone)
2025-09-10 01:15:32 +0200biberao(~m@user/biberao) (Quit: WeeChat 3.8)
2025-09-10 01:16:03 +0200mange(~mange@user/mange) mange
2025-09-10 01:17:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 01:17:21 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed)
2025-09-10 01:17:36 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu)
2025-09-10 01:19:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 01:20:04 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-09-10 01:20:32 +0200Vajb(~Vajb@n4ff0xajgx7huazq3a1-1.v6.elisa-mobile.fi) (Ping timeout: 265 seconds)
2025-09-10 01:20:54 +0200Vajb(~Vajb@n4c77qqwuy0305es5ac-1.v6.elisa-mobile.fi)
2025-09-10 01:21:29 +0200user0(~user0@67.161.181.189) (Ping timeout: 260 seconds)
2025-09-10 01:24:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 01:25:59 +0200vetkat(~vetkat@user/vetkat) (Read error: Connection reset by peer)
2025-09-10 01:26:47 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-09-10 01:27:43 +0200vetkat(~vetkat@user/vetkat) vetkat
2025-09-10 01:28:06 +0200polykernel_(~polykerne@user/polykernel) polykernel
2025-09-10 01:28:43 +0200xff0x(~xff0x@2405:6580:b080:900:263:a30e:567c:e7aa) (Quit: xff0x)
2025-09-10 01:29:08 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2025-09-10 01:30:00 +0200polykernel(~polykerne@user/polykernel) (Ping timeout: 248 seconds)
2025-09-10 01:30:00 +0200polykernel_polykernel
2025-09-10 01:33:11 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-09-10 01:34:06 +0200phm(~peter@user/phm) phm
2025-09-10 01:35:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 01:35:57 +0200polykernel_(~polykerne@user/polykernel) polykernel
2025-09-10 01:36:01 +0200ft(~ft@p4fc2a25a.dip0.t-ipconnect.de) (Quit: Lost terminal)
2025-09-10 01:37:06 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2025-09-10 01:39:34 +0200polykernel(~polykerne@user/polykernel) (Ping timeout: 260 seconds)
2025-09-10 01:39:34 +0200polykernel_polykernel
2025-09-10 01:40:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 01:40:24 +0200sprotte24(~sprotte24@p200300d16f360700bcb9dc3880c1c26e.dip0.t-ipconnect.de) (Quit: Leaving)
2025-09-10 01:42:30 +0200raym(~ray@user/raym) raym
2025-09-10 01:50:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 01:51:23 +0200Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-09-10 01:51:51 +0200ft(~ft@p4fc2a25a.dip0.t-ipconnect.de) ft
2025-09-10 01:53:20 +0200ss4(~wootehfoo@user/wootehfoot) wootehfoot
2025-09-10 01:53:58 +0200tv(~tv@user/tv) (Quit: derp)
2025-09-10 01:54:55 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) peterbecich
2025-09-10 01:55:05 +0200tv(~tv@user/tv) tv
2025-09-10 01:55:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 01:56:23 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 250 seconds)
2025-09-10 02:06:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 02:09:19 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds)
2025-09-10 02:10:09 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-09-10 02:11:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-09-10 02:12:49 +0200xff0x(~xff0x@2405:6580:b080:900:4ff2:f904:88e:6936)
2025-09-10 02:22:24 +0200otto_s(~user@p4ff27081.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2025-09-10 02:22:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 02:24:45 +0200user0(~user0@67.161.181.189)
2025-09-10 02:25:33 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 02:28:33 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed)
2025-09-10 02:28:38 +0200jreicher(~user@user/jreicher) (Ping timeout: 256 seconds)
2025-09-10 02:29:02 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu)
2025-09-10 02:29:21 +0200jreicher(~user@user/jreicher) jreicher
2025-09-10 02:29:23 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 02:32:19 +0200otto_s(~user@p5b0442fa.dip0.t-ipconnect.de)
2025-09-10 02:35:27 +0200xff0x(~xff0x@2405:6580:b080:900:4ff2:f904:88e:6936) (Ping timeout: 265 seconds)
2025-09-10 02:36:54 +0200rvalue-(~rvalue@about/hackers/rvalue) rvalue
2025-09-10 02:37:41 +0200xff0x(~xff0x@ai080027.d.east.v6connect.net)
2025-09-10 02:38:16 +0200rvalue(~rvalue@about/hackers/rvalue) (Ping timeout: 256 seconds)
2025-09-10 02:40:29 +0200Square2(~Square@user/square) Square
2025-09-10 02:40:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 02:41:11 +0200sayola(~sayola@ipservice-092-208-226-093.092.208.pools.vodafone-ip.de) (Read error: Connection reset by peer)
2025-09-10 02:41:16 +0200a_fantom(~fantom@90.244.128.25) (Ping timeout: 258 seconds)
2025-09-10 02:42:25 +0200xff0x(~xff0x@ai080027.d.east.v6connect.net) (Ping timeout: 258 seconds)
2025-09-10 02:44:28 +0200rvalue-rvalue
2025-09-10 02:45:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 02:48:23 +0200user0(~user0@67.161.181.189) (Ping timeout: 260 seconds)
2025-09-10 02:56:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 02:56:24 +0200koz(~koz@121.99.240.58) (Ping timeout: 248 seconds)
2025-09-10 02:57:41 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 02:57:51 +0200trickard___(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-09-10 02:58:04 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-09-10 03:01:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-10 03:01:44 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2025-09-10 03:02:27 +0200FANTOM(~fantom@90.244.165.186)
2025-09-10 03:04:05 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Quit: leaving)
2025-09-10 03:04:28 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-09-10 03:11:30 +0200user0(~user0@67.161.181.189)
2025-09-10 03:12:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 03:15:35 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed)
2025-09-10 03:15:36 +0200Googulator62(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu)
2025-09-10 03:16:14 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) (Ping timeout: 256 seconds)
2025-09-10 03:16:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 03:20:12 +0200user0(~user0@67.161.181.189) (Ping timeout: 256 seconds)
2025-09-10 03:24:38 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 03:25:25 +0200sajenim(~sajenim@user/sajenim) sajenim
2025-09-10 03:25:55 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) ryanbooker
2025-09-10 03:27:48 +0200davidlbowman(~dlb@user/davidlbowman) davidlbowman
2025-09-10 03:27:50 +0200davidlbowman(~dlb@user/davidlbowman) (Client Quit)
2025-09-10 03:27:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 03:29:29 +0200Googulator62Googulator
2025-09-10 03:31:41 +0200ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-09-10 03:32:08 +0200jreicher(~user@user/jreicher) (Ping timeout: 260 seconds)
2025-09-10 03:32:53 +0200jreicher(~user@user/jreicher) jreicher
2025-09-10 03:33:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 03:33:19 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2025-09-10 03:38:47 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-09-10 03:41:53 +0200poscat(~poscat@user/poscat) poscat
2025-09-10 03:41:56 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-09-10 03:43:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 03:48:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 03:49:53 +0200jespada(~jespada@r179-25-156-56.dialup.adsl.anteldata.net.uy) (Ping timeout: 258 seconds)
2025-09-10 03:50:23 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) peterbecich
2025-09-10 03:51:48 +0200jespada(~jespada@r179-25-67-56.dialup.adsl.anteldata.net.uy) jespada
2025-09-10 03:55:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 03:55:54 +0200Square2(~Square@user/square) (Ping timeout: 256 seconds)
2025-09-10 03:58:10 +0200tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 256 seconds)
2025-09-10 03:59:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 04:06:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 04:06:57 +0200hakutaku(~textual@chen.yukari.eu.org) (Quit: Textual IRC Client: www.textualapp.com)
2025-09-10 04:12:15 +0200tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-09-10 04:17:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 04:22:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-10 04:33:20 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 04:37:55 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: Leaving)
2025-09-10 04:38:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 04:49:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 04:53:47 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-10 05:04:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 05:09:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-10 05:13:04 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) (Ping timeout: 258 seconds)
2025-09-10 05:17:15 +0200aforemny(~aforemny@i59F4C7D6.versanet.de) aforemny
2025-09-10 05:17:33 +0200Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-09-10 05:18:49 +0200aforemny_(~aforemny@2001:9e8:6cc2:7500:64be:24c3:6006:d7a3) (Ping timeout: 265 seconds)
2025-09-10 05:20:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 05:22:57 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2025-09-10 05:26:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 05:35:38 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2025-09-10 05:36:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 05:43:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 05:50:47 +0200haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-09-10 05:53:33 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 05:54:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 05:57:55 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 05:59:21 +0200koz(~koz@121.99.240.58)
2025-09-10 05:59:26 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 06:08:39 +0200pabs3(~pabs3@user/pabs3) (Ping timeout: 258 seconds)
2025-09-10 06:09:31 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-09-10 06:10:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 06:11:06 +0200pabs3(~pabs3@user/pabs3) pabs3
2025-09-10 06:12:03 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-09-10 06:15:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 06:17:12 +0200michalz(~michalz@185.246.207.200)
2025-09-10 06:26:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 06:31:06 +0200hook54321(sid149355@user/hook54321) (Ping timeout: 244 seconds)
2025-09-10 06:31:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 06:32:03 +0200b20n(sid115913@id-115913.uxbridge.irccloud.com) (Read error: Connection reset by peer)
2025-09-10 06:32:29 +0200b20n(sid115913@id-115913.uxbridge.irccloud.com) b20n
2025-09-10 06:32:39 +0200NiKaN(sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 244 seconds)
2025-09-10 06:32:39 +0200Adeon(sid418992@id-418992.lymington.irccloud.com) (Ping timeout: 244 seconds)
2025-09-10 06:32:51 +0200potato44(uid421314@id-421314.lymington.irccloud.com) (Ping timeout: 250 seconds)
2025-09-10 06:32:51 +0200jonrh(sid5185@id-5185.ilkley.irccloud.com) (Ping timeout: 250 seconds)
2025-09-10 06:33:10 +0200tapas(sid467876@id-467876.ilkley.irccloud.com) (Ping timeout: 244 seconds)
2025-09-10 06:33:10 +0200coldmountain(sid484352@id-484352.helmsley.irccloud.com) (Ping timeout: 244 seconds)
2025-09-10 06:33:21 +0200Adeon(sid418992@id-418992.lymington.irccloud.com) Adeon
2025-09-10 06:33:30 +0200jonrh(sid5185@id-5185.ilkley.irccloud.com) jonrh
2025-09-10 06:33:41 +0200bw(sid2730@user/betawaffle) (Ping timeout: 244 seconds)
2025-09-10 06:33:41 +0200S11001001(sid42510@id-42510.ilkley.irccloud.com) (Ping timeout: 244 seconds)
2025-09-10 06:33:41 +0200degraafk(sid71464@id-71464.lymington.irccloud.com) (Ping timeout: 244 seconds)
2025-09-10 06:34:02 +0200hook54321(sid149355@user/hook54321) hook54321
2025-09-10 06:34:19 +0200potato44(uid421314@id-421314.lymington.irccloud.com) potato44
2025-09-10 06:34:43 +0200S11001001(sid42510@id-42510.ilkley.irccloud.com) S11001001
2025-09-10 06:34:58 +0200bw(sid2730@user/betawaffle) betawaffle
2025-09-10 06:35:03 +0200coldmountain(sid484352@id-484352.helmsley.irccloud.com) coldmountain
2025-09-10 06:35:20 +0200NiKaN(sid385034@id-385034.helmsley.irccloud.com) NiKaN
2025-09-10 06:35:29 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 258 seconds)
2025-09-10 06:35:42 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 06:36:07 +0200tapas(sid467876@id-467876.ilkley.irccloud.com) tapas
2025-09-10 06:36:21 +0200degraafk(sid71464@id-71464.lymington.irccloud.com) degraafk
2025-09-10 06:41:27 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 06:41:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 06:45:49 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2025-09-10 06:46:36 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-09-10 06:49:06 +0200takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-09-10 06:57:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 06:58:33 +0200Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-09-10 07:02:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 07:21:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 07:22:25 +0200simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 245 seconds)
2025-09-10 07:28:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 07:30:28 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) peterbecich
2025-09-10 07:32:46 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-09-10 07:35:51 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 07:40:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 07:41:30 +0200simplystuart(~simplystu@c-75-75-152-164.hsd1.pa.comcast.net)
2025-09-10 07:45:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-10 07:48:08 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-09-10 07:48:31 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 07:55:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 07:57:28 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 07:57:39 +0200trickard_trickard
2025-09-10 08:00:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-10 08:04:02 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 08:11:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 08:16:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-09-10 08:17:24 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 08:26:50 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 244 seconds)
2025-09-10 08:32:20 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 08:34:05 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Client Quit)
2025-09-10 08:34:13 +0200fp1(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 08:36:34 +0200fp1fp
2025-09-10 08:52:15 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) (Ping timeout: 256 seconds)
2025-09-10 08:52:43 +0200tromp(~textual@2001:1c00:3487:1b00:298e:6063:53dd:ee4e)
2025-09-10 09:00:00 +0200caconym747(~caconym@user/caconym) (Quit: bye)
2025-09-10 09:00:40 +0200caconym747(~caconym@user/caconym) caconym
2025-09-10 09:03:52 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 248 seconds)
2025-09-10 09:05:05 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2025-09-10 09:06:21 +0200img(~img@user/img) img
2025-09-10 09:06:41 +0200img(~img@user/img) (Remote host closed the connection)
2025-09-10 09:07:49 +0200acidjnk(~acidjnk@p200300d6e7171978f1deda3d99afd1a1.dip0.t-ipconnect.de) acidjnk
2025-09-10 09:08:04 +0200img(~img@user/img) img
2025-09-10 09:09:37 +0200merijn(~merijn@77.242.116.146) merijn
2025-09-10 09:10:37 +0200opqdonut(opqdonut@pseudo.fixme.fi)
2025-09-10 09:19:15 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds)
2025-09-10 09:24:09 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 09:26:45 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-09-10 09:35:26 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 09:42:07 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-09-10 09:46:52 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 260 seconds)
2025-09-10 09:48:20 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-09-10 09:50:44 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 09:52:34 +0200ft(~ft@p4fc2a25a.dip0.t-ipconnect.de) (Quit: leaving)
2025-09-10 09:53:06 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-09-10 10:04:05 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Quit: fp)
2025-09-10 10:04:18 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 10:12:29 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-09-10 10:13:30 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-09-10 10:21:23 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 265 seconds)
2025-09-10 10:24:29 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-09-10 10:25:21 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2025-09-10 10:26:05 +0200Square3(~Square4@user/square) Square
2025-09-10 10:31:36 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-09-10 10:31:37 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-09-10 10:31:37 +0200haritz(~hrtz@user/haritz) haritz
2025-09-10 10:40:39 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 10:59:05 +0200__monty__(~toonn@user/toonn) toonn
2025-09-10 11:00:45 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-09-10 11:02:14 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2025-09-10 11:03:00 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2025-09-10 11:03:37 +0200 <kqr> If anyone still is curious about the problem I had with cabal build --enable-profiling complaining about parallel not being installed with profiling: seems like that library was installed as a system package. On Fedora i could `dnf install ghc-parallel-prof` to solve the problem. Fortunately that was the only library with this problem!
2025-09-10 11:06:30 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-09-10 11:06:35 +0200itaipu(~itaipu@168.121.97.28) (Ping timeout: 248 seconds)
2025-09-10 11:07:03 +0200chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-09-10 11:13:39 +0200trickard(~trickard@cpe-54-98-47-163.wireline.com.au) (Ping timeout: 250 seconds)
2025-09-10 11:14:02 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-09-10 11:16:01 +0200fp(~Thunderbi@2001:708:150:10::72df) fp
2025-09-10 11:16:58 +0200AlexZenon(~alzenon@178.34.162.29) (Ping timeout: 265 seconds)
2025-09-10 11:18:27 +0200Enrico63(~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) Enrico63
2025-09-10 11:19:22 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-09-10 11:21:03 +0200 <Leary> kqr: I suspect you really want `package-dbs: clear` in `cabal.project.local` instead, so that unrelated global installs don't interfere with your build in the first place.
2025-09-10 11:24:59 +0200AlexZenon(~alzenon@178.34.162.29)
2025-09-10 11:32:59 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-09-10 11:42:09 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2025-09-10 11:49:32 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2025-09-10 11:50:02 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-09-10 11:56:10 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 11:59:48 +0200 <kqr> That sounds much better, yes.
2025-09-10 12:18:13 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 250 seconds)
2025-09-10 12:20:11 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-09-10 12:21:09 +0200mari-estel(~mari-este@user/mari-estel) mari-estel
2025-09-10 12:33:35 +0200merijn(~merijn@77.242.116.146) merijn
2025-09-10 12:37:15 +0200 <dminuoso> kaol: Can you make a fully self contained minimal example program that I can just `cabal run`?
2025-09-10 12:37:54 +0200 <dminuoso> I'm fully convinced that any latin 1 decoding cannot happen on JSON with servant-client alone.
2025-09-10 12:38:06 +0200 <dminuoso> Maybe its your FromJSON instance that is borked?
2025-09-10 12:39:30 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 256 seconds)
2025-09-10 12:44:39 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-09-10 12:50:00 +0200inline(~inline@ip-005-146-196-246.um05.pools.vodafone-ip.de) (Ping timeout: 258 seconds)
2025-09-10 12:51:25 +0200Axma39609(~Axman6@user/axman6) Axman6
2025-09-10 12:52:56 +0200merijn(~merijn@77.242.116.146) merijn
2025-09-10 12:53:21 +0200Axman6(~Axman6@user/axman6) (Ping timeout: 250 seconds)
2025-09-10 12:54:21 +0200fp(~Thunderbi@2001:708:150:10::72df) (Ping timeout: 252 seconds)
2025-09-10 12:55:49 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 12:58:31 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds)
2025-09-10 13:00:27 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 256 seconds)
2025-09-10 13:01:03 +0200sttau(~sttau@user/sttau) sttau
2025-09-10 13:02:51 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 13:04:52 +0200 <kqr> I must be missing something dumb here. Why does the MonadRandom typeclass not have a function `liftRandom :: g -> (a, g)`? Seems like something that'd be supported by anything that can do the other things MonadRandom does.
2025-09-10 13:05:23 +0200 <kqr> (I know the RandT transformer has that function, but I'd like the implementor to choose whether to draw random numbers from RandT or IO.)
2025-09-10 13:06:34 +0200 <kqr> Uh, that would be `liftRandom :: (g -> (a, g)) -> MonadRandom a` or something, I suppose. Maybe that's the problem – we don't know what g is. But then why does not MonadSplit have that function?
2025-09-10 13:08:26 +0200 <kqr> Backing up a little, I want to use List.Shuffle.shuffle because it looks well written, but I don't want to tie it to RandT or the like.
2025-09-10 13:08:53 +0200 <dminuoso> kqr: Hold on, liftRandT is a thing.
2025-09-10 13:09:03 +0200 <kaol> dminuoso: Unlikely, I don't think I can do it without running it on a browser.
2025-09-10 13:09:45 +0200 <kqr> dminuoso, Yeah, but it lifts it into a RandT specifically, and I would like the option to use it in an IO context also.
2025-09-10 13:11:33 +0200 <dminuoso> kqr: A `MonadRandom IO` instance exists, what do you nneed?
2025-09-10 13:12:03 +0200 <kaol> Though I think the AJAX call can be dropped if I take the offending JSString just by grabbing it from the DOM tree or something like that.
2025-09-10 13:12:09 +0200 <dminuoso> Hold on Im confusing things
2025-09-10 13:12:52 +0200 <dminuoso> kqr: Lets untwine this: You can use `runRand` in IO just fine
2025-09-10 13:13:16 +0200 <dminuoso> Similarly, `instance MonadRandom IO` is also a thing
2025-09-10 13:13:27 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2025-09-10 13:14:13 +0200 <dminuoso> kqr: `Rand` is basically a pure monad for you to get random effects with. RandT exists so you can layer it into other monads if you like.
2025-09-10 13:14:27 +0200 <dminuoso> But for convenience you can also just use IO directly.
2025-09-10 13:14:38 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 13:15:42 +0200 <dminuoso> And for convenience in arbitrary transformer stacks you can use `randomIO :: (Random a, MonadIO m) => m a`
2025-09-10 13:15:58 +0200 <dminuoso> What are you missing exactly?
2025-09-10 13:17:08 +0200 <kqr> Backing up further, I want to compare the performance of using the RandT transformer layered on top of IO to drawing numbers in IO directly.
2025-09-10 13:18:45 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 258 seconds)
2025-09-10 13:19:48 +0200 <kqr> Thus I'd like to create a `shuffle :: MonadRandom m => [a] -> m [a]` to be used both from within a RandT stack and directly from IO. However, with the given tools I can only create `shuffle :: RandomGen g => [a] -> Rand g [a]` which can only be used in IO by running it with evalRandIO which goes through StateT in the end.
2025-09-10 13:19:56 +0200xff0x(~xff0x@2405:6580:b080:900:c68c:683e:9c65:6f0a)
2025-09-10 13:23:16 +0200 <dminuoso> kqr: Like I said, `MonadRandom IO` exists
2025-09-10 13:23:47 +0200 <dminuoso> So you can use `shuffle` in IO just the same as you would with RandT.
2025-09-10 13:25:45 +0200 <kqr> Well, I certainly am missing something dumb here. The function I import is `List.Shuffle.shuffle :: RandomGen g => [a] -> g -> ([a], g)`. How would I turn that into `shuffle' :: MonadRandom m => [a] -> m [a]`?
2025-09-10 13:26:12 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2025-09-10 13:27:24 +0200 <dminuoso> kqr: These are different interfaces.
2025-09-10 13:28:41 +0200 <kqr> Yes, and I wished to convert one into the other, but I'm starting to sense that it might not be possible, and the solution would have be `shuffle' :: (RandomGen g, MonadSplit g m) => [a] -> m [a]`
2025-09-10 13:28:59 +0200 <dminuoso> Well Im not entirely sure what you mean by converting RandomGen into MonadRandom.
2025-09-10 13:29:17 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2025-09-10 13:29:28 +0200 <dminuoso> RandomGen is for sequential pseudorandom number generators.
2025-09-10 13:29:45 +0200ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2025-09-10 13:32:23 +0200 <kqr> I feel like anything that is an instance of MonadRandom ought to be able to take a function of the shape `RandomGen g => g -> (a, g)` and produce an a, i.e. there ought to be a function in `MonadRandom m` that is `liftRandom :: RandomGen g => (g -> (a, g)) -> m a`.
2025-09-10 13:34:05 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 13:39:20 +0200 <kqr> But I think my misunderstanding is in believing instances of MonadRandom have to be able to expose their generator. Turns out they do not. And there's no typeclass for those instances that do, beyond MonadSplit which is even more restricted.
2025-09-10 13:43:29 +0200 <dminuoso> kqr: They are kind of orthotonal interfaces.
2025-09-10 13:46:46 +0200 <dminuoso> kqr: And more to the point, MonadRandom IO is not even implemented using RandomGen.
2025-09-10 13:47:02 +0200 <dminuoso> It uses `randomIO` from the `random` package (I dont even know why)
2025-09-10 13:47:25 +0200 <dminuoso> Which ultimately uses `https://hackage-content.haskell.org/package/random-1.3.1/docs/src/System.Random.Internal.html#theS…`
2025-09-10 13:48:34 +0200 <dminuoso> And since theStdGen is exported in that module, you can - if you want - access that for purpose of testing.
2025-09-10 13:49:25 +0200 <dminuoso> Oh wait, I missed a key detail. That is a plain RandomGEn
2025-09-10 13:50:02 +0200 <dminuoso> kqr: So you could think of `MonadRandom` as a kind of `State StdGen` maybe.
2025-09-10 13:51:04 +0200merijn(~merijn@77.242.116.146) (Read error: Connection reset by peer)
2025-09-10 13:51:47 +0200tv(~tv@user/tv) (Read error: Connection reset by peer)
2025-09-10 13:52:26 +0200merijn(~merijn@77.242.116.146) merijn
2025-09-10 13:57:44 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-09-10 13:59:36 +0200merijn(~merijn@77.242.116.146) merijn
2025-09-10 14:02:08 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-09-10 14:02:27 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 14:02:47 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-09-10 14:03:54 +0200 <kqr> That's my intuition too, but since MonadRandom does not expose any way to get the StdGen, a function like shuffle cannot be lifted into a MonadRandom operation.
2025-09-10 14:04:18 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-09-10 14:07:03 +0200tv(~tv@user/tv) tv
2025-09-10 14:07:15 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-09-10 14:09:02 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-09-10 14:09:41 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Quit: fp)
2025-09-10 14:09:45 +0200fp1(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 14:10:02 +0200trickard_(~trickard@cpe-54-98-47-163.wireline.com.au)
2025-09-10 14:10:19 +0200raym(~ray@user/raym) (Ping timeout: 260 seconds)
2025-09-10 14:11:36 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 248 seconds)
2025-09-10 14:12:03 +0200fp1fp
2025-09-10 14:14:54 +0200merijn(~merijn@77.242.116.146) merijn
2025-09-10 14:15:52 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 14:24:46 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 14:32:07 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 250 seconds)
2025-09-10 14:33:56 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Quit: fp)
2025-09-10 14:34:04 +0200fp1(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 14:36:22 +0200fp1fp
2025-09-10 14:49:07 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 15:06:41 +0200ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-09-10 15:14:57 +0200 <kqr> Unrelated to the above: I have a list of things where I want to occasionally perform the query listWithout :: Eq a => [a] -> a -> Maybe [a] which is Nothing if the element does not exist in the list, or Just xs-wihtout-element if the element did exist. This is obviously a Set, except the list can and is allowed to contain duplicates (and in that case only one of the element should be removed).
2025-09-10 15:15:00 +0200 <kqr> What would be the most efficient way to store this list? Asking because profiling indicates that "list-except-element" query is where my program spends nearly 20 % of its time. I have already optimised it to be tail-recursive and perform a single iteration through the list, but it's still slow.
2025-09-10 15:15:15 +0200itaipu(~itaipu@168.121.97.28) itaipu
2025-09-10 15:16:23 +0200 <kqr> I imagine a Map element Int would do it, where the Int records the number of instances of the element, but I'm also worried that might be a lot of overhead compared to a list. (In this case, the list is usually fairly short (< 10 items) and probably rarely contains more than three duplicates.)
2025-09-10 15:17:02 +0200dfg(~dfg@user/dfg) (Ping timeout: 260 seconds)
2025-09-10 15:17:34 +0200Enrico63(~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed)
2025-09-10 15:18:34 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-09-10 15:23:20 +0200dfg(~dfg@dfg.rocks)
2025-09-10 15:23:20 +0200dfg(~dfg@dfg.rocks) (Changing host)
2025-09-10 15:23:20 +0200dfg(~dfg@user/dfg) dfg
2025-09-10 15:23:48 +0200califax_(~califax@user/califx) califx
2025-09-10 15:24:12 +0200califax(~califax@user/califx) (Ping timeout: 272 seconds)
2025-09-10 15:25:05 +0200califax_califax
2025-09-10 15:26:25 +0200 <haskellbridge> <sm> kqr I thought of a Map also. I think it's worth a try, often Map has been used in optimisations
2025-09-10 15:26:44 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2025-09-10 15:27:00 +0200 <haskellbridge> <sm> some kind of map
2025-09-10 15:27:47 +0200itaipu(~itaipu@168.121.97.28) (Ping timeout: 256 seconds)
2025-09-10 15:31:50 +0200 <kqr> I'll give it a shot. Going to take some refactoring but I'd probably need to do that at some point anyway.
2025-09-10 15:37:35 +0200Enrico63(~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) Enrico63
2025-09-10 15:41:04 +0200itaipu(~itaipu@168.121.97.28) itaipu
2025-09-10 15:41:18 +0200Enrico63(~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Client Quit)
2025-09-10 15:42:08 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 15:48:20 +0200BLade_X123(~manju@user/BLade-X123:75192) BLade_X123
2025-09-10 15:48:38 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 15:49:37 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 248 seconds)
2025-09-10 15:50:21 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) fp
2025-09-10 15:51:20 +0200BLade_X123(~manju@user/BLade-X123:75192) (Quit: Leaving)
2025-09-10 15:51:57 +0200ttybitnik(~ttybitnik@user/wolper) (Quit: Fading out...)
2025-09-10 15:55:28 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 15:58:03 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-09-10 15:58:20 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 15:58:37 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-09-10 15:58:41 +0200jespada(~jespada@r179-25-67-56.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds)
2025-09-10 16:01:47 +0200jespada(~jespada@r190-135-93-147.dialup.adsl.anteldata.net.uy) jespada
2025-09-10 16:02:07 +0200mange(~mange@user/mange) (Quit: Zzz...)
2025-09-10 16:20:37 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-09-10 16:23:40 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-09-10 16:24:17 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2025-09-10 16:29:09 +0200TMA(tma@twin.jikos.cz) (Ping timeout: 260 seconds)
2025-09-10 16:31:00 +0200TMA(tma@twin.jikos.cz) TMA
2025-09-10 16:42:55 +0200 <merijn> kqr: How static are these lists?
2025-09-10 16:43:49 +0200 <EvanR> how large are these lists
2025-09-10 16:44:12 +0200 <EvanR> 10 items at most, yeah Map representing the histogram will have overhead
2025-09-10 16:44:26 +0200 <merijn> I was more thinking: If you
2025-09-10 16:44:42 +0200 <merijn> If you're spending so much time on them, do you not wanna switch to Vector or something
2025-09-10 16:44:58 +0200 <merijn> You're gonna waste a lot of time pointer changing with a list
2025-09-10 16:45:04 +0200 <merijn> *chasing
2025-09-10 16:45:37 +0200 <EvanR> what's the distribution of importance placed on all the tasks the data structure does, assuming it does something else but track the population
2025-09-10 16:45:47 +0200ruvam(~ruvam@user/ruvam) (Ping timeout: 248 seconds)
2025-09-10 16:46:22 +0200 <EvanR> would be a serious question if performance is important
2025-09-10 16:47:51 +0200 <EvanR> a vector of the populations of fixed categories could be a big impovement
2025-09-10 16:48:29 +0200ruvam(~ruvam@user/ruvam) ruvam
2025-09-10 16:48:40 +0200 <merijn> Vector won't help if you have to convert when querying "list without". But iff it makes sense to swap to Vector globally in the program that might help substantially
2025-09-10 16:48:57 +0200 <EvanR> "list without" would be, zero out that category
2025-09-10 16:49:09 +0200 <EvanR> "list" without
2025-09-10 16:49:23 +0200 <merijn> Or just Vector.filter or something
2025-09-10 16:49:37 +0200 <merijn> For vectors of size 10 the traversal costs are pretty small
2025-09-10 16:49:49 +0200 <EvanR> I'm just fantasizing that population count is all that matters
2025-09-10 16:50:37 +0200 <EvanR> real world use case, your characters inventory is always sorted
2025-09-10 16:50:43 +0200 <__monty__> EvanR: Rather than zeroing out it'd be decrementing the count according to their spec.
2025-09-10 16:50:44 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-09-10 16:50:46 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed)
2025-09-10 16:51:05 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu)
2025-09-10 16:51:14 +0200 <EvanR> you think listWithout x would return a "list" that still has x, just fewer?
2025-09-10 16:51:23 +0200user0(~user0@67.161.181.189)
2025-09-10 16:51:42 +0200qqe(~qqq@185.54.23.136) (Read error: Connection reset by peer)
2025-09-10 16:52:05 +0200 <__monty__> That's what they said re duplicates.
2025-09-10 16:52:27 +0200 <EvanR> I see that. Confusing naming then
2025-09-10 16:56:24 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2025-09-10 17:12:18 +0200poscat0x04(~poscat@user/poscat) poscat
2025-09-10 17:14:03 +0200qqe(~qqq@185.54.23.136)
2025-09-10 17:14:20 +0200poscat(~poscat@user/poscat) (Ping timeout: 256 seconds)
2025-09-10 17:17:32 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-09-10 17:22:50 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 256 seconds)
2025-09-10 17:23:04 +0200fp(~Thunderbi@wireless-86-50-141-202.open.aalto.fi) (Ping timeout: 248 seconds)
2025-09-10 17:31:59 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-09-10 17:42:09 +0200karenw(~karenw@user/karenw) karenw
2025-09-10 17:42:23 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 17:46:12 +0200Everything(~Everythin@178.137.93.79) Everything
2025-09-10 17:46:25 +0200 <kaotica> /close
2025-09-10 17:46:37 +0200kaotica(~user@user/d4q) (leaving)
2025-09-10 17:46:42 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 17:49:36 +0200inline(~inline@ip-005-146-196-014.um05.pools.vodafone-ip.de) Inline
2025-09-10 17:50:03 +0200davidlbowman(~dlb@user/davidlbowman) davidlbowman
2025-09-10 17:57:06 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-09-10 18:02:43 +0200 <dminuoso> kqr: Well I mean if you want to hack around, nothing stops you from touching theStdGen manually. :-)
2025-09-10 18:03:54 +0200MelodyOwO(~MelodyOwO@user/MelodyOwO) MelodyOwO
2025-09-10 18:04:12 +0200 <dminuoso> kqr: Also regarding the list problem, what merijn said. Never underestimate the power of linear memory access in the presence of strided prefetchers. :-)
2025-09-10 18:04:36 +0200ubert(~Thunderbi@77.119.163.183.wireless.dyn.drei.com) ubert
2025-09-10 18:04:53 +0200user0(~user0@67.161.181.189) (Ping timeout: 250 seconds)
2025-09-10 18:05:16 +0200 <dminuoso> Even if you go into a hundred elements, chances are its still faster than indirection in the average case.
2025-09-10 18:05:52 +0200ubert1(~Thunderbi@178.165.161.196.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
2025-09-10 18:06:10 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 18:06:24 +0200 <dminuoso> Linear memory access is just stupid fast.
2025-09-10 18:07:27 +0200ubert1(~Thunderbi@178.165.191.145.wireless.dyn.drei.com) ubert
2025-09-10 18:08:56 +0200ubert(~Thunderbi@77.119.163.183.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
2025-09-10 18:08:56 +0200ubert1ubert
2025-09-10 18:09:04 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) peterbecich
2025-09-10 18:10:31 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds)
2025-09-10 18:13:35 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 18:15:23 +0200ubert(~Thunderbi@178.165.191.145.wireless.dyn.drei.com) (Quit: ubert)
2025-09-10 18:21:12 +0200jreicher(~user@user/jreicher) (Ping timeout: 256 seconds)
2025-09-10 18:21:30 +0200petrichor(~jez@user/petrichor) (Quit: ZNC 1.10.1 - https://znc.in)
2025-09-10 18:27:20 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) (Ping timeout: 258 seconds)
2025-09-10 18:42:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 18:45:09 +0200qqe(~qqq@185.54.23.136) (Remote host closed the connection)
2025-09-10 18:46:47 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu) (Quit: Client closed)
2025-09-10 18:47:02 +0200Googulator(~Googulato@2a01-036d-0106-217b-fd1e-c506-2528-080c.pool6.digikabel.hu)
2025-09-10 18:47:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 18:49:34 +0200karenw(~karenw@user/karenw) (Ping timeout: 258 seconds)
2025-09-10 18:50:45 +0200Square3(~Square4@user/square) (Ping timeout: 245 seconds)
2025-09-10 18:51:44 +0200karenw(~karenw@user/karenw) karenw
2025-09-10 18:53:54 +0200 <EvanR> just wait until they invent isolinear memory
2025-09-10 18:58:07 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 18:58:36 +0200ByronJohnson(~bairyn@MAIL.DIGITALKINGDOM.ORG) (Ping timeout: 256 seconds)
2025-09-10 19:00:11 +0200ByronJohnson(~bairyn@MAIL.DIGITALKINGDOM.ORG) ByronJohnson
2025-09-10 19:03:30 +0200Alleria_(~Alleria@user/alleria) Alleria
2025-09-10 19:04:01 +0200user0(~user0@67.161.181.189)
2025-09-10 19:05:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-09-10 19:06:32 +0200Alleria(~Alleria@user/alleria) (Ping timeout: 256 seconds)
2025-09-10 19:07:30 +0200biberao(~m@user/biberao) biberao
2025-09-10 19:12:03 +0200MelodyOwO(~MelodyOwO@user/MelodyOwO) (Ping timeout: 250 seconds)
2025-09-10 19:16:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 19:18:28 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Quit: Quit)
2025-09-10 19:18:50 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 19:22:50 +0200fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) fp
2025-09-10 19:23:23 +0200ft(~ft@p4fc2a25a.dip0.t-ipconnect.de) ft
2025-09-10 19:24:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 19:33:01 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-09-10 19:35:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 19:39:47 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 19:44:30 +0200tromp(~textual@2001:1c00:3487:1b00:298e:6063:53dd:ee4e) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-09-10 19:49:13 +0200itaipu(~itaipu@168.121.97.28) (Ping timeout: 260 seconds)
2025-09-10 19:50:44 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 256 seconds)
2025-09-10 19:50:47 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 19:51:11 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 19:55:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 19:55:50 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 256 seconds)
2025-09-10 19:58:05 +0200EvanR(~EvanR@user/evanr) EvanR
2025-09-10 19:59:43 +0200itaipu(~itaipu@168.121.97.28) itaipu
2025-09-10 20:04:30 +0200 <dminuoso> EvanR: Oh that already exists. It's called a blackhole!
2025-09-10 20:06:13 +0200tromp(~textual@2001:1c00:3487:1b00:d00b:7608:aa49:1d61)
2025-09-10 20:06:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 20:10:33 +0200 <kqr> I have converted to MultiSet (which is effectively a strict Map a Int) now, which didn't turn out that great in terms of performance. Slightly slower than lists. (Understandable – the sets have to be rebuilt relatively often and they are very small.) Vectors are the next step! Then if that doesn't work, I'm tempted to encode the element types as integers instead of records of sum type fields.
2025-09-10 20:11:10 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-09-10 20:11:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 20:11:46 +0200Everything(~Everythin@178.137.93.79) (Read error: Connection reset by peer)
2025-09-10 20:14:42 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-09-10 20:17:14 +0200Everything(~Everythin@217.147.163.184) Everything
2025-09-10 20:18:13 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-09-10 20:20:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 20:21:02 +0200 <monochrom> I would expect lists to be slower when they get very long.
2025-09-10 20:24:30 +0200divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2025-09-10 20:24:37 +0200dolio(~dolio@130.44.140.168) (Quit: ZNC 1.9.1 - https://znc.in)
2025-09-10 20:24:40 +0200divlamir(~divlamir@user/divlamir) divlamir
2025-09-10 20:25:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-10 20:25:41 +0200dolio(~dolio@130.44.140.168) dolio
2025-09-10 20:33:45 +0200 <kqr> The thing this is storing are hands in a card game, and the players' rarely have more than 15 or so cards – and more commonly around 6 or so. (The query of "get the list except one element" is used when playing a card from the hand.)
2025-09-10 20:35:16 +0200 <monochrom> I am also known to simply code up [ (x,y,z) | (x,y) <- list1, (x',z) <- list2, x == x' ] when the lists are merely 200 elements long. :)
2025-09-10 20:35:54 +0200 <monochrom> (And the code is only run 10 times per year.)
2025-09-10 20:36:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 20:36:58 +0200weary-traveler(~user@user/user363627) user363627
2025-09-10 20:41:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 20:48:27 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-09-10 20:49:28 +0200jespada(~jespada@r190-135-93-147.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds)
2025-09-10 20:51:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 20:52:30 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2025-09-10 20:52:30 +0200ljdarj1ljdarj
2025-09-10 20:53:37 +0200fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 248 seconds)
2025-09-10 20:55:22 +0200plitter(~plitter@user/plitter) (Quit: WeeChat 4.4.2)
2025-09-10 20:56:38 +0200MelodyOwO(~MelodyOwO@user/MelodyOwO) MelodyOwO
2025-09-10 20:58:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-10 21:00:07 +0200caconym747(~caconym@user/caconym) (Quit: bye)
2025-09-10 21:00:48 +0200caconym747(~caconym@user/caconym) caconym
2025-09-10 21:02:01 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
2025-09-10 21:02:26 +0200MelodyOwO(~MelodyOwO@user/MelodyOwO) (Quit: Leaving.)
2025-09-10 21:05:34 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 272 seconds)
2025-09-10 21:06:01 +0200Everything(~Everythin@217.147.163.184) (Quit: leaving)
2025-09-10 21:07:40 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-09-10 21:07:47 +0200jespada(~jespada@2800:a4:220c:dc00:fc3d:6c91:7dca:2577) jespada
2025-09-10 21:10:02 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 21:10:22 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-09-10 21:14:05 +0200 <EvanR> kqr, vector of unboxed int
2025-09-10 21:14:14 +0200 <EvanR> with space for every kind of card, if it's normal cards
2025-09-10 21:14:26 +0200 <EvanR> might not work for magic the gathering
2025-09-10 21:14:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 21:17:29 +0200 <__monty__> Not many card games with regular playing cards where you can have more than one of any given card.
2025-09-10 21:17:41 +0200fp(~Thunderbi@89-27-10-140.bb.dnainternet.fi) fp
2025-09-10 21:18:08 +0200 <__monty__> I wonder more about the case where you can try playing a card you don't have. Why does the UI even allow that?
2025-09-10 21:21:26 +0200 <monochrom> Dependently typed UIs are prophesized to solve that problem. >:)
2025-09-10 21:21:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 21:21:59 +0200 <int-e> monochrom: dependent types solve problems in production by making it impossible to write code ;-)
2025-09-10 21:26:29 +0200remedan(~remedan@193-179-60-135.customers.tmcz.cz) (Ping timeout: 244 seconds)
2025-09-10 21:26:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-10 21:28:19 +0200remedan(~remedan@78-80-80-28.customers.tmcz.cz) remedan
2025-09-10 21:36:18 +0200weary-traveler(~user@user/user363627) (Quit: Konversation terminated!)
2025-09-10 21:37:20 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 21:40:55 +0200karenw(~karenw@user/karenw) (Ping timeout: 258 seconds)
2025-09-10 21:41:14 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-09-10 21:44:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 21:46:10 +0200chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-09-10 21:46:29 +0200chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-09-10 21:50:09 +0200 <tomsmeding> kqr: it's a pity you have duplicates, otherwise (there being only 52 distinct cards in a normal deck) you could store a hand as a bitset in a single Int64. :)
2025-09-10 21:51:08 +0200 <tomsmeding> single CPU instruction for membership test, discarding and hand size!
2025-09-10 21:51:14 +0200target_i(~target_i@user/target-i/x-6023099) target_i
2025-09-10 21:51:49 +0200 <tomsmeding> okay maybe 3 instructions or so
2025-09-10 21:55:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 21:58:33 +0200Beowulf(florian@gabilgathol.bandrate.org) (Quit: = "")
2025-09-10 21:59:08 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) peterbecich
2025-09-10 22:00:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-10 22:00:27 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 248 seconds)
2025-09-10 22:00:58 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-10 22:07:49 +0200jespada(~jespada@2800:a4:220c:dc00:fc3d:6c91:7dca:2577) (Ping timeout: 244 seconds)
2025-09-10 22:08:05 +0200Beowulf(florian@gabilgathol.bandrate.org)
2025-09-10 22:11:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 22:16:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 22:17:43 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
2025-09-10 22:22:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 22:27:07 +0200peterbecich(~Thunderbi@syn-172-222-149-049.res.spectrum.com) (Ping timeout: 248 seconds)
2025-09-10 22:27:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-10 22:31:09 +0200pavonia(~user@user/siracusa) siracusa
2025-09-10 22:38:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 22:40:37 +0200sprotte24(~sprotte24@p5b039f5e.dip0.t-ipconnect.de)
2025-09-10 22:40:40 +0200 <probie> tomsmeding: it can be a single instruction if you're the one designing the CPU :p
2025-09-10 22:43:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-10 22:47:09 +0200fp(~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 260 seconds)
2025-09-10 22:53:00 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-09-10 22:53:08 +0200fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) fp
2025-09-10 22:54:08 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 22:59:05 +0200fp1(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) fp
2025-09-10 22:59:07 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 23:02:51 +0200fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 248 seconds)
2025-09-10 23:06:03 +0200fp1(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 248 seconds)
2025-09-10 23:07:14 +0200takuan(~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 244 seconds)
2025-09-10 23:10:00 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 23:12:28 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-09-10 23:14:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2025-09-10 23:25:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-10 23:27:48 +0200tromp(~textual@2001:1c00:3487:1b00:d00b:7608:aa49:1d61) (Quit: My iMac has gone to sleep. ZZZzzz…)