2025/04/11

2025-04-11 00:00:34 +0000 <EvanR> that's addCont
2025-04-11 00:01:05 +0000 <EvanR> but if you went the route of an interpreter for a free monad, you would "catch" there
2025-04-11 00:01:35 +0000 <EvanR> and >>= would still add another post processing step in that case as well
2025-04-11 00:02:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 00:04:33 +0000jespada(~jespada@r179-25-43-11.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds)
2025-04-11 00:08:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 00:10:12 +0000 <Guest87> Hmmm this is very cool
2025-04-11 00:10:33 +0000 <Guest87> EvanR, thank you so much for patiently letting me fix issues in my program and then talking through it
2025-04-11 00:10:59 +0000 <Guest87> I have ran into "Free Monads" before but this is the first time I see a use case, so I will just go and read about it
2025-04-11 00:18:35 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 00:23:18 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-11 00:25:52 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-04-11 00:30:12 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 264 seconds)
2025-04-11 00:30:46 +0000ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-04-11 00:33:59 +0000potatoespotatoes(~quassel@user/potatoespotatoes) ()
2025-04-11 00:34:22 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 00:35:42 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-11 00:36:40 +0000potatoespotatoes(~quassel@130.44.147.204)
2025-04-11 00:36:40 +0000potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-11 00:36:40 +0000potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-11 00:39:06 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 00:39:15 +0000potatoespotatoes(~quassel@user/potatoespotatoes) (Client Quit)
2025-04-11 00:39:17 +0000sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Ping timeout: 248 seconds)
2025-04-11 00:39:45 +0000potatoespotatoes(~quassel@130.44.147.204) potatoespotatoes
2025-04-11 00:39:45 +0000potatoespotatoes(~quassel@130.44.147.204) (Changing host)
2025-04-11 00:39:45 +0000potatoespotatoes(~quassel@user/potatoespotatoes) potatoespotatoes
2025-04-11 00:42:57 +0000sabathan2(~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr)
2025-04-11 00:50:21 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 00:57:20 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 00:57:21 +0000 <haskellbridge> <Bowuigi> lens-regex-pcre introduces a clever approach to implementing and extending structural regular expressions. Are there generalizations of this? Such that you can query parts of a structure and modify them based on that
2025-04-11 00:57:49 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 00:58:16 +0000otto_s(~user@p4ff278a2.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2025-04-11 00:58:54 +0000 <geekosaur> isn't that … lens?
2025-04-11 00:59:13 +0000 <haskellbridge> <Bowuigi> No no I mean, optics that check if there's a certain node inside a tree and allow you to modify the place where the query is ran rather than the node
2025-04-11 00:59:45 +0000otto_s(~user@p5de2fd33.dip0.t-ipconnect.de)
2025-04-11 01:01:53 +0000 <haskellbridge> <Bowuigi> "branch . without leaf" matching branches that do not have leaves as their inmediate substructures, for example
2025-04-11 01:02:26 +0000 <glguy> You can write that in regular lens
2025-04-11 01:02:29 +0000 <geekosaur> I think there are optics for that?
2025-04-11 01:03:03 +0000 <haskellbridge> <Bowuigi> I'd assume so yeah
2025-04-11 01:03:22 +0000 <glguy> you need to be careful about going and adding a leaf in that case where there wasn't one there before it you want to be able to use lens law reasoning
2025-04-11 01:08:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 01:08:17 +0000 <haskellbridge> <Bowuigi> Based on that warning I think that filtered is what I'm looking for
2025-04-11 01:09:17 +0000 <haskellbridge> <Bowuigi> Actually no, it's rewriteOf
2025-04-11 01:09:54 +0000xff0x(~xff0x@2405:6580:b080:900:1c0d:6c97:349e:6228) (Ping timeout: 252 seconds)
2025-04-11 01:10:02 +0000 <haskellbridge> <Bowuigi> Based on this example https://github.com/stevenfontanella/microlens/pull/119#issuecomment-496004851
2025-04-11 01:13:43 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 01:17:22 +0000acidjnk(~acidjnk@p200300d6e71c4f7444aa95b6f7c7abd1.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2025-04-11 01:24:00 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 01:26:35 +0000__jmcantrell__(~weechat@user/jmcantrell) jmcantrell
2025-04-11 01:26:35 +0000jmcantrellGuest8811
2025-04-11 01:26:35 +0000Guest8811(644f1bed9a@user/jmcantrell) (Killed (copper.libera.chat (Nickname regained by services)))
2025-04-11 01:26:35 +0000__jmcantrell__jmcantrell
2025-04-11 01:26:44 +0000jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2025-04-11 01:29:19 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 01:31:42 +0000Guest87(~Guest87@2620:72:0:1f18:7d2a:62e7:7a20:d79f) (Quit: Client closed)
2025-04-11 01:32:41 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Quit: Lost terminal)
2025-04-11 01:34:32 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-11 01:39:48 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 01:43:03 +0000OftenFaded(~OftenFade@user/tisktisk) OftenFaded
2025-04-11 01:44:55 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 01:55:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 02:00:30 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 02:05:35 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-04-11 02:11:21 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 02:16:19 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 02:20:04 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2025-04-11 02:21:58 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 02:22:26 +0000haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2025-04-11 02:23:00 +0000haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) hackager
2025-04-11 02:23:00 +0000ChanServ+v haskellbridge
2025-04-11 02:26:58 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 02:30:15 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2025-04-11 02:30:52 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: Ping timeout (120 seconds))
2025-04-11 02:31:13 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member) sciencentistguy
2025-04-11 02:32:43 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-11 02:33:57 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-11 02:34:08 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Client Quit)
2025-04-11 02:35:48 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-11 02:42:15 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 02:45:02 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 02:48:24 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-04-11 02:49:16 +0000roconnor(~quassel@rocq/roconnor) (Ping timeout: 276 seconds)
2025-04-11 02:49:19 +0000roconnor_(~quassel@rocq/roconnor) roconnor
2025-04-11 02:49:54 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 03:00:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 03:02:13 +0000Ranhir(~Ranhir@157.97.53.139) (Remote host closed the connection)
2025-04-11 03:04:24 +0000Ranhir(~Ranhir@157.97.53.139) Ranhir
2025-04-11 03:05:38 +0000j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-11 03:05:40 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 03:11:39 +0000j1n37(~j1n37@user/j1n37) j1n37
2025-04-11 03:16:36 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 03:21:21 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 03:22:21 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 03:32:24 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 03:32:48 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Quit: Lost terminal)
2025-04-11 03:34:36 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2025-04-11 03:37:58 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-11 03:43:13 +0000michalz(~michalz@185.246.207.205)
2025-04-11 03:47:51 +0000aforemny(~aforemny@2001:9e8:6cf4:300:5306:52f:8502:4ee0) aforemny
2025-04-11 03:48:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 03:49:48 +0000aforemny_(~aforemny@2001:9e8:6cd3:ed00:7f35:da5a:93ab:c3e3) (Ping timeout: 276 seconds)
2025-04-11 03:53:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 04:00:46 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 276 seconds)
2025-04-11 04:01:05 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-04-11 04:03:58 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 04:10:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-11 04:20:55 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-04-11 04:21:32 +0000tabaqui(~tabaqui@167.71.80.236) tabaqui
2025-04-11 04:22:00 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 04:27:25 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 04:37:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 04:42:44 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 04:44:58 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 04:50:10 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 04:52:04 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2025-04-11 04:57:52 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 05:00:44 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 05:04:23 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 05:05:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 05:09:20 +0000qeef(~qeef@138-169-143-94.cust.centrio.cz) qeef
2025-04-11 05:16:32 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 05:22:01 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 05:28:17 +0000forell(~forell@user/forell) (Ping timeout: 248 seconds)
2025-04-11 05:32:19 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 05:34:22 +0000qeef(~qeef@138-169-143-94.cust.centrio.cz) (Ping timeout: 276 seconds)
2025-04-11 05:35:38 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-11 05:37:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 05:40:03 +0000XZDX(~xzdx@user/XZDX) (Remote host closed the connection)
2025-04-11 05:41:05 +0000Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-04-11 05:41:34 +0000remexre_(~remexre@user/remexre) remexre
2025-04-11 05:41:41 +0000remexre(~remexre@user/remexre) (Ping timeout: 268 seconds)
2025-04-11 05:43:26 +0000Eoco(~ian@128.101.131.218) (Ping timeout: 265 seconds)
2025-04-11 05:45:13 +0000Eoco(~ian@128.101.131.218) Eoco
2025-04-11 05:46:43 +0000remexre_(~remexre@user/remexre) (Ping timeout: 276 seconds)
2025-04-11 05:47:47 +0000JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-04-11 05:48:07 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 05:50:12 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-04-11 05:55:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 05:58:25 +0000amadaluzia(~amadaluzi@2a00:23c7:ed8b:6701:6582:5675:67d:4956) (Ping timeout: 276 seconds)
2025-04-11 05:59:38 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-04-11 05:59:59 +0000polyphem(~rod@pd9fbfc2f.dip0.t-ipconnect.de) polyphem
2025-04-11 06:03:41 +0000amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-11 06:04:17 +0000amadaluzia(~amadaluzi@user/amadaluzia) (Remote host closed the connection)
2025-04-11 06:05:27 +0000sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-04-11 06:06:08 +0000remexre(~remexre@user/remexre) remexre
2025-04-11 06:06:10 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 06:06:57 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-11 06:07:00 +0000JuanDaughertyColinRobinson
2025-04-11 06:10:48 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-11 06:11:14 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2025-04-11 06:20:55 +0000ft(~ft@p508db594.dip0.t-ipconnect.de) (Quit: leaving)
2025-04-11 06:21:56 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 06:22:20 +0000jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.1)
2025-04-11 06:22:20 +0000jmcantrell_jmcantrell
2025-04-11 06:22:54 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 06:27:40 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 06:27:57 +0000pikajude(~jude@2001:19f0:ac01:373:5400:2ff:fe86:3274) (Quit: ZNC 1.8.2 - https://znc.in)
2025-04-11 06:28:17 +0000pikajude(~jude@2001:19f0:ac01:373:5400:2ff:fe86:3274) pikajude
2025-04-11 06:28:19 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 06:33:12 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 264 seconds)
2025-04-11 06:33:39 +0000chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-04-11 06:37:44 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 06:37:48 +0000Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection)
2025-04-11 06:40:10 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 06:41:58 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 276 seconds)
2025-04-11 06:42:44 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-11 06:43:56 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-04-11 06:45:49 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
2025-04-11 06:49:46 +0000Square(~Square4@user/square) (Ping timeout: 276 seconds)
2025-04-11 06:53:22 +0000tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 252 seconds)
2025-04-11 06:53:31 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 06:54:08 +0000acidjnk(~acidjnk@p200300d6e71c4f7444aa95b6f7c7abd1.dip0.t-ipconnect.de) acidjnk
2025-04-11 06:54:09 +0000tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-04-11 06:57:53 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 06:58:14 +0000j1n37-(~j1n37@user/j1n37) j1n37
2025-04-11 06:58:30 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 06:59:31 +0000j1n37(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-04-11 07:00:02 +0000caconym(~caconym@user/caconym) (Quit: bye)
2025-04-11 07:01:01 +0000caconym(~caconym@user/caconym) caconym
2025-04-11 07:02:32 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2025-04-11 07:02:50 +0000Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2025-04-11 07:07:48 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-11 07:08:54 +0000Googulator(~Googulato@2a01-036d-0106-211a-98f9-54d1-cd01-d0d3.pool6.digikabel.hu) (Ping timeout: 240 seconds)
2025-04-11 07:15:28 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 07:16:29 +0000vpan(~vpan@212.117.1.172)
2025-04-11 07:18:57 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2025-04-11 07:19:21 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-04-11 07:20:54 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
2025-04-11 07:22:06 +0000 <jackdk> Bowuigi I think you don't even have to write `subExprs` by hand - you could stock-derive `Data` and use `uniplate` or anyclass-derive `Plated` and use `plated`, or derive Generic and use `gplate`
2025-04-11 07:23:26 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 07:23:32 +0000__monty__(~toonn@user/toonn) toonn
2025-04-11 07:23:58 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 07:27:19 +0000j1n37(~j1n37@user/j1n37) j1n37
2025-04-11 07:27:52 +0000j1n37-(~j1n37@user/j1n37) (Ping timeout: 272 seconds)
2025-04-11 07:28:51 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2025-04-11 07:30:44 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-11 07:31:27 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37f95626b479c3d9ea.dip0.t-ipconnect.de) acidjnk
2025-04-11 07:31:47 +0000rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2025-04-11 07:32:20 +0000rvalue(~rvalue@user/rvalue) rvalue
2025-04-11 07:32:40 +0000acidjnk(~acidjnk@p200300d6e71c4f7444aa95b6f7c7abd1.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-04-11 07:35:03 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 07:39:33 +0000 <hellwolf> Short notice: Who wants to join a zoom call that discuss lineartypes at 2PM UTC today?
2025-04-11 07:40:38 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 07:41:29 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 07:42:10 +0000sayurc_(~sayurc@169.150.203.34) (Quit: Konversation terminated!)
2025-04-11 07:45:25 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 248 seconds)
2025-04-11 07:46:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-11 07:52:44 +0000ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-11 07:53:27 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2025-04-11 07:57:15 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 07:57:57 +0000mima_mima
2025-04-11 07:58:36 +0000marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-04-11 08:02:14 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 08:08:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 08:08:54 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-04-11 08:09:24 +0000ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-04-11 08:14:16 +0000forell(~forell@user/forell) forell
2025-04-11 08:14:21 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 08:15:23 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 08:17:02 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 08:17:19 +0000lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-04-11 08:20:16 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 08:22:43 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 08:26:02 +0000j1n37-(~j1n37@user/j1n37) j1n37
2025-04-11 08:26:03 +0000j1n37(~j1n37@user/j1n37) (Ping timeout: 252 seconds)
2025-04-11 08:31:03 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 08:32:03 +0000turlando(~turlando@user/turlando) ()
2025-04-11 08:32:51 +0000chele(~chele@user/chele) chele
2025-04-11 08:33:18 +0000califax(~califax@user/califx) (Read error: Connection reset by peer)
2025-04-11 08:33:18 +0000ChaiTRex(~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer)
2025-04-11 08:33:18 +0000gmg(~user@user/gehmehgeh) (Read error: Connection reset by peer)
2025-04-11 08:33:18 +0000chiselfuse(~chiselfus@user/chiselfuse) (Read error: Connection reset by peer)
2025-04-11 08:33:18 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2025-04-11 08:33:30 +0000chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-04-11 08:33:37 +0000califax(~califax@user/califx) califx
2025-04-11 08:33:41 +0000ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2025-04-11 08:33:56 +0000chiselfuse(~chiselfus@user/chiselfuse) chiselfuse
2025-04-11 08:33:59 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-11 08:34:00 +0000turlando(~turlando@user/turlando) turlando
2025-04-11 08:35:35 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2025-04-11 08:36:03 +0000Googulator(~Googulato@81.183.235.203)
2025-04-11 08:36:16 +0000Igloo(~ian@2001:8b0:645c::210) (Ping timeout: 272 seconds)
2025-04-11 08:36:22 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 08:40:44 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 08:42:23 +0000turlando(~turlando@user/turlando) ()
2025-04-11 08:45:23 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2025-04-11 08:46:40 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 08:47:59 +0000Igloo(~ian@81.2.99.210) Igfoo
2025-04-11 08:52:06 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-11 08:55:52 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37f95626b479c3d9ea.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-04-11 09:02:26 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 09:07:38 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) lisbeths
2025-04-11 09:13:37 +0000sprotte24(~sprotte24@p200300d16f1c5b0064420e97db58ee64.dip0.t-ipconnect.de)
2025-04-11 09:13:54 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 09:14:24 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 09:19:55 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 09:20:59 +0000lyxia(~lyxia@poisson.chat) (Quit: WeeChat 4.5.1)
2025-04-11 09:25:33 +0000merijn(~merijn@62.45.137.128) merijn
2025-04-11 09:26:05 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 09:30:28 +0000merijn(~merijn@62.45.137.128) (Ping timeout: 268 seconds)
2025-04-11 09:30:58 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 09:31:03 +0000hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds)
2025-04-11 09:35:53 +0000hattckory(~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca)
2025-04-11 09:40:43 +0000ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
2025-04-11 09:41:15 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 09:41:57 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 252 seconds)
2025-04-11 09:42:02 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) tcard
2025-04-11 09:43:02 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 09:44:39 +0000Guest84(~Guest99@194.89.25.85)
2025-04-11 09:44:43 +0000lyxia(~lyxia@poisson.chat)
2025-04-11 09:46:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 09:51:52 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2025-04-11 09:57:03 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 10:00:09 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-11 10:01:31 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 276 seconds)
2025-04-11 10:02:15 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 10:04:15 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 10:05:40 +0000ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-11 10:10:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 10:11:38 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2025-04-11 10:15:49 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 10:24:51 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 10:26:27 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 10:31:15 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-11 10:31:18 +0000Googulator(~Googulato@81.183.235.203) (Ping timeout: 240 seconds)
2025-04-11 10:36:49 +0000roconnor_roconnor
2025-04-11 10:37:18 +0000Guest84(~Guest99@194.89.25.85) (Ping timeout: 240 seconds)
2025-04-11 10:39:00 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
2025-04-11 10:40:36 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 10:42:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 10:46:22 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 10:49:14 +0000sprotte24(~sprotte24@p200300d16f1c5b0064420e97db58ee64.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-11 10:49:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 10:51:00 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 276 seconds)
2025-04-11 10:51:05 +0000comonad(~comonad@p200300d0274ac2004a3b1ffc163e1801.dip0.t-ipconnect.de) (Quit: WeeChat 4.6.0-dev)
2025-04-11 10:56:42 +0000Googulator(~Googulato@81.183.235.203)
2025-04-11 10:57:12 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2025-04-11 10:58:21 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 11:00:17 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 11:02:19 +0000jespada(~jespada@r167-61-120-190.dialup.adsl.anteldata.net.uy) jespada
2025-04-11 11:05:44 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-11 11:11:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 11:16:56 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-11 11:27:26 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 11:34:08 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-11 11:37:31 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-04-11 11:41:43 +0000JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-04-11 11:45:28 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 11:45:36 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 276 seconds)
2025-04-11 11:46:32 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2025-04-11 11:50:22 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 12:01:14 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 12:06:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 12:12:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 12:13:54 +0000JuanDaughertyColinRobinson
2025-04-11 12:17:30 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 12:17:52 +0000forell(~forell@user/forell) (Ping timeout: 252 seconds)
2025-04-11 12:18:33 +0000Smiles(uid551636@id-551636.lymington.irccloud.com) Smiles
2025-04-11 12:22:10 +0000 <haskellbridge> <thirdofmay18081814goya> data Pred a where
2025-04-11 12:22:10 +0000 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/IsqfhephrLUQZbBWOtaJJgoT/AzLVmVwqQEE (13 lines)
2025-04-11 12:22:26 +0000 <haskellbridge> <thirdofmay18081814goya> anyone have an idea what's the proper way to implement a class like this?
2025-04-11 12:24:30 +0000 <haskellbridge> <thirdofmay18081814goya> the idea is that we declare at the typelevel that a particular constant should be available ("predfuncs") in scope
2025-04-11 12:25:04 +0000xff0x(~xff0x@2405:6580:b080:900:46de:d563:2315:dd7b)
2025-04-11 12:28:27 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 12:32:09 +0000jespada(~jespada@r167-61-120-190.dialup.adsl.anteldata.net.uy) (Ping timeout: 260 seconds)
2025-04-11 12:33:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-11 12:35:43 +0000jespada(~jespada@r179-25-2-204.dialup.adsl.anteldata.net.uy) jespada
2025-04-11 12:36:19 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-04-11 12:38:31 +0000 <haskellbridge> <thirdofmay18081814goya> "instance WithPreds [a] (Nonempty :' []) where predfuncs = [assoc Nonempty]" worked
2025-04-11 12:41:56 +0000 <haskellbridge> <thirdofmay18081814goya> hm, ideally I'd want an instance "instance WithPreds [a] preds where predfuncs = map assoc preds"
2025-04-11 12:42:23 +0000 <haskellbridge> <thirdofmay18081814goya> using "preds" here makes ghc report that it's an illegal term-level use of type variable "preds"
2025-04-11 12:44:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 12:49:52 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 12:51:10 +0000weary-traveler(~user@user/user363627) user363627
2025-04-11 12:57:56 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 13:02:53 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-11 13:13:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 13:20:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 13:23:41 +0000amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-11 13:23:43 +0000ft(~ft@p508db594.dip0.t-ipconnect.de) ft
2025-04-11 13:23:59 +0000ColinRobinsonJuanDaugherty
2025-04-11 13:31:42 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 13:32:51 +0000jespada(~jespada@r179-25-2-204.dialup.adsl.anteldata.net.uy) (Ping timeout: 276 seconds)
2025-04-11 13:35:16 +0000jespada(~jespada@r179-25-2-204.dialup.adsl.anteldata.net.uy) jespada
2025-04-11 13:35:23 +0000vpan(~vpan@212.117.1.172) (Quit: Leaving.)
2025-04-11 13:37:19 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 13:42:31 +0000JuanDaughertyColinRobinson
2025-04-11 13:45:23 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-04-11 13:46:10 +0000L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-11 13:47:30 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 13:51:24 +0000ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-04-11 13:52:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-11 14:00:57 +0000infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2025-04-11 14:01:06 +0000hiecaq(~hiecaq@user/hiecaq) hiecaq
2025-04-11 14:02:14 +0000infinity0(~infinity0@pwned.gg) infinity0
2025-04-11 14:03:16 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 14:05:17 +0000rbdr(~rbdr@dynamic-002-245-152-215.2.245.pool.telefonica.de) rbdr
2025-04-11 14:06:41 +0000rbdr(~rbdr@dynamic-002-245-152-215.2.245.pool.telefonica.de) (Client Quit)
2025-04-11 14:08:23 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37f95626b479c3d9ea.dip0.t-ipconnect.de) acidjnk
2025-04-11 14:08:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 14:10:58 +0000hiecaq(~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92))
2025-04-11 14:12:06 +0000hiecaq(~hiecaq@user/hiecaq) hiecaq
2025-04-11 14:14:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 14:20:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 14:26:08 +0000euleritian(~euleritia@dynamic-176-006-143-216.176.6.pool.telefonica.de)
2025-04-11 14:27:38 +0000Smiles(uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-04-11 14:37:35 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2025-04-11 14:37:36 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-04-11 14:44:41 +0000lambdabot(~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
2025-04-11 14:46:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 14:54:01 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 14:57:57 +0000euleritian(~euleritia@dynamic-176-006-143-216.176.6.pool.telefonica.de) (Ping timeout: 248 seconds)
2025-04-11 14:58:00 +0000chele(~chele@user/chele) (Remote host closed the connection)
2025-04-11 14:58:29 +0000euleritian(~euleritia@95.90.214.149)
2025-04-11 15:00:07 +0000 <EvanR> instance WithPreds [a] preds where predfuncs = map assoc preds indeed looks like you tried to use a type variable from the instance head (another universe) at the value level
2025-04-11 15:00:13 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) lisbeths
2025-04-11 15:00:31 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37f95626b479c3d9ea.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-04-11 15:01:02 +0000rbdr(~rbdr@dynamic-002-245-152-215.2.245.pool.telefonica.de) rbdr
2025-04-11 15:04:17 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 15:05:19 +0000 <EvanR> I guess you want to find a way to reflect the type level list of things to the value level
2025-04-11 15:05:57 +0000 <EvanR> usually there's a class for that, or you make one
2025-04-11 15:09:00 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-11 15:15:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 15:16:38 +0000 <haskellbridge> <thirdofmay18081814goya> makes sense, ty!
2025-04-11 15:20:54 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 15:20:56 +0000Square2(~Square@user/square) Square
2025-04-11 15:21:07 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2025-04-11 15:24:03 +0000Square(~Square4@user/square) Square
2025-04-11 15:26:43 +0000sprotte24(~sprotte24@p200300d16f1c5b003c76b51cf90902ef.dip0.t-ipconnect.de)
2025-04-11 15:31:27 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 15:36:27 +0000notdabs(~Owner@2600:1700:69cf:9000:5926:6835:ef1d:9af3)
2025-04-11 15:36:29 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 15:38:34 +0000wbrawner(~wbrawner@129.146.103.146) wbrawner
2025-04-11 15:39:18 +0000Googulator(~Googulato@81.183.235.203) (Ping timeout: 240 seconds)
2025-04-11 15:47:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 15:52:31 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 15:54:43 +0000sayurc(~sayurc@169.150.203.34) sayurc
2025-04-11 15:56:25 +0000lambdabot(~lambdabot@silicon.int-e.eu)
2025-04-11 15:56:25 +0000lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2025-04-11 15:56:25 +0000lambdabot(~lambdabot@haskell/bot/lambdabot) lambdabot
2025-04-11 15:56:25 +0000ChanServ+v lambdabot
2025-04-11 16:00:15 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2025-04-11 16:03:03 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 16:07:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 16:07:46 +0000sprotte24(~sprotte24@p200300d16f1c5b003c76b51cf90902ef.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-11 16:08:18 +0000forell(~forell@user/forell) forell
2025-04-11 16:09:19 +0000poxel(~poxel@user/poxel) (Quit: WeeChat 4.6.0)
2025-04-11 16:11:44 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37f95626b479c3d9ea.dip0.t-ipconnect.de)
2025-04-11 16:16:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 16:21:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 16:26:45 +0000euleritian(~euleritia@95.90.214.149) (Ping timeout: 252 seconds)
2025-04-11 16:29:40 +0000euleritian(~euleritia@dynamic-176-006-132-211.176.6.pool.telefonica.de)
2025-04-11 16:32:01 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 16:34:22 +0000sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-04-11 16:37:22 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 16:41:36 +0000j1n37(~j1n37@user/j1n37) j1n37
2025-04-11 16:43:13 +0000j1n37-(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-04-11 16:47:48 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 16:49:18 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37f95626b479c3d9ea.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-04-11 16:50:27 +0000ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds)
2025-04-11 16:51:22 +0000Googulator(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-11 16:52:20 +0000euphores(~SASL_euph@user/euphores) euphores
2025-04-11 16:52:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-11 16:53:42 +0000lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 276 seconds)
2025-04-11 16:54:01 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2025-04-11 16:57:48 +0000machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-11 17:00:57 +0000target_i(~target_i@user/target-i/x-6023099) target_i
2025-04-11 17:02:09 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37fdfe54bbfe31434c.dip0.t-ipconnect.de) acidjnk
2025-04-11 17:03:35 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 17:04:46 +0000hiecaq(~hiecaq@user/hiecaq) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.92))
2025-04-11 17:06:06 +0000 <bwe> How can I let the functions a variant of `TheseWriter` depending on which error has been collected on the way? https://paste.tomsmeding.com/tfhujvff
2025-04-11 17:06:51 +0000sprotte24(~sprotte24@p200300d16f1c5b003c76b51cf90902ef.dip0.t-ipconnect.de)
2025-04-11 17:07:25 +0000 <EvanR> Writer can't inspect what was written already
2025-04-11 17:07:36 +0000 <EvanR> but State can
2025-04-11 17:08:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-11 17:09:02 +0000 <bwe> …it appears to be as simple as going over the collected list to decide which `TheseWriter` variant should be returned. However, I am stuck at `calc3` because there no return value `Int` can be constructed.
2025-04-11 17:09:19 +0000 <bwe> EvanR: uuh, that sounds like this might be my initiation ritual to State.
2025-04-11 17:12:57 +0000 <EvanR> Writer is "write only"
2025-04-11 17:15:09 +0000 <tomsmeding> (that's why it's called "Writer")
2025-04-11 17:15:56 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-11 17:16:16 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 17:17:18 +0000 <EvanR> smh "meaningful names" again
2025-04-11 17:17:36 +0000 <EvanR> shoulda just called it the Analysis monad
2025-04-11 17:20:55 +0000 <ski> an object in the category of commutative groups is always commutative. an object in the category of groups might or might not be commutative. working only with the abstract interface of "group", you cannot assume commutativity (and also cannot assume there's an example of non-commutativity)
2025-04-11 17:20:55 +0000CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 276 seconds)
2025-04-11 17:21:10 +0000 <ski> ditto, for instances of `MonadWriter' (barring knowing anything more about the instance, so that you're "abstract"), you can only assume the operations in the interface. so, can assume writing, cannot assume reading what's been written earlier
2025-04-11 17:21:24 +0000 <ski> @type censor
2025-04-11 17:21:25 +0000 <lambdabot> MonadWriter w m => (w -> w) -> m a -> m a
2025-04-11 17:21:27 +0000 <ski> @type pass
2025-04-11 17:21:28 +0000 <lambdabot> MonadWriter w m => m (a, w -> w) -> m a
2025-04-11 17:21:34 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 17:24:05 +0000 <ski> (and then `Writer w' is basically the simplest possible (generic, in `w') instance of `MonadWriter')
2025-04-11 17:26:53 +0000euleritian(~euleritia@dynamic-176-006-132-211.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-11 17:27:10 +0000prasad(~Thunderbi@c-73-246-138-70.hsd1.in.comcast.net)
2025-04-11 17:27:12 +0000euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-11 17:28:13 +0000 <bwe> EvanR: WriteButNotRead would be more explicit for the uninitiated:)
2025-04-11 17:28:35 +0000wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-04-11 17:29:12 +0000 <EvanR> it's true, PHP has this weird ability to inspect anything that it's outputting to the output stream
2025-04-11 17:29:30 +0000 <EvanR> which has been abused for some seriously silly things
2025-04-11 17:29:39 +0000 <ski> why not `WriteButNotReadAndNotJumpEitherNorAbort' ?
2025-04-11 17:30:29 +0000 <EvanR> there's also the Reader which you usually run into before / at the same time as Writer
2025-04-11 17:30:31 +0000 <ski> there's a lot of stuff that `Writer' doesn't do
2025-04-11 17:30:48 +0000 <EvanR> you wouldn't expect Reader to be able to write
2025-04-11 17:31:49 +0000skiprefers the names "input"/"environment"/"context"/"distribution" and "output"/"logging"/"summarizing" over "reader" and "writer", anyway ..
2025-04-11 17:32:03 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 17:32:37 +0000 <ski> mm. Unix allows write-only files, i suppose
2025-04-11 17:33:15 +0000 <EvanR> "dependency injection"
2025-04-11 17:33:33 +0000 <EvanR> call it that and haskell will hit the big time
2025-04-11 17:33:39 +0000 <ski> how does it inspect it, btw ?
2025-04-11 17:34:41 +0000ski. o O ( "Avoid success at all costs." -- Haskell motto )
2025-04-11 17:35:09 +0000 <ski> (was it Peyton Jones ? Marlow ?)
2025-04-11 17:35:17 +0000 <EvanR> PHP? you can read the output stream and alter it before it's "really" output from anyplace in the code
2025-04-11 17:35:39 +0000 <ski> as in read a buffer ?
2025-04-11 17:36:02 +0000 <ski> or as in dynamically replacing the current output stream, for a given block of code, nestedly ?
2025-04-11 17:36:56 +0000 <ski> (Scheme does the latter. and the old Edinburgh-style I/O of Prolog also does that)
2025-04-11 17:37:10 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 17:37:23 +0000 <EvanR> https://www.php.net/manual/en/outcontrol.output-buffering.php
2025-04-11 17:37:55 +0000 <EvanR> at some point the output buffer was used like a generic communication channel between components it seems xD
2025-04-11 17:39:09 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 17:40:57 +0000 <ski> (with-output-to-string (lambda () (display (list 2 3 5 7)))) ; => "(2 3 5 7)"
2025-04-11 17:42:18 +0000 <EvanR> that looks more sane than the PHP version
2025-04-11 17:42:24 +0000 <EvanR> output redirect
2025-04-11 17:43:20 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-04-11 17:43:27 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-11 17:43:51 +0000 <ski> (`display' is kinda like `print'. a Haskell version of `with-output-to-string' might be `withOutputToString :: IO a -> IO String'. note how this established a dynamic extent, over which the output is redirected, and outside of this extent (say later, or in other threads), output is still sent to the usual place)
2025-04-11 17:43:53 +0000L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-11 17:45:17 +0000 <EvanR> what about an inner block which unredirected the output
2025-04-11 17:45:26 +0000ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-11 17:45:38 +0000 <ski> one would have to decide whether only the `Handle'-less operations should be affected, or also if you send explicitly to `stdout'
2025-04-11 17:45:52 +0000 <ski> how would it do that ?
2025-04-11 17:46:12 +0000 <ski> it could redirect back to the original `Handle', possibly
2025-04-11 17:46:34 +0000 <EvanR> (with-output-string (lambda () (without-output-to-stdout (lambda () (display (list 2 3 5 7))))))
2025-04-11 17:46:52 +0000 <ski> or, i suppose one might allow some kind of "temporarily pop off the top output stream from a stack". but would there be any good reason for wanting to support this ?
2025-04-11 17:47:25 +0000 <EvanR> s/without/with/
2025-04-11 17:47:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 17:50:13 +0000 <ski> checking Racket (which was where i tested this), i don't see an `with-output-to-port' ("port" is basically the Scheme equivalent of `Handle'). i do see `with-output-to-file', which takes a file path
2025-04-11 17:50:45 +0000 <EvanR> hah... so i wonder what happens if you nest these dynamic extents
2025-04-11 17:51:02 +0000 <ski> what you'd expect
2025-04-11 17:51:12 +0000 <EvanR> part of the input won't appear in the string
2025-04-11 17:51:20 +0000 <EvanR> part of the output won't appear in the string
2025-04-11 17:51:30 +0000 <ski> yep
2025-04-11 17:51:35 +0000 <ski> as intended
2025-04-11 17:51:48 +0000 <EvanR> with-output-to-dev-null
2025-04-11 17:52:02 +0000 <ski> it's similar to dynamic scoping of variables. or `local' in `MonadReader'
2025-04-11 17:52:33 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 17:55:06 +0000 <ski> imagine `ReaderT (IORef Handle) IO', and looking up the current `Handle' when you do your basic I/O operations. and your "withIOHandle :: Handle -> ReaderT (IORef Handle) IO a -> ReaderT (IORef Handle) IO a' operation sets the ref, executes the action, and then sets back to the old handle (this would ignore multiple threads, though)
2025-04-11 17:57:34 +0000 <ski> (or, i guess, using a top-level `IORef', instead of `ReaderT', if you prefer ..)
2025-04-11 17:58:17 +0000 <EvanR> provocative idea
2025-04-11 17:59:55 +0000 <ski> not really that much, imho
2025-04-11 18:00:11 +0000 <ski> i suppose it depends on perspective
2025-04-11 18:00:23 +0000 <ski> but it would make things more composable
2025-04-11 18:00:35 +0000 <EvanR> globals are usually frowned upon xD
2025-04-11 18:00:42 +0000 <ski> being able to run an action more like it was a separate process
2025-04-11 18:00:56 +0000 <ski> (without actually having to spawn a separate process)
2025-04-11 18:01:23 +0000 <EvanR> otoh running an IO action with a custom set of "global" resources of all sorts, like the output handle, the RNG, etc
2025-04-11 18:01:36 +0000 <monochrom> stdin/out/err and FDs 0,1,2 have always been global variables (or worse).
2025-04-11 18:01:45 +0000 <ski> there's already stuff like
2025-04-11 18:01:47 +0000 <ski> @type System.Posix.IO.dupTo
2025-04-11 18:01:48 +0000 <lambdabot> System.Posix.Types.Fd -> System.Posix.Types.Fd -> IO System.Posix.Types.Fd
2025-04-11 18:01:48 +0000 <ski> yep
2025-04-11 18:02:00 +0000 <EvanR> the errno
2025-04-11 18:02:20 +0000 <EvanR> the FP rounding mode
2025-04-11 18:02:50 +0000 <monochrom> I actually gave my students the unix assignment of recursive stdin/out redirection.
2025-04-11 18:03:02 +0000 <ski> yes. those are generally bad for composability
2025-04-11 18:03:38 +0000 <monochrom> https://www.cs.utoronto.ca/~trebla/CSCB09-latest/a3/
2025-04-11 18:03:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 18:03:49 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2025-04-11 18:07:11 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net)
2025-04-11 18:08:17 +0000krei-se-(~krei-se@p200300f1cfff4b89da9ef3fffe7fdac8.dip0.t-ipconnect.de) (Quit: ZNC 1.9.1 - https://znc.in)
2025-04-11 18:08:18 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-11 18:13:49 +0000krei-se(~krei-se@p50829a06.dip0.t-ipconnect.de) krei-se
2025-04-11 18:15:19 +0000euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2025-04-11 18:16:12 +0000euleritian(~euleritia@dynamic-176-006-132-211.176.6.pool.telefonica.de)
2025-04-11 18:16:38 +0000inca(~inca@pool-96-255-212-224.washdc.fios.verizon.net) (Ping timeout: 245 seconds)
2025-04-11 18:17:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 18:21:22 +0000acidjnk_new(~acidjnk@p200300d6e71c4f37fdfe54bbfe31434c.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-04-11 18:22:01 +0000jespada(~jespada@r179-25-2-204.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-04-11 18:22:54 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 18:33:26 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 18:38:28 +0000euleritian(~euleritia@dynamic-176-006-132-211.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-11 18:38:47 +0000euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-11 18:39:44 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-04-11 18:40:15 +0000L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-11 18:40:52 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 18:45:52 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-04-11 18:46:06 +0000L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-11 18:47:01 +0000hololeap(~quassel@user/hololeap) (Quit: Bye)
2025-04-11 18:47:40 +0000rbdr(~rbdr@dynamic-002-245-152-215.2.245.pool.telefonica.de) (Quit: WeeChat 4.6.0)
2025-04-11 18:48:18 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-04-11 18:48:32 +0000rbdr(~rbdr@dynamic-002-245-152-215.2.245.pool.telefonica.de) rbdr
2025-04-11 18:49:07 +0000hololeap(~quassel@user/hololeap) hololeap
2025-04-11 18:51:28 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 18:52:58 +0000jespada(~jespada@r179-25-2-204.dialup.adsl.anteldata.net.uy) jespada
2025-04-11 18:55:37 +0000sayurc_(~sayurc@177.136.41.195) sayurc
2025-04-11 18:55:48 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 18:55:49 +0000sayurc(~sayurc@169.150.203.34) (Ping timeout: 276 seconds)
2025-04-11 18:58:27 +0000j1n37-(~j1n37@user/j1n37) j1n37
2025-04-11 18:59:11 +0000ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-11 18:59:43 +0000j1n37(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-04-11 19:00:06 +0000caconym(~caconym@user/caconym) (Quit: bye)
2025-04-11 19:00:48 +0000caconym(~caconym@user/caconym) caconym
2025-04-11 19:00:58 +0000acidjnk_new(~acidjnk@p200300d6e71c4f3760e43f0ee11d5618.dip0.t-ipconnect.de)
2025-04-11 19:01:55 +0000ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2025-04-11 19:01:55 +0000ljdarj1ljdarj
2025-04-11 19:06:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 19:11:32 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-11 19:17:16 +0000sayurc_(~sayurc@177.136.41.195) (Ping timeout: 276 seconds)
2025-04-11 19:17:17 +0000sayurc(~sayurc@169.150.203.34) sayurc
2025-04-11 19:18:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 19:20:00 +0000a_fantom(~fantom@2.219.56.221)
2025-04-11 19:20:06 +0000fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-11 19:21:32 +0000__jmcantrell__(~weechat@user/jmcantrell) jmcantrell
2025-04-11 19:21:33 +0000jmcantrell(644f1bed9a@user/jmcantrell) (Killed (tungsten.libera.chat (Nickname regained by services)))
2025-04-11 19:21:33 +0000__jmcantrell__jmcantrell
2025-04-11 19:21:42 +0000jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2025-04-11 19:23:22 +0000fantom(~fantom@2.219.56.221)
2025-04-11 19:23:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 19:24:01 +0000sayurc_(~sayurc@177.136.41.195) sayurc
2025-04-11 19:24:25 +0000sayurc(~sayurc@169.150.203.34) (Ping timeout: 276 seconds)
2025-04-11 19:24:45 +0000a_fantom(~fantom@2.219.56.221) (Ping timeout: 244 seconds)
2025-04-11 19:26:02 +0000Googulator(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
2025-04-11 19:26:18 +0000Googulator(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-11 19:26:58 +0000pavonia(~user@user/siracusa) siracusa
2025-04-11 19:27:04 +0000j1n37(~j1n37@user/j1n37) j1n37
2025-04-11 19:27:15 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-04-11 19:28:19 +0000j1n37-(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-04-11 19:34:25 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 19:37:46 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2025-04-11 19:39:06 +0000Owner_(~Owner@2600:1700:69cf:9000:a8ba:1089:2e3e:b3d1)
2025-04-11 19:39:21 +0000jmcantrell(~weechat@user/jmcantrell) (Quit: WeeChat 4.6.1)
2025-04-11 19:39:21 +0000jmcantrell_jmcantrell
2025-04-11 19:40:01 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 19:42:04 +0000notdabs(~Owner@2600:1700:69cf:9000:5926:6835:ef1d:9af3) (Ping timeout: 260 seconds)
2025-04-11 19:44:56 +0000euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2025-04-11 19:45:30 +0000euleritian(~euleritia@95.90.214.149)
2025-04-11 19:49:09 +0000__jmcantrell__(~weechat@user/jmcantrell) jmcantrell
2025-04-11 19:49:13 +0000jmcantrellGuest8428
2025-04-11 19:49:13 +0000Guest8428(644f1bed9a@user/jmcantrell) (Killed (silver.libera.chat (Nickname regained by services)))
2025-04-11 19:49:13 +0000__jmcantrell__jmcantrell
2025-04-11 19:49:26 +0000jmcantrell_(644f1bed9a@user/jmcantrell) jmcantrell
2025-04-11 19:50:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 19:52:02 +0000Owner_(~Owner@2600:1700:69cf:9000:a8ba:1089:2e3e:b3d1) (Quit: Leaving)
2025-04-11 19:52:19 +0000notdabs(~Owner@2600:1700:69cf:9000:a8ba:1089:2e3e:b3d1)
2025-04-11 19:55:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 19:56:46 +0000sayurc(~sayurc@169.150.203.34) sayurc
2025-04-11 19:56:47 +0000sayurc_(~sayurc@177.136.41.195) (Ping timeout: 244 seconds)
2025-04-11 19:58:30 +0000acidjnk_new(~acidjnk@p200300d6e71c4f3760e43f0ee11d5618.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-04-11 19:58:44 +0000acidjnk_new(~acidjnk@p200300d6e71c4f3781d551119ad8c4a9.dip0.t-ipconnect.de) acidjnk
2025-04-11 19:59:25 +0000rvalue-(~rvalue@user/rvalue) rvalue
2025-04-11 20:00:23 +0000rvalue(~rvalue@user/rvalue) (Ping timeout: 265 seconds)
2025-04-11 20:02:19 +0000tromp(~textual@2001:1c00:3487:1b00:d08a:2428:1bec:2dd5)
2025-04-11 20:06:00 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 20:08:10 +0000rvalue-rvalue
2025-04-11 20:09:22 +0000vanishingideal(~vanishing@user/vanishingideal) (Remote host closed the connection)
2025-04-11 20:10:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 20:19:38 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 20:23:05 +0000cheater(~Username@user/cheater) cheater
2025-04-11 20:24:08 +0000rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-15-174-95-4-83.dsl.bell.ca) rekahsoft
2025-04-11 20:27:28 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 20:28:18 +0000michalz(~michalz@185.246.207.205) (Remote host closed the connection)
2025-04-11 20:37:42 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 20:42:02 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 20:43:35 +0000 <EvanR> in classic parser with external interface String -> Either Error Expr what's probably happening is a big expression is built up and you can only access it after it is known there was no error somewhere (result finally evaluates to Right something)
2025-04-11 20:44:14 +0000 <EvanR> but if it is the case that the likelihood of an error is very low, and you want to start processing the Expr lazily
2025-04-11 20:44:45 +0000 <EvanR> while taking some big performance trade off if there really is an error
2025-04-11 20:45:09 +0000 <EvanR> is there a type for that
2025-04-11 20:45:34 +0000 <tomsmeding> IO, and throw an IO exception (the error case is actually quite fast here)
2025-04-11 20:46:12 +0000 <EvanR> IO... lazily... huh
2025-04-11 20:46:14 +0000 <tomsmeding> ah no, I'm misremembering: it was using `String -> Expr` and throwing `error` on an error, then catching that in IO
2025-04-11 20:48:02 +0000 <EvanR> ok that sounds pretty good but could you somehow do it without IO
2025-04-11 20:48:12 +0000 <tomsmeding> you cannot catch asynchronous exceptions without IO, so no
2025-04-11 20:48:52 +0000 <EvanR> I seem to remember some suggestion from ski a million years ago ... like ... put the processing within the parser or something
2025-04-11 20:49:21 +0000 <tomsmeding> as in, instead of parsing an arithmetic expression, parse the evaluation of that expression?
2025-04-11 20:49:59 +0000 <tomsmeding> I've seen students do that when told to write a parser that just produces a syntax tree (their parser only ever produced the AST node for a literal number -- the evaluated expression)
2025-04-11 20:50:16 +0000 <EvanR> arithmetic might be a long shot because of reasons
2025-04-11 20:50:38 +0000 <EvanR> but something that could be done lazily
2025-04-11 20:51:04 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-04-11 20:51:11 +0000 <EvanR> like size of expression
2025-04-11 20:51:13 +0000 <EvanR> or something
2025-04-11 20:51:14 +0000 <tomsmeding> if you put the processing inside the parser, you don't get automatic laziness -- you are instead forced to manually compute a little part of the result each time a little part of the expression becomes available
2025-04-11 20:52:02 +0000 <EvanR> or, an unparsing (e.g. in another language, assuming the languages would allow it)
2025-04-11 20:52:46 +0000 <EvanR> collapsing an expression incrementally, or streaming something generated from the expression could both benefit from starting sooner
2025-04-11 20:53:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 20:53:31 +0000 <tomsmeding> I don't think you're going to get any automatic laziness here
2025-04-11 20:53:44 +0000 <EvanR> what do you mean by automatic
2025-04-11 20:54:12 +0000ystael(~ystael@user/ystael) (Ping timeout: 276 seconds)
2025-04-11 20:54:13 +0000 <tomsmeding> in that you write a function that computes e.g. the size of an expression as if the whole expression is already evaluated, and then you do the "magic" of stuffing it inside the parser, and it's somehow computed lazily
2025-04-11 20:55:03 +0000 <monochrom> I don't know how to do: be incremental and fast when there will be no error in the future, but correct (gives Left error) and OK to be slow when there will be an error in the future. Basically incremental iff no access to future.
2025-04-11 20:55:11 +0000 <EvanR> each step of the parser could bang pattern the accumulator in that case
2025-04-11 20:55:11 +0000 <tomsmeding> if you can write your function as a fold (as in catamorphism), then you can replace expression constructors in your parser by the algebra of that fold and get "lazy" computation of your result
2025-04-11 20:55:14 +0000 <monochrom> But I know two options.
2025-04-11 20:55:17 +0000 <tomsmeding> but you have to do the expression as a fold manually
2025-04-11 20:55:55 +0000 <tomsmeding> EvanR: which accumulator? If you've just written a function that computes the final result, the only thing you can force is that final result -- which you can't, halway during parsing
2025-04-11 20:56:00 +0000 <tomsmeding> *halfway
2025-04-11 20:56:01 +0000 <EvanR> well, I don't think I was even thinking about a distinction between "automatic and manual"
2025-04-11 20:56:18 +0000 <EvanR> just not building an entire expression before starting the next stage
2025-04-11 20:56:18 +0000 <tomsmeding> and if you don't force anything, nothing will happen, so no streaming will happen
2025-04-11 20:56:31 +0000 <EvanR> well you're always forcing something somewhere
2025-04-11 20:56:43 +0000 <monochrom> 1. Assume no syntax error. But if you do detect a syntax error, use error, don't use Left. Then it is easier to be incremental (still requires clever coding).
2025-04-11 20:56:53 +0000 <tomsmeding> what I'm saying is: yes you can achieve what you want by putting the computation inside the parser, but it's not a magic wand: you'll have to do work to rewrite your computation to fit a very specific form for that to work
2025-04-11 20:57:05 +0000 <tomsmeding> and some computations cannot be rewritten in that special form at all
2025-04-11 20:57:20 +0000 <tomsmeding> (many, actually)
2025-04-11 20:57:39 +0000 <EvanR> not really looking for magic just existence xD
2025-04-11 20:57:40 +0000 <monochrom> 2. Do what SAX did (remember those?): Use ParserT (Cont r) so you can yield nodes/subtrees incrementally ASAP.
2025-04-11 20:57:48 +0000 <EvanR> SAX?
2025-04-11 20:57:54 +0000 <tomsmeding> EvanR: it doesn't even always exist, only if your computation can be written as a fold
2025-04-11 20:58:03 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-11 20:58:13 +0000 <tomsmeding> monochrom: SAX is "emit events for each constructor parsed"?
2025-04-11 20:58:16 +0000 <EvanR> interesting theory
2025-04-11 20:58:22 +0000 <EvanR> if and only if it's a fold
2025-04-11 20:58:30 +0000 <monochrom> Remember that new paradigm of XML parsing where you tell the parser "here is my suite of callbacks" and the parser calls one callback per node?
2025-04-11 20:58:39 +0000 <monochrom> Yeah that.
2025-04-11 20:58:44 +0000 <tomsmeding> well, if you parser never inspects any trees it built, then the "if" holds -- not sure about the "only if"
2025-04-11 20:58:51 +0000 <tomsmeding> if your parser inspects trees it built, then things get more complicated
2025-04-11 20:59:08 +0000 <monochrom> It's trivial in Python, and if you know Cont, also trivial in Haskell. :)
2025-04-11 20:59:23 +0000 <tomsmeding> monochrom: the "new" in that sentence is a bit out of place :)
2025-04-11 20:59:43 +0000 <monochrom> It was new back then compared to other XML parsers way back then.
2025-04-11 21:00:00 +0000 <tomsmeding> undoubtedly
2025-04-11 21:00:17 +0000 <monochrom> It also broke a lot of programmers' minds. :)
2025-04-11 21:00:34 +0000 <EvanR> I had no idea XML was so keen on performance
2025-04-11 21:00:37 +0000 <tomsmeding> the first time I met it I honestly just found it needlessly messy
2025-04-11 21:00:44 +0000 <EvanR> it sounded like bloat mostly
2025-04-11 21:01:11 +0000 <monochrom> But it was a necessary invention for obvious reasons. Because before it, they did what you are seeing right now, taking forever to build a huge tree in memory until EOF.
2025-04-11 21:01:17 +0000Square(~Square4@user/square) (Ping timeout: 265 seconds)
2025-04-11 21:01:56 +0000 <monochrom> which was doubly unsustainable back then because they too didn't have more than 1GB RAM.
2025-04-11 21:01:56 +0000 <geekosaur> it had to be keen on performance, when a simple thing had to be represented as a huge bloated tree of tags
2025-04-11 21:02:28 +0000kimiamania(~65804703@user/kimiamania) (Quit: PegeLinux)
2025-04-11 21:02:52 +0000kimiamania9(~65804703@user/kimiamania) kimiamania
2025-04-11 21:03:30 +0000 <EvanR> well ParserT (Cont r) has just made my brain explode
2025-04-11 21:03:40 +0000 <monochrom> Oh yeah I just need the direction "incremental implies no access to future".
2025-04-11 21:04:24 +0000 <EvanR> you can only use Acme.now
2025-04-11 21:05:29 +0000euleritian(~euleritia@95.90.214.149) (Ping timeout: 260 seconds)
2025-04-11 21:05:44 +0000euleritian(~euleritia@dynamic-176-006-132-211.176.6.pool.telefonica.de)
2025-04-11 21:07:16 +0000 <monochrom> If the probability of syntax error is low enough to ignore: Step 1: Use e.g. "String -> (String, a)". Step 2: implement >>= like "m >>= k = \inp -> case m inp of ~(mid, a) -> ..." i.e. increase laziness in your >>=.
2025-04-11 21:07:51 +0000 <monochrom> (Step 3: If you do run into syntax error, use error/bottom, be partial.)
2025-04-11 21:08:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 21:09:09 +0000Pozyomka(~pyon@user/pyon) (Ping timeout: 252 seconds)
2025-04-11 21:11:10 +0000Pozyomka(~pyon@user/pyon) pyon
2025-04-11 21:11:29 +0000 <EvanR> (warning reinventing a wheel probably) data Incremental a = InProgress a (Incremental a) | Done a | Failed
2025-04-11 21:11:59 +0000 <tomsmeding> is that for a parser of [a]?
2025-04-11 21:12:18 +0000 <EvanR> no the payload of InProgress is probably pointless here
2025-04-11 21:12:31 +0000 <EvanR> but I was thinking it was like, the accumulator for a number of expression nodes
2025-04-11 21:12:37 +0000 <tomsmeding> if the payload is not there, what's the point of emitting an InProgress?
2025-04-11 21:12:44 +0000 <EvanR> as a basic computation to do on a tree
2025-04-11 21:13:15 +0000 <tomsmeding> without the payload in InProgress, Incremental a is isomorphic to (Natural, Maybe a)
2025-04-11 21:13:21 +0000 <EvanR> for this problem, I don't know. But in general it would let you cancel out of a computation early
2025-04-11 21:13:29 +0000 <tomsmeding> with the payload, it's isomorphic to ([a], Maybe a)
2025-04-11 21:13:42 +0000 <EvanR> sure
2025-04-11 21:13:53 +0000 <EvanR> not sure
2025-04-11 21:14:13 +0000 <tomsmeding> its laziness properties are a bit different, sure
2025-04-11 21:14:21 +0000 <EvanR> e.g. an external agent could decide, this chain of InProgress is too long, give up
2025-04-11 21:14:31 +0000 <tomsmeding> but if this is not supposed to be a parser of [a], then I'm not sure what that 'a' is supposed to be :)
2025-04-11 21:14:32 +0000 <EvanR> but that's probably a different subject
2025-04-11 21:14:38 +0000 <EvanR> it's not a parser of a
2025-04-11 21:14:41 +0000 <tomsmeding> right, but what does that give you for your original question?
2025-04-11 21:15:29 +0000 <EvanR> the parser's result would not survive if I got what I was asking for
2025-04-11 21:15:33 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-04-11 21:15:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 21:15:46 +0000 <EvanR> it would be an intermediate
2025-04-11 21:16:11 +0000 <EvanR> alright the a would be an approximation of the computation
2025-04-11 21:16:15 +0000 <tomsmeding> but all the intermediates here are of the same type; would they be subtrees of the resulting expression? If so, how does the consumer know _which_ subtrees?
2025-04-11 21:16:23 +0000 <EvanR> i.e. if it was a count, the count would increase toward the final number
2025-04-11 21:16:37 +0000 <EvanR> or an eventual error
2025-04-11 21:17:12 +0000 <tomsmeding> (and if you're considering it to be a count, then you're simultaneously doing this idea of putting the computation inside the parser -- and then that idea _alone_ already gives you the required laziness, no need to also introduce Incremental)
2025-04-11 21:17:12 +0000 <EvanR> in this example the consumer would not know and not care
2025-04-11 21:17:31 +0000 <EvanR> sure
2025-04-11 21:17:51 +0000 <EvanR> guess I'll try it and then maybe get a better mental model of what's possible
2025-04-11 21:18:15 +0000rbdr(~rbdr@dynamic-002-245-152-215.2.245.pool.telefonica.de) (Ping timeout: 252 seconds)
2025-04-11 21:20:21 +0000Pozyomka(~pyon@user/pyon) (Ping timeout: 248 seconds)
2025-04-11 21:22:55 +0000 <monochrom> Yes it is a reinvented wheel. But don't worry! I think everyone reinvents that wheel instead of importing from a library.
2025-04-11 21:23:12 +0000 <EvanR> an XML library?
2025-04-11 21:23:42 +0000 <monochrom> Actually you want: data Incremental a = InProgress a (String -> Incremental a) | Done a | Failed
2025-04-11 21:23:56 +0000 <tomsmeding> (also, I think that reinventing wheels is a very good way of getting intuition for the design space)
2025-04-11 21:24:05 +0000 <EvanR> maybe it's like, instead of having the parser build the Expr tree, it applies a bunch of "builder" functions which might build a tree, or might do something else
2025-04-11 21:24:10 +0000 <monochrom> You want a String-> function there for feeding it the rest of input.
2025-04-11 21:24:21 +0000 <EvanR> SAX callbacks
2025-04-11 21:24:49 +0000 <EvanR> or "a fold"
2025-04-11 21:24:54 +0000 <monochrom> Or maybe not. It depends on the rest of your design.
2025-04-11 21:26:42 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 21:28:27 +0000 <EvanR> (your logic about needing to look into the future to decide if it should be slow is funny, it would be just fine if it's not slow)
2025-04-11 21:31:27 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-11 21:32:39 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 21:41:55 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Quit: peterbecich)
2025-04-11 21:42:06 +0000ystael(~ystael@user/ystael) ystael
2025-04-11 21:42:18 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 21:42:27 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 21:45:53 +0000Pozyomka(~pyon@user/pyon) pyon
2025-04-11 21:47:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 21:52:14 +0000Guest87(~Guest87@2620:72:0:1f18:f98c:1934:e021:b784)
2025-04-11 21:53:55 +0000machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 276 seconds)
2025-04-11 21:57:51 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 22:02:07 +0000peterbecich1(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 22:03:29 +0000 <tomsmeding> has there been a time when GHC.Generics did not produce balanced trees but instead a right- or left-leaning tree?
2025-04-11 22:04:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-11 22:04:58 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-04-11 22:08:56 +0000peterbecich1(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-11 22:11:52 +0000tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 252 seconds)
2025-04-11 22:12:17 +0000tromp(~textual@2001:1c00:3487:1b00:d08a:2428:1bec:2dd5) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-11 22:12:52 +0000emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-04-11 22:15:53 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 22:21:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 22:22:25 +0000target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-04-11 22:25:14 +0000sayurc(~sayurc@169.150.203.34) (Quit: Konversation terminated!)
2025-04-11 22:25:51 +0000 <geekosaur> now, aiui
2025-04-11 22:26:06 +0000 <geekosaur> my understanding is that if you want balanced trees you want sop-generics
2025-04-11 22:26:12 +0000 <tomsmeding> other way round
2025-04-11 22:26:22 +0000 <tomsmeding> sop-generics produces a list of lists; GHC.Generics produces balanced trees
2025-04-11 22:26:34 +0000 <tomsmeding> % :seti -XDeriveGeneric
2025-04-11 22:26:34 +0000 <yahb2> <no output>
2025-04-11 22:26:50 +0000 <tomsmeding> % data T = A | B | C | D | E | F deriving (Show, Generic)
2025-04-11 22:26:50 +0000 <yahb2> <interactive>:61:48: error: [GHC-76037] ; Not in scope: type constructor or class ‘Generic’
2025-04-11 22:26:55 +0000 <tomsmeding> % import GHC.Generics
2025-04-11 22:26:55 +0000 <yahb2> <no output>
2025-04-11 22:26:57 +0000 <tomsmeding> % data T = A | B | C | D | E | F deriving (Show, Generic)
2025-04-11 22:26:57 +0000 <yahb2> <no output>
2025-04-11 22:27:05 +0000 <tomsmeding> % :k! Rep T ()
2025-04-11 22:27:05 +0000 <yahb2> Rep T () :: * ; = M1 ; D ; (MetaData "T" "Ghci13" "interactive" False) ; ((M1 C (MetaCons "A" PrefixI False) U1 ; :+: (M1 C (MetaCons "B" PrefixI False) U1 ; :+: M1 C (...
2025-04-11 22:27:08 +0000 <tomsmeding> meh
2025-04-11 22:27:26 +0000 <tomsmeding> %% :k! Rep T ()
2025-04-11 22:27:27 +0000 <yahb2> https://paste.tomsmeding.com/PlhqwSXT
2025-04-11 22:28:07 +0000 <tomsmeding> (A + (B + C)) + (D + (E + F))
2025-04-11 22:28:51 +0000gawen(~gawen@user/gawen) (Quit: cya)
2025-04-11 22:28:54 +0000 <tomsmeding> geekosaur: the "sop" in sop-generics is "sum-of-products", where "sum" is used a contrastive to "plus", like `sum` vs (+)
2025-04-11 22:31:37 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 22:35:14 +0000gawen(~gawen@user/gawen) gawen
2025-04-11 22:36:39 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 22:39:13 +0000peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-11 22:42:05 +0000 <emojelly> pipes is so, so, so much faster than coroutines...
2025-04-11 22:42:19 +0000 <EvanR> pipes, haven't heard about that one for a minute
2025-04-11 22:43:38 +0000 <emojelly> For my specific needs it seems quite fitting.
2025-04-11 22:43:57 +0000sayurc(~sayurc@169.150.203.34) sayurc
2025-04-11 22:44:08 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2025-04-11 22:44:42 +0000 <EvanR> > p (const Z) N Err "(a b ? d e f)"
2025-04-11 22:44:48 +0000 <EvanR> N [Z,Z,Err]
2025-04-11 22:44:54 +0000 <EvanR> this is not great for reasons
2025-04-11 22:45:13 +0000 <EvanR> though it is kind of lazy
2025-04-11 22:47:26 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 22:50:33 +0000gawen(~gawen@user/gawen) (Quit: cya)
2025-04-11 22:53:04 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 22:56:24 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-04-11 22:56:46 +0000gawen(~gawen@user/gawen) gawen
2025-04-11 23:01:33 +0000 <EvanR> if you can get away with folding over tokens then clearly there is more laziness
2025-04-11 23:03:13 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 23:06:17 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-04-11 23:08:40 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-11 23:09:51 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-04-11 23:11:33 +0000polyphem(~rod@pd9fbfc2f.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-04-11 23:16:55 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-04-11 23:20:05 +0000ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-11 23:23:06 +0000ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2025-04-11 23:23:07 +0000ljdarj1ljdarj
2025-04-11 23:32:49 +0000prolic_(~sasa@181.122.135.9) prolic_
2025-04-11 23:37:02 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 23:41:18 +0000ft(~ft@p508db594.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2025-04-11 23:41:59 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-11 23:42:29 +0000ft(~ft@p4fc2a6e6.dip0.t-ipconnect.de) ft
2025-04-11 23:50:46 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-11 23:51:53 +0000weary-traveler(~user@user/user363627) user363627
2025-04-11 23:54:44 +0000sprotte24(~sprotte24@p200300d16f1c5b003c76b51cf90902ef.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2025-04-11 23:55:42 +0000merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-11 23:59:33 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)