2025/04/15

2025-04-15 00:05:42 +0200euleritian(~euleritia@95.90.214.149) (Ping timeout: 252 seconds)
2025-04-15 00:05:45 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2025-04-15 00:05:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 00:06:07 +0200euleritian(~euleritia@dynamic-176-000-012-254.176.0.pool.telefonica.de)
2025-04-15 00:06:56 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 00:08:34 +0200inca(~inca@71.30.233.213)
2025-04-15 00:08:50 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Client Quit)
2025-04-15 00:09:21 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 00:10:19 +0200 <EvanR> I don't know about proper subset but haskell has one which is isomorphic https://paste.tomsmeding.com/cJEnEOD7 haha
2025-04-15 00:10:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 00:10:57 +0200euleritian(~euleritia@dynamic-176-000-012-254.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-15 00:11:15 +0200euleritian(~euleritia@95.90.214.149)
2025-04-15 00:12:18 +0200 <haskellbridge> <sm> there are modern smalltalks that are more declarative, eg saving code in git and rebuilding images from text descriptions
2025-04-15 00:13:58 +0200inca(~inca@71.30.233.213) (Ping timeout: 276 seconds)
2025-04-15 00:21:35 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-04-15 00:23:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 00:28:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 00:39:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 00:43:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 00:51:43 +0200sinbad(~sinbad@user/sinbad) ()
2025-04-15 00:52:38 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-15 00:55:54 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 00:58:26 +0200sprotte24(~sprotte24@p200300d16f19450068dfe2d4c5b923e1.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-15 00:58:37 +0200inca(~inca@71.30.233.213)
2025-04-15 01:00:20 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 01:02:53 +0200puke(~puke@user/puke) (Remote host closed the connection)
2025-04-15 01:03:12 +0200puke(~puke@user/puke) puke
2025-04-15 01:03:40 +0200inca(~inca@71.30.233.213) (Ping timeout: 244 seconds)
2025-04-15 01:07:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 01:09:14 +0200weary-traveler(~user@user/user363627) user363627
2025-04-15 01:10:24 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 268 seconds)
2025-04-15 01:15:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 01:19:16 +0200hidjgr(~hidjgr@user/hidjgr) (Quit: WeeChat 4.4.2)
2025-04-15 01:19:39 +0200hidjgr(~hidjgr@68.52.120.78.rev.sfr.net)
2025-04-15 01:19:52 +0200hidjgr(~hidjgr@68.52.120.78.rev.sfr.net) (Client Quit)
2025-04-15 01:25:51 +0200jespada(~jespada@r167-61-34-244.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-04-15 01:27:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 01:29:25 +0200Sgeo(~Sgeo@user/sgeo) Sgeo
2025-04-15 01:32:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 01:35:57 +0200tt12310978324354(~tt1231@2603:6010:8700:4a81:219f:50d3:618a:a6ee) (Ping timeout: 276 seconds)
2025-04-15 01:44:36 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 01:49:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 01:51:45 +0200distopico(~cerdolibr@2001:4b98:dc2:41:216:3eff:fe6c:52a1) (Quit: Bye..)
2025-04-15 01:57:54 +0200inca(~inca@71.30.233.213)
2025-04-15 01:59:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 02:04:13 +0200distopico(~cerdolibr@2001:4b98:dc2:41:216:3eff:fe6c:52a1) distopico
2025-04-15 02:04:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 02:09:35 +0200acidjnk(~acidjnk@p200300d6e71c4f08edc2aa045ea45701.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2025-04-15 02:14:42 +0200Googulator16(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-15 02:16:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 02:18:06 +0200Googulator(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Ping timeout: 240 seconds)
2025-04-15 02:20:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-15 02:25:24 +0200xff0x(~xff0x@2405:6580:b080:900:eff9:16f2:1634:b479) (Ping timeout: 245 seconds)
2025-04-15 02:33:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 02:37:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 02:42:10 +0200Googulator16(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
2025-04-15 02:42:25 +0200Googulator16(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-15 02:42:38 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Quit: Hi, this is Paul Allen. I'm being called away to London for a few days. Meredith, I'll call you when I get back. Hasta la vista, baby.)
2025-04-15 02:49:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 02:54:31 +0200otto_s(~user@p5de2f29b.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-04-15 02:55:27 +0200otto_s(~user@p5b04470d.dip0.t-ipconnect.de)
2025-04-15 02:57:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 03:09:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 03:14:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 03:20:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 03:24:13 +0200statusbot11(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) statusbot
2025-04-15 03:25:24 +0200inca(~inca@71.30.233.213) (Ping timeout: 245 seconds)
2025-04-15 03:25:30 +0200Square3(~Square@user/square) Square
2025-04-15 03:25:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 03:26:06 +0200tabemann_(~tabemann@2600:1700:7990:24e0::49)
2025-04-15 03:26:32 +0200ycp_(~znc@user/dragestil) dragestil
2025-04-15 03:26:42 +0200SoF8(~skius@user/skius) skius
2025-04-15 03:26:45 +0200inca(~inca@71.30.233.213)
2025-04-15 03:28:04 +0200down200-(~down200@shell.lug.mtu.edu) down200
2025-04-15 03:28:33 +0200visilii_(~visilii@85.172.76.90)
2025-04-15 03:28:55 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 03:28:59 +0200bwe_(~bwe@2a01:4f8:1c1c:4878::2)
2025-04-15 03:29:06 +0200vgtw(~vgtw@user/vgtw) vgtw
2025-04-15 03:29:34 +0200tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 245 seconds)
2025-04-15 03:29:34 +0200Taneb0(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) Taneb
2025-04-15 03:32:00 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) ryanbooker
2025-04-15 03:33:41 +0200 <haskellbridge> <Bowuigi> EvanR the way that iso and osi "inject and extract" seems like foldology all over again with in-out
2025-04-15 03:34:36 +0200Square2(~Square@user/square) (*.net *.split)
2025-04-15 03:34:36 +0200ljdarj(~Thunderbi@user/ljdarj) (*.net *.split)
2025-04-15 03:34:36 +0200Angelz(Angelz@angelz.oddprotocol.org) (*.net *.split)
2025-04-15 03:34:36 +0200Taneb(~Taneb@213.138.101.13) (*.net *.split)
2025-04-15 03:34:36 +0200jle`(~jle`@2603:8001:3b00:11:2d8b:3abc:251d:2a6) (*.net *.split)
2025-04-15 03:34:36 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) (*.net *.split)
2025-04-15 03:34:36 +0200dpk(~dpk@jains.nonceword.org) (*.net *.split)
2025-04-15 03:34:37 +0200lyxia(~lyxia@poisson.chat) (*.net *.split)
2025-04-15 03:34:37 +0200vgtw_(~vgtw@user/vgtw) (*.net *.split)
2025-04-15 03:34:37 +0200sefidel(~sefidel@user/sefidel) (*.net *.split)
2025-04-15 03:34:37 +0200samhh__(7569f027cf@2a03:6000:1812:100::e4) (*.net *.split)
2025-04-15 03:34:37 +0200ursa-major(114efe6c39@2a03:6000:1812:100::11f3) (*.net *.split)
2025-04-15 03:34:37 +0200sm2n(ae95cb1267@user/sm2n) (*.net *.split)
2025-04-15 03:34:37 +0200raghavgururajan(ea769b8000@user/raghavgururajan) (*.net *.split)
2025-04-15 03:34:37 +0200tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split)
2025-04-15 03:34:37 +0200exarkun(~exarkun@user/exarkun) (*.net *.split)
2025-04-15 03:34:37 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split)
2025-04-15 03:34:37 +0200Adran(~adran@botters/adran) (*.net *.split)
2025-04-15 03:34:38 +0200samhh(7569f027cf@2a03:6000:1812:100::e4) (*.net *.split)
2025-04-15 03:34:38 +0200visilii(~visilii@85.172.76.90) (*.net *.split)
2025-04-15 03:34:38 +0200Rembane(~Rembane@user/Rembane) (*.net *.split)
2025-04-15 03:34:38 +0200p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (*.net *.split)
2025-04-15 03:34:38 +0200echoreply(~echoreply@45.32.163.16) (*.net *.split)
2025-04-15 03:34:38 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) (*.net *.split)
2025-04-15 03:34:38 +0200SoF(~skius@user/skius) (*.net *.split)
2025-04-15 03:34:38 +0200down200(~down200@shell.lug.mtu.edu) (*.net *.split)
2025-04-15 03:34:38 +0200bwe(~bwe@static.72.17.201.195.clients.your-server.de) (*.net *.split)
2025-04-15 03:34:39 +0200dmoerner(~dmoerner@fedora/dmoerner) (*.net *.split)
2025-04-15 03:34:39 +0200nshepperd2(~nshepperd@2a01:4f9:3b:4cc9::2) (*.net *.split)
2025-04-15 03:34:39 +0200V(~v@ircpuzzles/2022/april/winner/V) (*.net *.split)
2025-04-15 03:34:39 +0200xnbya(~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
2025-04-15 03:34:39 +0200dfordivam1(~dfordivam@160.16.87.223.v6.sakura.ne.jp) (*.net *.split)
2025-04-15 03:34:39 +0200laman(laman@rego.ai) (*.net *.split)
2025-04-15 03:34:39 +0200nadja(~dequbed@banana-new.kilobyte22.de) (*.net *.split)
2025-04-15 03:34:39 +0200ycp(~znc@user/dragestil) (*.net *.split)
2025-04-15 03:34:39 +0200mzg(mzg@abusers.hu) (*.net *.split)
2025-04-15 03:34:41 +0200SoF8SoF
2025-04-15 03:34:43 +0200ycp_ycp
2025-04-15 03:38:15 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-15 03:38:29 +0200Adran(~adran@botters/adran) Adran
2025-04-15 03:38:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 03:41:37 +0200echoreply(~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d) echoreply
2025-04-15 03:43:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 03:46:05 +0200Square(~Square4@user/square) Square
2025-04-15 03:46:34 +0200sp1ff(~user@c-67-160-173-55.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2025-04-15 03:47:03 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-04-15 03:49:31 +0200Square3(~Square@user/square) (Ping timeout: 244 seconds)
2025-04-15 03:52:27 +0200aaronv(~aaronv@user/aaronv) aaronv
2025-04-15 03:56:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 04:01:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 04:11:26 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-15 04:11:26 +0200Angelz(Angelz@angelz.oddprotocol.org)
2025-04-15 04:11:26 +0200jle`(~jle`@2603:8001:3b00:11:2d8b:3abc:251d:2a6) jle`
2025-04-15 04:11:26 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-04-15 04:11:26 +0200dpk(~dpk@jains.nonceword.org) dpk
2025-04-15 04:11:26 +0200lyxia(~lyxia@poisson.chat) lyxia
2025-04-15 04:11:26 +0200sefidel(~sefidel@user/sefidel) sefidel
2025-04-15 04:11:26 +0200samhh__(7569f027cf@2a03:6000:1812:100::e4) samhh
2025-04-15 04:11:26 +0200ursa-major(114efe6c39@2a03:6000:1812:100::11f3) ursa-major
2025-04-15 04:11:26 +0200raghavgururajan(ea769b8000@user/raghavgururajan) raghavgururajan
2025-04-15 04:11:26 +0200sm2n(ae95cb1267@user/sm2n) sm2n
2025-04-15 04:11:26 +0200exarkun(~exarkun@user/exarkun) exarkun
2025-04-15 04:11:26 +0200samhh(7569f027cf@2a03:6000:1812:100::e4) samhh
2025-04-15 04:11:26 +0200Rembane(~Rembane@user/Rembane) Rembane
2025-04-15 04:11:26 +0200p3n(~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) p3n
2025-04-15 04:11:26 +0200laman(laman@rego.ai) laman
2025-04-15 04:11:26 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) {-d0t-}
2025-04-15 04:11:26 +0200dmoerner(~dmoerner@fedora/dmoerner) dmoerner
2025-04-15 04:11:26 +0200nshepperd2(~nshepperd@2a01:4f9:3b:4cc9::2) nshepperd
2025-04-15 04:11:26 +0200V(~v@ircpuzzles/2022/april/winner/V) V
2025-04-15 04:11:26 +0200xnbya(~xnbya@2a01:4f8:c17:cbdd::1)
2025-04-15 04:11:26 +0200dfordivam1(~dfordivam@160.16.87.223.v6.sakura.ne.jp) dfordivam
2025-04-15 04:11:26 +0200nadja(~dequbed@banana-new.kilobyte22.de) dequbed
2025-04-15 04:11:26 +0200mzg(mzg@abusers.hu)
2025-04-15 04:11:44 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) (Max SendQ exceeded)
2025-04-15 04:11:44 +0200Angelz(Angelz@angelz.oddprotocol.org) (Max SendQ exceeded)
2025-04-15 04:14:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 04:15:52 +0200hsw(~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) (Remote host closed the connection)
2025-04-15 04:15:55 +0200hsw_(~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) hsw
2025-04-15 04:19:45 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 04:21:24 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) robobub
2025-04-15 04:25:35 +0200prasad(~Thunderbi@c-73-246-138-70.hsd1.in.comcast.net) (Remote host closed the connection)
2025-04-15 04:27:58 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Ping timeout: 244 seconds)
2025-04-15 04:30:16 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-15 04:31:22 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-04-15 04:32:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 04:32:16 +0200td_(~td@i5387092A.versanet.de) (Ping timeout: 272 seconds)
2025-04-15 04:33:56 +0200td_(~td@i5387093D.versanet.de) td_
2025-04-15 04:36:59 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 260 seconds)
2025-04-15 04:39:26 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-15 04:40:50 +0200Angelz(Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973)
2025-04-15 04:51:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 04:56:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 05:07:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 05:12:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 05:18:08 +0200notdabs(~Owner@2600:1700:69cf:9000:1c62:21ed:d1ea:b97) (Quit: Leaving)
2025-04-15 05:21:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 05:22:57 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 05:26:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-15 05:38:58 +0200rekahsoft(~rekahsoft@174.95.4.83) (Remote host closed the connection)
2025-04-15 05:39:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 05:41:46 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2025-04-15 05:43:21 +0200notdabs(~Owner@2600:1700:69cf:9000:1c62:21ed:d1ea:b97)
2025-04-15 05:43:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-15 05:46:40 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 268 seconds)
2025-04-15 05:46:41 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-04-15 05:55:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 06:00:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 06:03:33 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-04-15 06:12:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 06:17:31 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-15 06:18:44 +0200j1n37-(~j1n37@user/j1n37) (Ping timeout: 265 seconds)
2025-04-15 06:20:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 06:24:14 +0200notdabs(~Owner@2600:1700:69cf:9000:1c62:21ed:d1ea:b97) (Quit: Leaving)
2025-04-15 06:28:34 +0200michalz(~michalz@185.246.207.217)
2025-04-15 06:32:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 06:33:04 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2025-04-15 06:33:59 +0200 <haskellbridge> <Liamzee> i just put up a server, will be stuffing DNS over it so you can watch my traffic accident in real time
2025-04-15 06:34:07 +0200 <haskellbridge> <Liamzee> but is there something that causes text to take a long time to build?
2025-04-15 06:36:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 06:48:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 06:53:03 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 07:05:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 07:10:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 07:13:58 +0200euleritian(~euleritia@95.90.214.149) (Ping timeout: 252 seconds)
2025-04-15 07:14:20 +0200euleritian(~euleritia@dynamic-176-000-004-180.176.0.pool.telefonica.de)
2025-04-15 07:15:40 +0200inca(~inca@71.30.233.213) (Ping timeout: 244 seconds)
2025-04-15 07:17:55 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-04-15 07:21:28 +0200andrewboltachev(~andrey@178.141.0.147) andrewboltachev
2025-04-15 07:21:36 +0200haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-04-15 07:22:28 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 07:23:25 +0200euleritian(~euleritia@dynamic-176-000-004-180.176.0.pool.telefonica.de) (Ping timeout: 260 seconds)
2025-04-15 07:24:10 +0200euleritian(~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de)
2025-04-15 07:27:17 +0200inca(~inca@71.30.233.213)
2025-04-15 07:27:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 07:32:15 +0200euleritian(~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-15 07:32:33 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-15 07:35:25 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
2025-04-15 07:36:48 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2025-04-15 07:37:21 +0200euleritian(~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de)
2025-04-15 07:38:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 07:40:59 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e)
2025-04-15 07:43:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 07:45:41 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Ping timeout: 268 seconds)
2025-04-15 07:46:14 +0200euleritian(~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-15 07:46:32 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-15 07:49:01 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-04-15 07:51:23 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-04-15 07:52:18 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-04-15 07:56:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 07:59:27 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2025-04-15 08:00:02 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-15 08:02:01 +0200Googulator82(~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-15 08:03:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 08:05:18 +0200Googulator16(~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Ping timeout: 240 seconds)
2025-04-15 08:15:55 +0200aaronv(~aaronv@user/aaronv) aaronv
2025-04-15 08:16:40 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
2025-04-15 08:17:07 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 08:17:10 +0200euleritian(~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de)
2025-04-15 08:21:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 08:28:21 +0200takuan(~takuan@d8D86B601.access.telenet.be)
2025-04-15 08:29:12 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2025-04-15 08:30:56 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) mrmonday
2025-04-15 08:33:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 08:36:44 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 260 seconds)
2025-04-15 08:38:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 08:45:27 +0200forell_(~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
2025-04-15 08:46:54 +0200forell(~forell@user/forell) (Ping timeout: 276 seconds)
2025-04-15 08:49:07 +0200aaronv(~aaronv@user/aaronv) aaronv
2025-04-15 08:50:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 08:51:03 +0200ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-04-15 08:53:58 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 276 seconds)
2025-04-15 08:54:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 09:00:01 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-04-15 09:00:33 +0200jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
2025-04-15 09:00:50 +0200caconym(~caconym@user/caconym) caconym
2025-04-15 09:02:30 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection)
2025-04-15 09:03:42 +0200chele(~chele@user/chele) chele
2025-04-15 09:07:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 09:07:35 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 09:08:37 +0200andrewboltachev(~andrey@178.141.0.147) (Quit: Leaving.)
2025-04-15 09:12:54 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 09:13:52 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-15 09:14:36 +0200fp(~Thunderbi@2001:708:20:1406::1370) fp
2025-04-15 09:15:44 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 09:17:46 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-15 09:19:34 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2025-04-15 09:20:27 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 09:20:53 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-04-15 09:20:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 09:21:58 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2025-04-15 09:24:33 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
2025-04-15 09:25:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 09:25:57 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-15 09:27:11 +0200califax(~califax@user/califx) califx
2025-04-15 09:28:39 +0200euleritian(~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-15 09:28:56 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-15 09:33:03 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2025-04-15 09:33:23 +0200acidjnk(~acidjnk@p200300d6e71c4f58dd6e73151eca3115.dip0.t-ipconnect.de) acidjnk
2025-04-15 09:37:42 +0200alecs(~alecs@nat16.software.imdea.org) alecs
2025-04-15 09:38:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 09:39:19 +0200ft(~ft@p4fc2a6e6.dip0.t-ipconnect.de) (Quit: leaving)
2025-04-15 09:41:42 +0200gmg(~user@user/gehmehgeh) gehmehgeh
2025-04-15 09:45:43 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-15 09:54:12 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-04-15 09:55:37 +0200sinbad(~sinbad@user/sinbad) Sinbad
2025-04-15 09:57:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 09:58:13 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-15 10:01:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-15 10:02:43 +0200kenran(~void@user/kenran) kenran
2025-04-15 10:08:08 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) lisbeths
2025-04-15 10:15:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 10:20:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 10:22:56 +0200tabaqui(~tabaqui@167.71.80.236) tabaqui
2025-04-15 10:25:04 +0200kenran(~void@user/kenran) (Remote host closed the connection)
2025-04-15 10:27:18 +0200kenran(~void@user/kenran) kenran
2025-04-15 10:31:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 10:33:48 +0200poscat(~poscat@user/poscat) (Ping timeout: 252 seconds)
2025-04-15 10:34:34 +0200__monty__(~toonn@user/toonn) toonn
2025-04-15 10:36:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 10:38:34 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 10:43:53 +0200puke(~puke@user/puke) (Ping timeout: 244 seconds)
2025-04-15 10:47:14 +0200puke(~puke@user/puke) puke
2025-04-15 10:49:20 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 10:51:01 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 10:53:49 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 10:53:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 11:03:07 +0200fp(~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
2025-04-15 11:03:33 +0200fp(~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp
2025-04-15 11:03:41 +0200gorignak(~gorignak@user/gorignak) (Read error: Connection reset by peer)
2025-04-15 11:05:05 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-04-15 11:06:08 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 11:11:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-15 11:14:22 +0200sand-witch(~m-mzmz6l@vmi833741.contaboserver.net) (Ping timeout: 244 seconds)
2025-04-15 11:18:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 11:19:07 +0200Diaseis(~Diaseis@laptop-ipv6-2001-660-6101-403-1-af.labri.fr)
2025-04-15 11:19:34 +0200sand-witch(~m-mzmz6l@vmi833741.contaboserver.net)
2025-04-15 11:24:07 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-04-15 11:24:24 +0200polyphem(~rod@p4fc2c7a3.dip0.t-ipconnect.de) polyphem
2025-04-15 11:27:15 +0200sprotte24(~sprotte24@p200300d16f238d002592e50c1399a7a3.dip0.t-ipconnect.de)
2025-04-15 11:33:59 +0200michalz(~michalz@185.246.207.217) (Remote host closed the connection)
2025-04-15 11:34:10 +0200bwe_currently works through Reader and Writer Monads on Vitaly Bragilevsky's book. I am surprised by how simple the concepts were to understand. I don't know what held me back from them to date. Next up is State monad.
2025-04-15 11:34:14 +0200bwe_bwe
2025-04-15 11:36:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 11:36:58 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-04-15 11:37:10 +0200driib318(~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds))
2025-04-15 11:41:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 11:42:13 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2025-04-15 11:46:13 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
2025-04-15 11:47:10 +0200euleritian(~euleritia@dynamic-176-004-129-026.176.4.pool.telefonica.de)
2025-04-15 11:49:21 +0200zmt01(~zmt00@user/zmt00) zmt00
2025-04-15 11:49:45 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-04-15 11:52:55 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 260 seconds)
2025-04-15 11:53:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 11:57:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 11:59:39 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2025-04-15 12:01:24 +0200haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2025-04-15 12:01:24 +0200haritz(~hrtz@user/haritz) haritz
2025-04-15 12:02:26 +0200rselim(ce261f06ff@user/milesrout) (Ping timeout: 248 seconds)
2025-04-15 12:02:26 +0200stureplan(22e45d5caf@user/stureplan) (Ping timeout: 248 seconds)
2025-04-15 12:02:26 +0200akspecs(00cc8321af@sourcehut/user/akspecs) (Ping timeout: 248 seconds)
2025-04-15 12:02:28 +0200fn_lumi(3d621153a5@2a03:6000:1812:100::df7) (Read error: Connection reset by peer)
2025-04-15 12:02:31 +0200smiesner(b0cf5acf8c@2a03:6000:1812:100::13b9) (Read error: Connection reset by peer)
2025-04-15 12:02:36 +0200fn_lumi(3d621153a5@2a03:6000:1812:100::df7) fn_lumi
2025-04-15 12:02:38 +0200smiesner(b0cf5acf8c@user/smiesner) smiesner
2025-04-15 12:02:41 +0200lucyy(228ee8f0ce@user/lucyy) (Write error: Connection reset by peer)
2025-04-15 12:02:41 +0200JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3) (Read error: Connection reset by peer)
2025-04-15 12:02:41 +0200uint64_t(ec7b9bb9f3@2a03:6000:1812:100::139b) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200sus(1b7af6299f@user/zeromomentum) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200ymherklotz(cb2c9cfbdd@2a03:6000:1812:100::29a) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200jakzale(6291399afa@user/jakzale) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200probie(cc0b34050a@user/probie) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200simendsjo(34b0550437@2a03:6000:1812:100::1441) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200Ankhers(e99e97ef8e@2a03:6000:1812:100::2a2) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200thatonelutenist(8216c46202@2a03:6000:1812:100::fb3) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200jkoshy(99b9359beb@user/jkoshy) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200lane(809450f172@2a03:6000:1812:100::1300) (Write error: Connection reset by peer)
2025-04-15 12:02:42 +0200RussetParrotBear(45ce440a48@2a03:6000:1812:100::e2) (Read error: Connection reset by peer)
2025-04-15 12:02:49 +0200lane(809450f172@2a03:6000:1812:100::1300) lane
2025-04-15 12:02:49 +0200RussetParrotBear(45ce440a48@2a03:6000:1812:100::e2)
2025-04-15 12:02:49 +0200whereiseveryone_(206ba86c98@2a03:6000:1812:100::2e4) whereiseveryone
2025-04-15 12:02:50 +0200jakzale(6291399afa@user/jakzale) jakzale
2025-04-15 12:02:50 +0200probie(cc0b34050a@user/probie) probie
2025-04-15 12:02:50 +0200rselim(ce261f06ff@user/milesrout) milesrout
2025-04-15 12:02:50 +0200sus(1b7af6299f@user/zeromomentum) zeromomentum
2025-04-15 12:02:50 +0200akspecs(00cc8321af@sourcehut/user/akspecs) akspecs
2025-04-15 12:02:51 +0200chaitlatte0(ea29c0bb16@user/chaitlatte0) chaitlatte0
2025-04-15 12:02:51 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df) l3gacyb3ta
2025-04-15 12:02:51 +0200thatonelutenist(8216c46202@2a03:6000:1812:100::fb3) thatonelutenist
2025-04-15 12:02:51 +0200lucyy(228ee8f0ce@user/lucyy) lucyy
2025-04-15 12:02:51 +0200stureplan(22e45d5caf@user/stureplan) stureplan
2025-04-15 12:02:51 +0200uint64_t(ec7b9bb9f3@2a03:6000:1812:100::139b) k_hachig
2025-04-15 12:02:51 +0200Ankhers_(e99e97ef8e@2a03:6000:1812:100::2a2) Ankhers
2025-04-15 12:02:51 +0200simendsjo(34b0550437@2a03:6000:1812:100::1441) simendsjo
2025-04-15 12:02:51 +0200ymherklotz(cb2c9cfbdd@2a03:6000:1812:100::29a) ymherklotz
2025-04-15 12:02:51 +0200JoelMcCracken(5ea8252fbb@2a03:6000:1812:100::10e3) JoelMcCracken
2025-04-15 12:02:51 +0200jkoshy_(99b9359beb@user/jkoshy) jkoshy
2025-04-15 12:03:18 +0200jkoshy_jkoshy
2025-04-15 12:03:47 +0200Ankhers_Ankhers
2025-04-15 12:04:04 +0200bwe32145(~bwe@2a01:4f8:1c1c:4878::2) bwe
2025-04-15 12:04:09 +0200bwebwe_
2025-04-15 12:04:14 +0200bwe32145bwe
2025-04-15 12:05:01 +0200bwe(~bwe@2a01:4f8:1c1c:4878::2) (Client Quit)
2025-04-15 12:06:01 +0200bwe(~bwe@2a01:4f8:1c1c:4878::2) bwe
2025-04-15 12:06:57 +0200whereiseveryone_whereiseveryone
2025-04-15 12:07:12 +0200bwe(~bwe@2a01:4f8:1c1c:4878::2) (Remote host closed the connection)
2025-04-15 12:08:48 +0200bwe_(~bwe@2a01:4f8:1c1c:4878::2) (Remote host closed the connection)
2025-04-15 12:09:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 12:11:08 +0200 <[exa]> tomsmeding: hey btw, are there any good tools to kinda inspect what code is generated by accelerate?
2025-04-15 12:11:23 +0200 <[exa]> In particular I was wondering what the `permute` actually does inside
2025-04-15 12:13:42 +0200bwe(~bwe@2a01:4f8:1c1c:4878::2) bwe
2025-04-15 12:13:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 12:17:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 12:21:45 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
2025-04-15 12:22:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 12:23:32 +0200driib318(~driib@vmi931078.contaboserver.net) driib
2025-04-15 12:25:31 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-04-15 12:33:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 12:34:16 +0200internatetional(~nate@2001:448a:20a3:c2e5:91f2:cdf9:8535:492c) internatetional
2025-04-15 12:37:25 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-04-15 12:38:40 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2025-04-15 12:43:09 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2025-04-15 12:43:55 +0200tromp(~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl)
2025-04-15 12:50:15 +0200poscat(~poscat@user/poscat) (Read error: Connection reset by peer)
2025-04-15 12:51:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 12:54:08 +0200sprotte24(~sprotte24@p200300d16f238d002592e50c1399a7a3.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-15 12:56:02 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 13:00:05 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-04-15 13:00:31 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2025-04-15 13:01:48 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 13:05:07 +0200caconym(~caconym@user/caconym) caconym
2025-04-15 13:05:16 +0200tromp(~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-15 13:07:11 +0200internatetional(~nate@2001:448a:20a3:c2e5:91f2:cdf9:8535:492c) (Ping timeout: 272 seconds)
2025-04-15 13:08:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 13:08:30 +0200Diaseis(~Diaseis@laptop-ipv6-2001-660-6101-403-1-af.labri.fr) (Ping timeout: 240 seconds)
2025-04-15 13:10:38 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 13:10:44 +0200Otong(~Otong@user/Otong) Otong
2025-04-15 13:14:25 +0200 <ski> bwe : higher-order functions ?
2025-04-15 13:15:07 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 13:15:37 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 13:17:18 +0200jespada(~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) jespada
2025-04-15 13:18:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 13:19:10 +0200hsw_hsw
2025-04-15 13:19:14 +0200xff0x(~xff0x@2405:6580:b080:900:a06a:3d55:af99:ce4d)
2025-04-15 13:21:53 +0200 <haskellbridge> <Liamzee> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/multiline_strings.html
2025-04-15 13:21:54 +0200 <haskellbridge> <Liamzee> this is cruel
2025-04-15 13:21:57 +0200 <haskellbridge> <Liamzee> the ++ is unnecessary ;_;
2025-04-15 13:23:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 13:31:47 +0200tromp(~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d)
2025-04-15 13:33:19 +0200 <bwe> ski: can you elaborate?
2025-04-15 13:35:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 13:36:40 +0200 <ski> you'd need to undestand higher-order functions (and polymorphism, and probably at least a little bit about parameterized data types) before understanding the definition of `(>>=)', for `Reader r',`State s' (not to mention `Cont o')
2025-04-15 13:37:21 +0200 <ski> (preferably a little bit about type classes, and how instances work, too)
2025-04-15 13:38:10 +0200 <haskellbridge> <Liamzee> I don't have Bragilevsky's book with me :(
2025-04-15 13:38:14 +0200[exa]is still missing a monad tutorial that starts with Cont and iteratively brings order to the utter chaos
2025-04-15 13:38:30 +0200 <haskellbridge> <Liamzee> does he mention "don't use any writer but CPS, and it's considered better practice to use a logging library instead of writer these days?"
2025-04-15 13:39:09 +0200 <bwe> [exa] & ski: can you recommend a tutorial for Cont?
2025-04-15 13:39:29 +0200Inst(~Inst@user/Inst) Inst
2025-04-15 13:39:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 13:39:42 +0200 <haskellbridge> <Liamzee> hum
2025-04-15 13:40:33 +0200 <ski> i don't really recall what tutorials cover which ones
2025-04-15 13:40:39 +0200 <ski> i assume you checked
2025-04-15 13:40:48 +0200 <ski> @where Typeclassopedia
2025-04-15 13:40:48 +0200 <lambdabot> http://www.haskell.org/haskellwiki/Typeclassopedia
2025-04-15 13:40:53 +0200 <ski> also
2025-04-15 13:40:57 +0200 <ski> @where AAM
2025-04-15 13:40:57 +0200 <lambdabot> http://www.haskell.org/haskellwiki/All_About_Monads
2025-04-15 13:41:04 +0200 <haskellbridge> <Liamzee> this is _A_ monad tutorial for cont, not necessarily the best one
2025-04-15 13:41:26 +0200 <ski> .. i already knew about CPS, before i learned about `Cont', though
2025-04-15 13:41:41 +0200 <haskellbridge> <Liamzee> https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/the-mother-of-all-m…
2025-04-15 13:42:00 +0200 <ski> wasn't there a dpiponi blag on that ?
2025-04-15 13:42:41 +0200 <ski> ah, this is by dpiponi
2025-04-15 13:44:22 +0200 <bwe> Liamzee: I cannot find such hint, though he discusses different loggers
2025-04-15 13:44:36 +0200 <bwe> what's CPS?
2025-04-15 13:44:49 +0200 <bwe> so, CPS, Cont, Reader, Writer, State, in that order?
2025-04-15 13:45:50 +0200 <ski> right. i know that post from <http://blog.sigfpe.com/2008/12/mother-of-all-monads.html>
2025-04-15 13:45:56 +0200 <ski> no
2025-04-15 13:46:00 +0200 <haskellbridge> <ozkutuk> bwe: https://williamyaoh.com/posts/2022-05-02-the-cont-monad.html
2025-04-15 13:46:07 +0200 <ski> CPS is Continuation-Passing Style
2025-04-15 13:46:12 +0200 <ski> which is what `Cont' does
2025-04-15 13:47:36 +0200 <Inst> tbh many of the monad transformers have been problematic
2025-04-15 13:47:40 +0200 <ski> (also `Codensity', and one `IO'-specific that i don't recall the name of, atm)
2025-04-15 13:47:44 +0200 <Inst> if you use State monad from mtl or transformer package
2025-04-15 13:47:56 +0200 <Inst> remember to use State.Strict, it's a footgun, unfortunately
2025-04-15 13:48:13 +0200 <Inst> Writer from those packages are liable to be footguns unless you use the CPS variant
2025-04-15 13:48:24 +0200 <ski> ah
2025-04-15 13:48:26 +0200 <Inst> and Writer these days is used less for logging, and more for constructing builder eDSLs
2025-04-15 13:48:30 +0200 <ski> @hackage managed
2025-04-15 13:48:30 +0200 <lambdabot> https://hackage.haskell.org/package/managed
2025-04-15 13:48:56 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess
2025-04-15 13:49:00 +0200 <Inst> for instance, html in Haskell, whether through the Blaze or Lucid libraries, is a writer-like eDSL
2025-04-15 13:49:36 +0200sinbad(~sinbad@user/sinbad) ()
2025-04-15 13:49:53 +0200poscat(~poscat@user/poscat) (Read error: Connection reset by peer)
2025-04-15 13:50:09 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
2025-04-15 13:50:53 +0200urdh(~urdh@user/urdh) (Ping timeout: 272 seconds)
2025-04-15 13:52:47 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 13:57:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 14:05:55 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 14:07:05 +0200fp(~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 265 seconds)
2025-04-15 14:08:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 14:09:28 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-15 14:10:57 +0200j1n37-(~j1n37@user/j1n37) (Ping timeout: 265 seconds)
2025-04-15 14:13:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 14:18:31 +0200SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder
2025-04-15 14:19:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 14:20:12 +0200jespada(~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-04-15 14:23:23 +0200jespada(~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) jespada
2025-04-15 14:23:47 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-04-15 14:24:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 14:28:55 +0200 <Inst> you asked for it, ski
2025-04-15 14:28:56 +0200haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-04-15 14:29:00 +0200 <Inst> https://pastebin.com/QykNnTeQ
2025-04-15 14:30:36 +0200 <bwe> Inst:
2025-04-15 14:30:41 +0200kenran(~void@user/kenran) (Remote host closed the connection)
2025-04-15 14:31:17 +0200 <bwe> Inst: I am considering using a State / Writer to collect those parts that are not parsed yet and need parsers to be defined.
2025-04-15 14:31:18 +0200 <ski> wasn't aware i asked for anything
2025-04-15 14:31:23 +0200 <GdeVolpiano> Hello gentlepeople.
2025-04-15 14:31:51 +0200 <Inst> oh sorry
2025-04-15 14:31:54 +0200 <Inst> [exa]
2025-04-15 14:33:42 +0200 <GdeVolpiano> I'm hitting a bit of a snag here. I'm trying to help to ensure that the latest version of stylish-haskell works with Cabal 3.10 and Cabal 3.12, but when compiling on ghc-9.6.7 (not with ghc-9.8.4 or ghc-9.10.1), compilation fails on a variant of https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13743
2025-04-15 14:34:49 +0200 <GdeVolpiano> ghc_unique_counter64 is defined both in libHSrts-1.0.2 and libHSghc-lib-parser-9.10.1.20250103
2025-04-15 14:35:14 +0200 <[exa]> Inst: <3
2025-04-15 14:35:27 +0200 <GdeVolpiano> I've obviously seen the proposed fix linked from the ghc-9.6.7 release note, but I must admit that I'm a little bit at a loss about where to put it in…
2025-04-15 14:35:51 +0200 <ski> @let type StateC s a = Cont (s -> (a, s)) a
2025-04-15 14:35:52 +0200 <lambdabot> Defined.
2025-04-15 14:35:52 +0200rekahsoft(~rekahsoft@bras-base-orllon1103w-grc-15-174-95-4-83.dsl.bell.ca) rekahsoft
2025-04-15 14:35:55 +0200 <ski> @type let runStateC :: StateC s a -> s -> (a,s); runStateC m s = runCont m (\a -> (a, s)) s in runStateC
2025-04-15 14:35:55 +0200 <lambdabot> error:
2025-04-15 14:35:55 +0200 <lambdabot> • Couldn't match expected type ‘s1 -> (a1, s1)’
2025-04-15 14:35:55 +0200 <lambdabot> with actual type ‘(a1, s1)’
2025-04-15 14:36:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 14:37:04 +0200 <ski> @type let runStateC :: StateC s a -> s -> (a,s); runStateC m s = runCont m (\a -> (a, s)) s in runStateC
2025-04-15 14:37:05 +0200 <lambdabot> error:
2025-04-15 14:37:05 +0200 <lambdabot> • Couldn't match expected type ‘s1 -> (a1, s1)’
2025-04-15 14:37:05 +0200 <lambdabot> with actual type ‘(a1, s1)’
2025-04-15 14:37:11 +0200 <ski> er
2025-04-15 14:37:14 +0200 <ski> @type let runStateC :: StateC s a -> s -> (a,s); runStateC m s = runCont m (\a s -> (a, s)) s in runStateC
2025-04-15 14:37:15 +0200 <lambdabot> StateC s a -> s -> (a, s)
2025-04-15 14:40:19 +0200 <ski> ah, right. here's a more serious problem. `Functor (StateC s)' ?
2025-04-15 14:40:49 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 14:41:49 +0200 <ski> also `Functor MaybeC'
2025-04-15 14:43:30 +0200 <ski> the `IO' one also makes no sense (type error, unless `World' is supposed to be a function type ?)
2025-04-15 14:44:00 +0200 <ski> Inst ^
2025-04-15 14:44:37 +0200 <Inst> ski: it's deepseek ai brainrot
2025-04-15 14:45:33 +0200 <Axman6> GdeVolpiano: what error are you getting?
2025-04-15 14:45:33 +0200 <ski> i'd also at least want to see an exit from a recursive computation, for `Cont', if not a more exotic example (resuming computations later, reusing a continuation twice, ..)
2025-04-15 14:47:47 +0200 <Inst> yeah tbh i'm not that comfortable with cont, i think i made 2 attempts on it and at least i understand the methods, but not the justification of it
2025-04-15 14:48:36 +0200 <Inst> probably shouldn't have put it up :(
2025-04-15 14:49:27 +0200 <Inst> just as a note, monad tutorials on DeepSeek are so bad (Mistral's Le Chat is worse, iirc), that DeepSeek triggered political censorship of its monad tutorials previously
2025-04-15 14:50:17 +0200fp(~Thunderbi@wireless-86-50-140-117.open.aalto.fi) fp
2025-04-15 14:50:46 +0200 <Axman6> "A monad is just a pot of honey, where you pass in a pooh-bear which cosumes the honey and returns a new pot of honey"
2025-04-15 14:52:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 14:52:36 +0200 <haskellbridge> <Liamzee> https://cdn.discordapp.com/attachments/968989726633779215/1361685398060794026/image.png?ex=67ffa7d…
2025-04-15 14:52:47 +0200weary-traveler(~user@user/user363627) user363627
2025-04-15 14:53:13 +0200 <Axman6> I ain't clicking that
2025-04-15 14:57:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 14:59:32 +0200fp(~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Quit: fp)
2025-04-15 14:59:50 +0200fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-04-15 15:01:28 +0200 <GdeVolpiano> Axman6: /usr/bin/ld.gold: error: /usr/local/.ghcup/ghc/9.6.7/lib/ghc-9.6.7/lib/../lib/x86_64-linux-ghc-9.6.7/rts-1.0.2/libHSrts-1.0.2.a(Globals.o): multiple definition of 'ghc_unique_counter64'
2025-04-15 15:01:30 +0200 <GdeVolpiano> /usr/bin/ld.gold: /home/runner/.cabal/store/ghc-9.6.7/ghc-lib-parser-9.10.1.20250103-6822c1bb167729f4c6ea71be204d04266e852a68038c599260f1664e7c2cb181/lib/libHSghc-lib-parser-9.10.1.20250103-6822c1bb167729f4c6ea71be204d04266e852a68038c599260f1664e7c2cb181.a(genSym.o): previous definition here
2025-04-15 15:02:01 +0200 <haskellbridge> <maerwald> That's known
2025-04-15 15:02:14 +0200 <GdeVolpiano> Weirdly enough, that's when building stylish-haskell, not when building ghc-lib-parser
2025-04-15 15:02:17 +0200 <haskellbridge> <maerwald> Trying to compile hls?
2025-04-15 15:02:23 +0200 <Axman6> I was going to say #ghc might be a better place to ask
2025-04-15 15:02:30 +0200 <GdeVolpiano> Oh right, sorry
2025-04-15 15:02:33 +0200 <haskellbridge> <maerwald> I see
2025-04-15 15:02:41 +0200 <Axman6> always a good idea to ask here first though
2025-04-15 15:02:52 +0200GdeVolpianois off to #ghc then
2025-04-15 15:03:01 +0200 <GdeVolpiano> Thanks
2025-04-15 15:05:02 +0200tromp(~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-15 15:10:51 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 15:11:02 +0200hidjgr(~hidjgr@68.52.120.78.rev.sfr.net)
2025-04-15 15:11:20 +0200hidjgr(~hidjgr@68.52.120.78.rev.sfr.net) (Changing host)
2025-04-15 15:11:20 +0200hidjgr(~hidjgr@user/hidjgr) hidjgr
2025-04-15 15:17:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 15:20:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 15:21:17 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-15 15:25:11 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-04-15 15:25:27 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-04-15 15:25:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 15:30:49 +0200tromp(~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d)
2025-04-15 15:30:56 +0200poscat0x04(~poscat@user/poscat) poscat
2025-04-15 15:31:06 +0200poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 15:32:50 +0200poscat(~poscat@user/poscat) (Ping timeout: 260 seconds)
2025-04-15 15:34:18 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 15:35:32 +0200euleritian(~euleritia@dynamic-176-004-129-026.176.4.pool.telefonica.de) (Ping timeout: 265 seconds)
2025-04-15 15:36:16 +0200cheater(~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
2025-04-15 15:37:56 +0200euleritian(~euleritia@dynamic-176-004-021-148.176.4.pool.telefonica.de)
2025-04-15 15:38:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 15:38:21 +0200Square3(~Square@user/square) Square
2025-04-15 15:40:40 +0200polyphem(~rod@p4fc2c7a3.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2025-04-15 15:41:25 +0200Square(~Square4@user/square) (Ping timeout: 252 seconds)
2025-04-15 15:42:39 +0200polyphem(~rod@p4fc2c7a3.dip0.t-ipconnect.de) polyphem
2025-04-15 15:42:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 15:45:43 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-04-15 15:47:25 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
2025-04-15 15:50:08 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2025-04-15 15:53:54 +0200poscat(~poscat@user/poscat) (Read error: Connection reset by peer)
2025-04-15 15:55:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 16:00:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 16:01:57 +0200alecs(~alecs@nat16.software.imdea.org) (Quit: Client closed)
2025-04-15 16:03:13 +0200inca(~inca@71.30.233.213) (Read error: Connection reset by peer)
2025-04-15 16:03:51 +0200inca(~inca@h213.233.30.71.dynamic.ip.windstream.net)
2025-04-15 16:04:11 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:06:21 +0200Inst(~Inst@user/Inst) (Ping timeout: 252 seconds)
2025-04-15 16:08:38 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 16:10:35 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:12:01 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-15 16:12:45 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 16:15:46 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 16:17:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 16:17:38 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:17:40 +0200tabemann_(~tabemann@2600:1700:7990:24e0::49) (Ping timeout: 252 seconds)
2025-04-15 16:17:52 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 16:18:09 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:18:50 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 16:19:07 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:23:14 +0200tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 252 seconds)
2025-04-15 16:27:01 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 16:28:09 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 16:29:07 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
2025-04-15 16:29:11 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:32:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 16:36:30 +0200poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-04-15 16:38:37 +0200poscat(~poscat@user/poscat) poscat
2025-04-15 16:39:05 +0200tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2025-04-15 16:40:36 +0200fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 272 seconds)
2025-04-15 16:40:54 +0200inca(~inca@h213.233.30.71.dynamic.ip.windstream.net) (Ping timeout: 260 seconds)
2025-04-15 16:44:12 +0200 <haskellbridge> <Liamzee> this is sort of overkill, isn't it?
2025-04-15 16:44:14 +0200 <haskellbridge> <Liamzee> https://milkv.io/duo-s
2025-04-15 16:44:29 +0200famubu(~julinuser@user/famubu) famubu
2025-04-15 16:45:08 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 16:45:49 +0200 <famubu> Hi. I was trying to get familiar with TemplateHaskell, but the API documentation is not always making sense. There are many types, but I often find it difficult to understand the purpose of the types.
2025-04-15 16:46:05 +0200 <haskellbridge> <Liamzee> grr
2025-04-15 16:46:13 +0200 <haskellbridge> <Liamzee> https://gitlab.haskell.org/ghc/ghc/-/issues/16783
2025-04-15 16:46:13 +0200 <famubu> For example Pred, Cxt, Bang.
2025-04-15 16:46:30 +0200 <famubu> Is there some place where the meaning of these types are written down?
2025-04-15 16:46:34 +0200 <famubu> in TemplateHaskell.
2025-04-15 16:46:38 +0200inca(~inca@71.30.233.213)
2025-04-15 16:48:27 +0200 <famubu> Eg: https://hackage.haskell.org/package/template-haskell-2.23.0.0/docs/Language-Haskell-TH.html#t:Bang…
2025-04-15 16:49:38 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 16:52:24 +0200 <c_wraith> famubu: many of these things are just direct reflections of a combination of Haskell syntax and GHC extensions
2025-04-15 16:53:52 +0200 <tomsmeding> [exa]: for the accelerate-internal IR, Acc and Exp values have a Show instance that shows the program after fusion
2025-04-15 16:54:31 +0200 <tomsmeding> if you set the +debug flag on the 'accelerate' package then you can pass '+ACC -ddump-cc -dverbose' to your executable on the command line to see generated LLVM IR (warning: large)
2025-04-15 16:54:44 +0200 <tomsmeding> for other +ACC flags, see accelerate.cabal
2025-04-15 16:55:02 +0200 <c_wraith> BangType is a specifier for a data constructor field. It is an alias for (Bang, Type). The Type part is easier - it's just a representation of a Haskell type. The Bang part contains two components, SourceUnpackedness and SourceStrictness
2025-04-15 16:55:08 +0200 <tomsmeding> [exa]: (+ACC is intended to work like +RTS and also supports -ACC and --ACC like RTS does)
2025-04-15 16:55:34 +0200 <c_wraith> SourceStrictness reflects actual Haskell syntax - is the field declared to be strict, lazy, or neither?
2025-04-15 16:55:43 +0200 <tomsmeding> [exa]: for better or for worse, even 'r -> Acc a' has a Show instance
2025-04-15 16:55:59 +0200 <c_wraith> SourceUnpackedness reflects the GHC {-# Unpack #-} pragma being present or not
2025-04-15 16:57:11 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
2025-04-15 16:57:36 +0200 <c_wraith> famubu: If you are sufficiently familiar with Haskell syntax, it should be pretty obvious what BangType is for. But you do need to know about some GHC extensions to know what SourceUnpackedness maps to
2025-04-15 16:58:33 +0200michalz(~michalz@185.246.207.217)
2025-04-15 16:59:10 +0200 <tomsmeding> [exa]: you may want to use '+ACC -fforce-recomp' or '$ rm -rf ~/.cache/accelerate' to get things to recompile instead of using the cached .so
2025-04-15 16:59:13 +0200 <c_wraith> unfortunately, that's sort of how template haskell works at the moment. You need a separate syntax reference like the Haskell Report and the GHC user's guide for extensions to see what everything means
2025-04-15 16:59:38 +0200inca(~inca@71.30.233.213) (Ping timeout: 265 seconds)
2025-04-15 16:59:59 +0200 <famubu> I only have a superficial familiarity with Haskell.. I guess that's why..😅
2025-04-15 17:00:30 +0200 <famubu> Oh wait..
2025-04-15 17:00:50 +0200 <famubu> I guess `!` is for strict eval.
2025-04-15 17:00:59 +0200inca(~inca@71.30.233.213)
2025-04-15 17:01:54 +0200 <famubu> Which ghc extensions are relevant for SourceUnpackedness?
2025-04-15 17:02:20 +0200 <famubu> I have been trying to tick of the extensions that I had come across and wanted to add to that list: https://ju-sh.github.io/wiki/haskell/ghc-extensions.html
2025-04-15 17:02:45 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz) qeef
2025-04-15 17:02:53 +0200 <c_wraith> famubu: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/pragmas.html#unpack-pragma and the nounpack pragma, the next thing down
2025-04-15 17:03:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 17:03:18 +0200JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-04-15 17:03:21 +0200 <c_wraith> as pragmas, they don't need a separate language extension to enable
2025-04-15 17:04:46 +0200 <c_wraith> hey wait a second. the docs on the nounpack pragma are wrong, though the usage example shows correct usage.
2025-04-15 17:05:07 +0200 <c_wraith> (it should say "Where: data constructor field")
2025-04-15 17:06:12 +0200JuanDaughertyhad to look at the log to dispel "noun pack"
2025-04-15 17:06:39 +0200 <famubu> I too first read it as noun.
2025-04-15 17:07:04 +0200 <JuanDaugherty> which woulda been the excite
2025-04-15 17:07:39 +0200 <c_wraith> verbs never get packed, though
2025-04-15 17:10:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-15 17:14:15 +0200inca(~inca@71.30.233.213) (Ping timeout: 268 seconds)
2025-04-15 17:15:28 +0200Googulator82(~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
2025-04-15 17:15:56 +0200Googulator82(~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-15 17:17:37 +0200urdh(~urdh@user/urdh) urdh
2025-04-15 17:17:51 +0200inca(~inca@71.30.233.213)
2025-04-15 17:20:21 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz) (Ping timeout: 252 seconds)
2025-04-15 17:21:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 17:23:42 +0200jmcantrell(~weechat@user/jmcantrell) jmcantrell
2025-04-15 17:26:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 17:28:30 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-04-15 17:31:22 +0200acidjnk(~acidjnk@p200300d6e71c4f58dd6e73151eca3115.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2025-04-15 17:33:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 17:35:45 +0200tromp(~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d) (Ping timeout: 248 seconds)
2025-04-15 17:37:23 +0200skylord5816(~skylord58@user/skylord5816) skylord5816
2025-04-15 17:38:50 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 17:46:57 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 248 seconds)
2025-04-15 17:48:52 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-15 17:50:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 17:51:06 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz) qeef
2025-04-15 17:51:40 +0200SlackCoder(~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
2025-04-15 17:54:34 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 17:56:50 +0200Otong(~Otong@user/Otong) (Remote host closed the connection)
2025-04-15 17:57:21 +0200 <bwe> ski: so, Cont, Reader, Writer, State…in this order?
2025-04-15 17:58:47 +0200chele(~chele@user/chele) (Remote host closed the connection)
2025-04-15 18:04:06 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 18:06:15 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds)
2025-04-15 18:06:52 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 18:09:09 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2025-04-15 18:09:59 +0200 <[exa]> tomsmeding: oh great I didn't notice that the Show does anything, thx
2025-04-15 18:11:23 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 18:11:52 +0200acidjnk(~acidjnk@p200300d6e71c4f5865559714f8604ffa.dip0.t-ipconnect.de) acidjnk
2025-04-15 18:14:43 +0200 <tomsmeding> (that won't tell you what 'permute' is doing under the hood, though)
2025-04-15 18:17:55 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-04-15 18:18:54 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 265 seconds)
2025-04-15 18:22:59 +0200__monty__(~toonn@user/toonn) toonn
2025-04-15 18:24:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 18:27:13 +0200notdabs(~Owner@2600:1700:69cf:9000:2d58:f7ab:5036:c251)
2025-04-15 18:29:40 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 18:31:11 +0200Square3(~Square@user/square) (Ping timeout: 252 seconds)
2025-04-15 18:31:33 +0200euleritian(~euleritia@dynamic-176-004-021-148.176.4.pool.telefonica.de) (Ping timeout: 252 seconds)
2025-04-15 18:32:13 +0200euleritian(~euleritia@dynamic-176-000-053-196.176.0.pool.telefonica.de)
2025-04-15 18:40:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 18:42:11 +0200jespada(~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-04-15 18:42:17 +0200jacopovalanzano(~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net)
2025-04-15 18:42:26 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-04-15 18:43:12 +0200glguy(glguy@libera/staff/glguy) (Quit: Quit)
2025-04-15 18:44:00 +0200jespada(~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) jespada
2025-04-15 18:45:29 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz) (Ping timeout: 265 seconds)
2025-04-15 18:48:15 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 18:50:22 +0200tremon(~tremon@83.80.159.219) tremon
2025-04-15 18:51:59 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
2025-04-15 18:53:56 +0200glguy(glguy@libera/staff/glguy) glguy
2025-04-15 18:55:45 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2025-04-15 18:58:58 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-15 18:59:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 19:04:32 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-15 19:07:12 +0200 <[exa]> tomsmeding: yeah well I realized I can just disassemble the .so libs, should be sufficiently telling
2025-04-15 19:07:31 +0200 <tomsmeding> :)
2025-04-15 19:07:37 +0200 <[exa]> otoh yeah probably time to open the source :D
2025-04-15 19:07:42 +0200 <tomsmeding> LLVM IR may be more readable, depending on your inclination
2025-04-15 19:07:58 +0200 <[exa]> I find the IR more confusing tbh
2025-04-15 19:08:17 +0200 <tomsmeding> permute does atomic fetch-and-add when applicable, and uses locks when not
2025-04-15 19:08:27 +0200 <tomsmeding> `permute const` is special-cased to write without any synchronisation
2025-04-15 19:08:41 +0200 <[exa]> normally I just look with perf disassembly, that's quite clean even for haskells
2025-04-15 19:08:56 +0200 <tomsmeding> I mostly don't dare look at assembly from ghc
2025-04-15 19:09:13 +0200 <tomsmeding> but accelerate-generated code is fairly imperative
2025-04-15 19:09:25 +0200 <[exa]> like, after you implement some STG yourself it's awright
2025-04-15 19:09:28 +0200 <[exa]> yeah
2025-04-15 19:09:30 +0200 <tomsmeding> I see
2025-04-15 19:09:39 +0200euleritian(~euleritia@dynamic-176-000-053-196.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-15 19:10:04 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
2025-04-15 19:10:32 +0200 <tomsmeding> [exa]: there is +ACC -ddump-asm
2025-04-15 19:10:43 +0200 <[exa]> if I wanted to convert the permute to the lockless "one target array per thread", is there some support for running N sequential things in parallel and then reducing?
2025-04-15 19:12:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 19:13:29 +0200 <tomsmeding> no direct support, no
2025-04-15 19:13:34 +0200 <[exa]> (mainly because of GPUs later, locks there just hurt)
2025-04-15 19:13:56 +0200 <tomsmeding> I'll pass on your feature request :D
2025-04-15 19:14:33 +0200 <[exa]> should I open an actual feature request? just for tracking
2025-04-15 19:14:40 +0200 <[exa]> we also have a paper showing that it helps™
2025-04-15 19:15:16 +0200 <tomsmeding> oh I can believe that it helps, the compiler just can't in general convert the single-destination-array variant to the N-destination-arrays variant because the destination array might be large
2025-04-15 19:15:38 +0200 <tomsmeding> and doing something smarter, or making this configurable, is TODO
2025-04-15 19:15:47 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2025-04-15 19:16:02 +0200 <tomsmeding> actually, yes, please post a feature request -- no need to be verbose if you don't have time
2025-04-15 19:16:04 +0200 <[exa]> yeah I know, I didn't mean the permute to automagically guess it right; more like to allow specifying a parallel run of a few permutes
2025-04-15 19:16:08 +0200 <tomsmeding> link https://ircbrowse.tomsmeding.com/browse/lchaskell?id=1529868#trid1529868
2025-04-15 19:16:39 +0200 <[exa]> ok
2025-04-15 19:17:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 19:17:41 +0200 <tomsmeding> just for expectation management: the first priority of the people who actually have (some) paid time to hack on accelerate is to port the GPU backend to the whole new compilation pipeline that has been under development over the past few years
2025-04-15 19:17:53 +0200 <tomsmeding> but documenting use cases is always good
2025-04-15 19:18:08 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-04-15 19:28:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 19:30:53 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2025-04-15 19:32:15 +0200 <[exa]> ok well let's see https://github.com/AccelerateHS/accelerate/issues/552
2025-04-15 19:32:53 +0200 <[exa]> I hope to get this nonsense of mine out ASAP, needs to get through some internal checks. Might be useful to have it linked from accelerate website, it's a similar pop usecase as the other demos there.
2025-04-15 19:33:37 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 19:35:00 +0200nacation(~m-3l4s76@user/nacation) nacation
2025-04-15 19:36:51 +0200gawen_(~gawen@user/gawen) gawen
2025-04-15 19:37:56 +0200gawen(~gawen@user/gawen) (Ping timeout: 272 seconds)
2025-04-15 19:39:38 +0200 <lxsameer> hey folks, do you have experience with using syscalls and libc in haskell? does it worth the effort or should I stick to C?
2025-04-15 19:41:08 +0200 <tomsmeding> lxsameer: binding libc functions is not difficult with the FFI; directly invoking syscalls from haskell ain't gonna work, but then that's hard from C too
2025-04-15 19:42:16 +0200 <lxsameer> tomsmeding: ok cool, would it be better to interface the syscalls in a static C library and use it in haskell?
2025-04-15 19:42:40 +0200 <tomsmeding> lxsameer: cabal has support for compiling in C code
2025-04-15 19:42:46 +0200 <tomsmeding> no need to manually create a static C library
2025-04-15 19:42:57 +0200 <lxsameer> perfect. Thank you
2025-04-15 19:43:29 +0200 <tomsmeding> just add a space-separated list of .c files in `c-sources:`; you may want to set `cc-options:` too
2025-04-15 19:43:40 +0200 <tomsmeding> then you can bind those C functions via the FFI as usual
2025-04-15 19:43:52 +0200 <lxsameer> wow, that's pretty easy then
2025-04-15 19:43:52 +0200euleritian(~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2025-04-15 19:44:00 +0200euleritian(~euleritia@dynamic-176-000-199-065.176.0.pool.telefonica.de)
2025-04-15 19:44:15 +0200 <tomsmeding> plenty of libraries on hackage, including very core ones like bytestring and text, do this, so it's rather well supported :)
2025-04-15 19:44:48 +0200 <lxsameer> awesome, that makes me happy
2025-04-15 19:45:40 +0200 <tomsmeding> [exa]: re simd-block permute: accelerate has vector types https://hackage.haskell.org/package/accelerate-1.3.0.0/docs/Data-Array-Accelerate.html#g:42
2025-04-15 19:45:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 19:46:02 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 19:46:11 +0200internatetional(~nate@2001:448a:20a3:c2e5:8bd5:1444:ad98:1780) internatetional
2025-04-15 19:46:27 +0200 <tomsmeding> all arrays in accelerate are represented in struct-of-arrays form at runtime (so at runtime there is no such thing as an array of tuples), but these Vec things count as a unit -- they act like a scalar type
2025-04-15 19:47:57 +0200 <tomsmeding> I have no clue what permute does with such vectors though
2025-04-15 19:48:03 +0200 <tomsmeding> it's quite possible it generates bad code
2025-04-15 19:50:01 +0200 <[exa]> tomsmeding: Vec seems like sized by a Nat, I think I need it a lil more flexible
2025-04-15 19:50:12 +0200 <tomsmeding> ah
2025-04-15 19:50:22 +0200 <[exa]> (or can I change a Nat in type based on input data? I guess not, right?)
2025-04-15 19:50:28 +0200[exa]not into Nats
2025-04-15 19:50:31 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 19:50:32 +0200 <tomsmeding> not based on input data to the accelerate program
2025-04-15 19:50:44 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds)
2025-04-15 19:50:48 +0200 <tomsmeding> but you can based on input data to the haskell program that generates the accelerate program
2025-04-15 19:51:16 +0200 <[exa]> so if runN gets the right type somehow, it will be able to do this for the right Nat?
2025-04-15 19:51:44 +0200 <tomsmeding> https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-TypeNats.html#v:withSomeSNat
2025-04-15 19:52:07 +0200 <tomsmeding> withSomeSNat 17 $ \SNat -> _
2025-04-15 19:52:29 +0200 <tomsmeding> oh you'll probably need to `\(Snat :: n) -> _` and then use @n judiciously in the _
2025-04-15 19:52:40 +0200 <tomsmeding> er, `\(SNat :: SNat n) -> _`
2025-04-15 19:52:43 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2025-04-15 19:52:52 +0200 <tomsmeding> I didn't say it was comfortable
2025-04-15 19:55:51 +0200 <tomsmeding> [exa]: I thought the paper was rather short for a PL conference, but I saw ICFP in the footer, but then I couldn't find your paper in the 2020 edition, and I was confused, and I also saw ICFP on the acm website, and I was more confused
2025-04-15 19:56:00 +0200 <tomsmeding> and then I saw that I'd misread this like 15x and it's actually ICPP
2025-04-15 19:56:03 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-15 19:57:29 +0200ft(~ft@p4fc2a6e6.dip0.t-ipconnect.de) ft
2025-04-15 19:58:10 +0200 <[exa]> ah ok so `withSomeSNat` should do it
2025-04-15 19:58:52 +0200 <[exa]> gooooood
2025-04-15 19:58:59 +0200 <tomsmeding> does it work?
2025-04-15 19:59:19 +0200 <[exa]> it works in my head now :D :D
2025-04-15 19:59:46 +0200 <[exa]> lemme first disassemble the thing to see what it actually does internally :D
2025-04-15 20:00:09 +0200 <tomsmeding> (by the way, doing n sequential things in parallel in accelerate is easy -- that's not the hard part in expressing your fancy permute algorithm in current accelerate. (Just `generate (I1 8) (\(I1 i) -> _)`.) The problem is that sequential code runs in Exp and in Exp you can't write to arrays)
2025-04-15 20:00:39 +0200 <tomsmeding> Exp does have `while` so you can do multiple sequential loops in parallel, but that's not enough for you here
2025-04-15 20:00:52 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-04-15 20:01:57 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 20:05:02 +0200euleritian(~euleritia@dynamic-176-000-199-065.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2025-04-15 20:05:20 +0200 <[exa]> tomsmeding: I kinda think about what would happen if I literally specify say 8 permutes from the data subsets, and zip them with + in the end
2025-04-15 20:05:21 +0200euleritian(~euleritia@95.90.214.149)
2025-04-15 20:05:56 +0200 <tomsmeding> oh
2025-04-15 20:06:00 +0200 <[exa]> prospecfively, s/8/n_detected_cpus/
2025-04-15 20:06:08 +0200 <tomsmeding> right
2025-04-15 20:06:14 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-04-15 20:06:27 +0200 <tomsmeding> so this doesn't work I think because the current scheduler will do the permutes in parallel and the 8-loop sequentially
2025-04-15 20:06:38 +0200 <tomsmeding> I'm 95% sure of that
2025-04-15 20:06:42 +0200 <tomsmeding> not 100%
2025-04-15 20:07:04 +0200 <tomsmeding> [exa]: I have an idea
2025-04-15 20:07:11 +0200 <[exa]> docs say "The permute operation will always be evaluated; it can not be fused into a later step."
2025-04-15 20:07:17 +0200 <[exa]> hoped to use this as a kinda barrier :D
2025-04-15 20:07:30 +0200 <tomsmeding> if you're currently doing a single permute into an array of shape `sh`, do a single permute into an array of shape `sh :. 8` instead
2025-04-15 20:07:46 +0200 <tomsmeding> no
2025-04-15 20:07:50 +0200mdz(~mdz@78-131-27-35.pool.digikabel.hu)
2025-04-15 20:07:52 +0200 <tomsmeding> `(Z :. 8) ++ sh`
2025-04-15 20:08:02 +0200 <tomsmeding> then transpose and fold to get the result
2025-04-15 20:08:17 +0200mdz(~mdz@78-131-27-35.pool.digikabel.hu) (Client Quit)
2025-04-15 20:08:27 +0200 <tomsmeding> oh but that doesn't work because you can't reliably get a single thread to choose a particular index
2025-04-15 20:08:36 +0200 <tomsmeding> [exa]: you're confusing me
2025-04-15 20:08:48 +0200 <tomsmeding> you're making me think accelerate can do this
2025-04-15 20:08:50 +0200 <tomsmeding> it can't
2025-04-15 20:08:58 +0200 <tomsmeding> my mental model was correct all along
2025-04-15 20:08:58 +0200 <[exa]> c'mon it can
2025-04-15 20:09:01 +0200 <[exa]> :D
2025-04-15 20:09:06 +0200 <tomsmeding> it might in the future :p
2025-04-15 20:09:08 +0200 <haskellbridge> <sm> stop confusing tomsmeding everyone
2025-04-15 20:09:11 +0200 <tomsmeding> it just can't right now
2025-04-15 20:09:15 +0200 <tomsmeding> sm: thank you
2025-04-15 20:09:18 +0200 <[exa]> lol
2025-04-15 20:09:51 +0200 <[exa]> ok
2025-04-15 20:10:06 +0200 <[exa]> I'll read the source and see
2025-04-15 20:10:14 +0200tabaqui(~tabaqui@167.71.80.236) tabaqui
2025-04-15 20:10:55 +0200 <[exa]> ( after the trick with many.hsubparser a few days ago I'll be suspicious to statements that haskell libraries can't do something :D )
2025-04-15 20:11:30 +0200tomsmedingmissed that
2025-04-15 20:11:44 +0200 <tomsmeding> I have a fairly good idea of what the internal language of accelerate looks like :p
2025-04-15 20:12:23 +0200 <tomsmeding> the only things I'm not 100% sure about are my claim about the scheduler, and the statement that you can't reliably get the thread index in a permute into an 8xN array
2025-04-15 20:12:46 +0200 <tomsmeding> for the latter, certainly not in a documented way, but perhaps you can abuse reading the source code to figure out the thread distribution logic and work with that
2025-04-15 20:13:05 +0200jespada(~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds)
2025-04-15 20:13:28 +0200 <[exa]> tomsmeding: re subparser: https://ircbrowse.tomsmeding.com/browse/lchaskell?id=1527499#trid1527499
2025-04-15 20:14:10 +0200 <tomsmeding> cute
2025-04-15 20:14:34 +0200jespada(~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy) jespada
2025-04-15 20:15:10 +0200 <geekosaur> (I still don't see the problem there, `optparse-applicative` is supposed to be `Applicative`, right? and `many` is certainly `Applicative` and intended for parsing? so bug if that doesn't work 😛
2025-04-15 20:15:18 +0200 <geekosaur> )]
2025-04-15 20:16:59 +0200 <[exa]> I had extremely positive lego feelings there, much more than with just normal parsers and normal `many` :D
2025-04-15 20:17:05 +0200 <[exa]> optparse-applicative <3
2025-04-15 20:19:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 20:19:32 +0200 <EvanR> somebody should rename "dsl disease" to "lego feelings"
2025-04-15 20:20:40 +0200 <[exa]> quality disease.
2025-04-15 20:21:04 +0200 <EvanR> things went together really easily and worked great disease
2025-04-15 20:21:18 +0200 <EvanR> made the world a better place disease
2025-04-15 20:21:26 +0200 <Rembane> I want a pandemic of that!
2025-04-15 20:21:32 +0200 <geekosaur> tetris disease 😛
2025-04-15 20:21:49 +0200 <EvanR> tetris going badly might be a great counterexample
2025-04-15 20:22:10 +0200 <EvanR> yes things CAN fit together
2025-04-15 20:22:12 +0200 <EvanR> but they didn't
2025-04-15 20:22:27 +0200 <EvanR> (skill issue)
2025-04-15 20:22:30 +0200 <tomsmeding> makes me think of ghc typelevel nats
2025-04-15 20:22:33 +0200ludihan(~ludihan@189.36.207.182)
2025-04-15 20:22:47 +0200 <tomsmeding> you have (+) but GHC has no clue that 1 + n = n + 1
2025-04-15 20:22:55 +0200 <monochrom> Why was DSL disease called a disease?
2025-04-15 20:23:14 +0200ludihan(~ludihan@189.36.207.182) (Client Quit)
2025-04-15 20:23:29 +0200 <EvanR> for dramatic tension
2025-04-15 20:23:33 +0200 <tomsmeding> and `type family F n where F 0 = A ; F n = B (F (n - 1))` doesn't work because even if you do a check if a particular SNat is 0, the alternative branch doesn't provide evidence that n is apart from 0
2025-04-15 20:23:45 +0200 <[exa]> monochrom: it spread
2025-04-15 20:24:07 +0200 <monochrom> Can we say "OOP disease" too? Because it too spread.
2025-04-15 20:24:17 +0200 <EvanR> that's a dead horse beaten
2025-04-15 20:24:21 +0200 <monochrom> Python disease? JS disease?
2025-04-15 20:24:27 +0200 <EvanR> same
2025-04-15 20:24:39 +0200 <tomsmeding> at least one of the stupidities got fixed recently https://gitlab.haskell.org/ghc/ghc/-/issues/24845 :D
2025-04-15 20:24:47 +0200 <monochrom> copilot disease
2025-04-15 20:24:57 +0200 <EvanR> LLM disease
2025-04-15 20:25:04 +0200 <EvanR> the disease frontier
2025-04-15 20:25:29 +0200monochromnot happy about people being jealous to intelligence.
2025-04-15 20:25:48 +0200 <[exa]> +1 ^
2025-04-15 20:26:15 +0200sprotte24(~sprotte24@p200300d16f238d00f5d5381b458840fc.dip0.t-ipconnect.de)
2025-04-15 20:26:39 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-15 20:27:29 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
2025-04-15 20:29:37 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-15 20:30:42 +0200califax(~califax@user/califx) califx
2025-04-15 20:33:17 +0200califax(~califax@user/califx) (Remote host closed the connection)
2025-04-15 20:35:47 +0200califax(~califax@user/califx) califx
2025-04-15 20:36:43 +0200internatetional(~nate@2001:448a:20a3:c2e5:8bd5:1444:ad98:1780) (Ping timeout: 252 seconds)
2025-04-15 20:39:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 20:44:11 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2025-04-15 20:44:17 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 20:45:01 +0200tabaqui(~tabaqui@167.71.80.236) (Quit: WeeChat 4.6.0)
2025-04-15 20:47:40 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) segfaultfizzbuzz
2025-04-15 20:51:09 +0200ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-04-15 20:51:30 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-04-15 20:55:47 +0200statusbot11(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
2025-04-15 20:56:01 +0200statusbot(~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) statusbot
2025-04-15 20:56:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 20:57:39 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2025-04-15 21:00:01 +0200caconym(~caconym@user/caconym) (Quit: bye)
2025-04-15 21:00:14 +0200lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2025-04-15 21:00:42 +0200caconym(~caconym@user/caconym) caconym
2025-04-15 21:01:03 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2025-04-15 21:01:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 21:02:24 +0200jespada(~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-04-15 21:03:18 +0200jespada(~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy) jespada
2025-04-15 21:06:49 +0200pavonia(~user@user/siracusa) siracusa
2025-04-15 21:13:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 21:14:37 +0200 <Hecate> < tomsmeding> Hecate: I see that the commit that changed ghci's default prompt from '%s> ' to 'ghci> ' was committed by you; what was the motivation for that change? // After a couple of imports it starts to get fucking noisy
2025-04-15 21:18:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 21:18:26 +0200harveypwca(~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
2025-04-15 21:21:00 +0200pera(~pera@user/pera) pera
2025-04-15 21:23:58 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 21:24:14 +0200 <tomsmeding> it does
2025-04-15 21:24:24 +0200 <tomsmeding> before a couple imports, its fucking confusing
2025-04-15 21:24:26 +0200 <tomsmeding> :)
2025-04-15 21:24:43 +0200 <[exa]> :set -shortprompt?
2025-04-15 21:24:56 +0200 <tomsmeding> what exacerbates the confusingness is that `:r` adds the first module in the cabal file to your scope unconditionally, with `*`
2025-04-15 21:25:23 +0200 <tomsmeding> so if that module happens to define any stuff that clashes with the modules you actually want to work in, you constantly have to :m -ThatFirstModule after :r
2025-04-15 21:25:40 +0200 <tomsmeding> without %s in prompt, you have no idea this is happening; with %s, it's obvious
2025-04-15 21:25:56 +0200 <tomsmeding> also without %s in prompt, a beginner has no idea what's even happening
2025-04-15 21:26:01 +0200 <tomsmeding> and in which component they are
2025-04-15 21:26:07 +0200 <haskellbridge> <sm> what sort of UI/UX could improve on these I wonder
2025-04-15 21:26:44 +0200 <tomsmeding> [exa]: is that a hypothetical or a real option
2025-04-15 21:27:12 +0200 <[exa]> future real
2025-04-15 21:27:43 +0200 <tomsmeding> sm: I'm not sure, honestly; I'm personally fine with the noisiness in return for the clarity it gives. But I can imagine this is not so for others
2025-04-15 21:27:47 +0200 <haskellbridge> <sm> a two-line prompt ?
2025-04-15 21:27:55 +0200 <monochrom> Beginner has no idea what's happening. Unconditionally. >:)
2025-04-15 21:27:57 +0200 <tomsmeding> with a purely line-based text-mode interface, I'm not sure one can do much better
2025-04-15 21:28:00 +0200michalz(~michalz@185.246.207.217) (Remote host closed the connection)
2025-04-15 21:28:10 +0200 <haskellbridge> <sm> a message when you start ghci, informing of the two options and how to toggle ?
2025-04-15 21:28:12 +0200 <tomsmeding> sm: surely people will find that at least as noisy?
2025-04-15 21:28:33 +0200 <monochrom> Really, any better UI requires windowing.
2025-04-15 21:28:44 +0200 <haskellbridge> <sm> show one prompt with the new scope info whenever it changes, short prompts otherwise ?
2025-04-15 21:28:45 +0200 <tomsmeding> I think monochrom is right
2025-04-15 21:28:46 +0200 <monochrom> or hovering
2025-04-15 21:29:13 +0200notdabs(~Owner@2600:1700:69cf:9000:2d58:f7ab:5036:c251) (Read error: Connection reset by peer)
2025-04-15 21:29:15 +0200 <tomsmeding> sm: I like that one, but not as a prompt but simply as a notification: hey, the module list is now this \n λ>
2025-04-15 21:29:29 +0200 <haskellbridge> <sm> simple, eh ?
2025-04-15 21:29:48 +0200 <monochrom> BTW this is why most people set their terminal emulators and unix shells to set the window title to the current directory name. Oh wait we can do that to GHCi too!
2025-04-15 21:29:56 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 21:30:03 +0200 <tomsmeding> it would be too long for the window title, though
2025-04-15 21:30:07 +0200 <haskellbridge> <sm> I don't do that, can never rely on it
2025-04-15 21:30:15 +0200 <tomsmeding> that's the whole point of why people wanted to eliminate it :p
2025-04-15 21:30:26 +0200 <tomsmeding> sm: are we going again with the "simple, eh?"
2025-04-15 21:30:33 +0200 <tomsmeding> this time I'm not going to implement it
2025-04-15 21:30:40 +0200 <monochrom> Oh yeah I'm also routinely 10 levels deep with cwd so it's also too long for window titles too :)
2025-04-15 21:31:34 +0200 <haskellbridge> <sm> tomsmeding yes I think being a little more chatty and explanatory about initial scope and scope changes would be simple and helpful
2025-04-15 21:31:52 +0200emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-04-15 21:31:52 +0200 <haskellbridge> <sm> and needed, since it's so confusing
2025-04-15 21:34:22 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-04-15 21:36:49 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
2025-04-15 21:37:24 +0200L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-04-15 21:39:28 +0200 <haskellbridge> <sm> (but it doesn't need to be in every single prompt)
2025-04-15 21:39:34 +0200 <tomsmeding> agreed
2025-04-15 21:41:45 +0200 <ski> bwe : i'm not sure doing `Cont' before the others would be preferable, generally
2025-04-15 21:44:48 +0200 <EvanR> tomsmeding, did you learn all these vagaries of ghci by reading the source
2025-04-15 21:45:33 +0200 <haskellbridge> <Liamzee> monochrom: eDSL disease is when a codebase is based on a custom, often poorly-documented eDSL, that only the authors understand. Not an inevitability with eDSL use, but a possibility.
2025-04-15 21:46:05 +0200 <EvanR> I think you mean lego feelings
2025-04-15 21:46:52 +0200 <haskellbridge> <Liamzee> Okay, then please describe lego feelings.
2025-04-15 21:47:17 +0200amadaluzia(~amadaluzi@user/amadaluzia) (Ping timeout: 244 seconds)
2025-04-15 21:47:40 +0200bliminse(~bliminse@user/bliminse) (Ping timeout: 252 seconds)
2025-04-15 21:47:47 +0200 <EvanR> when a codebase is based on a custom, well or well enough documented DSL, that not only the authors understand
2025-04-15 21:47:50 +0200 <haskellbridge> <Liamzee> ah, when type-tetris is intuitive or when the DSL just clicks
2025-04-15 21:47:59 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-04-15 21:47:59 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 21:48:05 +0200 <tomsmeding> EvanR: by hitting them every single fucking time I use ghci
2025-04-15 21:48:13 +0200 <tomsmeding> at some point you learn what the patterns are
2025-04-15 21:48:18 +0200 <EvanR> lol
2025-04-15 21:48:49 +0200 <EvanR> sounds like trying to play minigolf while blind
2025-04-15 21:48:50 +0200 <tomsmeding> I use ghci in two modes: 1. playing around; no issues. 2. testing a project: lots of :r
2025-04-15 21:49:19 +0200tromp(~textual@2001:1c00:3487:1b00:c0e6:9a43:de22:8c0a)
2025-04-15 21:49:27 +0200 <tomsmeding> in mode 2 I sometimes `:def R \_ -> Prelude.return ":r\n:m -That.First.Module\n"` so that I can `:R` to fix the shit
2025-04-15 21:49:32 +0200bliminse(~bliminse@user/bliminse) bliminse
2025-04-15 21:49:50 +0200 <tomsmeding> but I can't put it in ~/.ghci because the command naturally depends on what that first module is
2025-04-15 21:49:59 +0200gorignak(~gorignak@user/gorignak) (Quit: quit)
2025-04-15 21:50:13 +0200gorignak(~gorignak@user/gorignak) gorignak
2025-04-15 21:50:40 +0200 <tomsmeding> EvanR: for the longest time I was actually unsure what secret blessed module was picked each time; I was under the impression that it was somehow at the top of the dependency tree or something
2025-04-15 21:50:52 +0200 <tomsmeding> then I complained about it here and someone suggested the "first in the cabal list" thing
2025-04-15 21:51:10 +0200 <tomsmeding> which is _actually_ just the first module passed on ghci's command line, and cabal sensibly just pastes the module list as-is
2025-04-15 21:52:35 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-15 21:58:21 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 244 seconds)
2025-04-15 21:58:22 +0200 <haskellbridge> <Liamzee> smtp-mail vs haskellnet-ssl?
2025-04-15 22:04:45 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 22:09:19 +0200AlexNoo_(~AlexNoo@178.34.161.112)
2025-04-15 22:11:55 +0200target_i(~target_i@user/target-i/x-6023099) target_i
2025-04-15 22:12:06 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2025-04-15 22:12:12 +0200 <haskellbridge> <Liamzee> also, if it's okay with you, brief question
2025-04-15 22:12:32 +0200 <haskellbridge> <Liamzee> foo :: m (m (m (m a) ) )
2025-04-15 22:12:40 +0200AlexNoo(~AlexNoo@94.233.240.249) (Ping timeout: 252 seconds)
2025-04-15 22:12:44 +0200AlexNoo_AlexNoo
2025-04-15 22:13:20 +0200AlexZenon(~alzenon@94.233.240.249) (Ping timeout: 268 seconds)
2025-04-15 22:14:10 +0200AlexZenon(~alzenon@178.34.161.112)
2025-04-15 22:14:50 +0200 <haskellbridge> <Liamzee> oh, i see how it works :(
2025-04-15 22:15:06 +0200 <haskellbridge> <Liamzee> join foo :: m (m (m a))
2025-04-15 22:15:15 +0200 <haskellbridge> <Liamzee> why not foo :: m (m a)?
2025-04-15 22:15:57 +0200 <mauke> join removes one layer of m
2025-04-15 22:16:02 +0200 <EvanR> it's an exercise in unifying your type after suitable renaming with the type of join _
2025-04-15 22:16:18 +0200 <mauke> offer void where prohibited
2025-04-15 22:16:31 +0200 <EvanR> :t join
2025-04-15 22:16:33 +0200 <lambdabot> Monad m => m (m a) -> m a
2025-04-15 22:17:08 +0200 <EvanR> consider foo : m (m (m (m Z)))
2025-04-15 22:17:16 +0200 <haskellbridge> <Liamzee> no, but can't n a = m (m a)?
2025-04-15 22:17:17 +0200 <EvanR> then if a = m (m Z)
2025-04-15 22:17:38 +0200 <EvanR> join foo :: m a = m (m (m Z))
2025-04-15 22:17:55 +0200 <haskellbridge> <Liamzee> then join n (n a) = n a, but it's effectively (m (m a))
2025-04-15 22:18:12 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz) qeef
2025-04-15 22:18:13 +0200 <haskellbridge> <Liamzee> shouldn't this cause an ambiguous types error?
2025-04-15 22:18:19 +0200Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2025-04-15 22:18:33 +0200 <EvanR> the question is what is a
2025-04-15 22:18:43 +0200 <EvanR> or what it could be possibly
2025-04-15 22:18:43 +0200 <haskellbridge> <Liamzee> say (), then
2025-04-15 22:18:45 +0200 <EvanR> only one thing
2025-04-15 22:18:51 +0200 <EvanR> in the case of foo
2025-04-15 22:18:51 +0200 <monochrom> No, HM type checking does not know to do "let n = m . m".
2025-04-15 22:19:11 +0200 <haskellbridge> <Liamzee> but should it be an ambiguous types error?
2025-04-15 22:19:37 +0200 <EvanR> ambiguous types error when trying to find a Monad instance?
2025-04-15 22:19:45 +0200 <EvanR> that's when that error happens
2025-04-15 22:19:50 +0200 <haskellbridge> <Liamzee> ya
2025-04-15 22:19:58 +0200 <monochrom> BTW this is why there is a newtype wrapper "newtype Compose f g a = Compose (f (g a))" then you can have "choose n = Compose m m".
2025-04-15 22:20:06 +0200 <haskellbridge> <Liamzee> since it should be able to result in either element?
2025-04-15 22:20:17 +0200 <EvanR> I'm not sure where you got n
2025-04-15 22:20:23 +0200 <EvanR> that wasn't introduced anywhere
2025-04-15 22:20:25 +0200 <EvanR> we have m and a
2025-04-15 22:20:37 +0200 <EvanR> and Z which is my renaming of your a from foo
2025-04-15 22:21:45 +0200 <EvanR> the only possibility I see in join foo is that a = m (m Z)
2025-04-15 22:22:11 +0200 <mauke> <Liamzee> no, but can't n a = m (m a)? <- no
2025-04-15 22:22:32 +0200 <mauke> because then you'd need to have n = m (m
2025-04-15 22:22:36 +0200 <mauke> and that's a syntax error
2025-04-15 22:23:02 +0200 <EvanR> oh
2025-04-15 22:23:31 +0200 <EvanR> that is where n in first mentioned but it's not clear to me what it is
2025-04-15 22:23:38 +0200 <mauke> or alternatively, n = m and a = m a
2025-04-15 22:23:54 +0200 <mauke> but that's both boring and illegal because a would be infinitely deep
2025-04-15 22:24:30 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 22:24:31 +0200Feuermagier_(~Feuermagi@user/feuermagier) Feuermagier
2025-04-15 22:24:31 +0200Feuermagier(~Feuermagi@user/feuermagier) (Killed (mercury.libera.chat (Nickname regained by services)))
2025-04-15 22:24:31 +0200Feuermagier_Feuermagier
2025-04-15 22:27:00 +0200 <monochrom> BTW IIUC "choose n such that n a = m (m a)" is part of higher-order unification (because you are saying "first recognize that m (m a) = (m . m) a, then unify n with m . m")
2025-04-15 22:27:46 +0200 <mauke> "we don't do that here"
2025-04-15 22:27:49 +0200 <monochrom> (the "recognize m (m a) = (m . m) a" part is a higher-order step)
2025-04-15 22:28:14 +0200 <monochrom> So yeah the short answer is HM simply doesn't do that.
2025-04-15 22:28:55 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 22:28:59 +0200 <EvanR> now I get it
2025-04-15 22:29:56 +0200 <EvanR> however (at least when classes and instances are global) you have a inference still finds the most general type
2025-04-15 22:30:07 +0200 <EvanR> you're saying it's missing something?
2025-04-15 22:30:14 +0200 <EvanR> or it's covered
2025-04-15 22:31:05 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-04-15 22:31:35 +0200 <monochrom> The definition of "most general" is carefully written to have the fine print "restricted to first-order only".
2025-04-15 22:31:58 +0200 <monochrom> Once again, never trust "meaningful names"!
2025-04-15 22:32:27 +0200 <monochrom> "conditions apply" is always true.
2025-04-15 22:37:29 +0200 <haskellbridge> <sm> tomsmeding ooh, that looks like my (argument preserving..)
2025-04-15 22:37:29 +0200 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/dIwzLMBxDaLycgbYfWcCkhtz/kbzNeP-RDR0 (3 lines)
2025-04-15 22:39:19 +0200alecs(~alecs@61.pool85-58-154.dynamic.orange.es) alecs
2025-04-15 22:42:12 +0200 <tomsmeding> sm: yes, :def is useful for little shorthands like these :)
2025-04-15 22:42:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 22:46:45 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-15 22:58:50 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection)
2025-04-15 22:59:41 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 23:01:40 +0200qeef(~qeef@138-169-143-94.cust.centrio.cz) (Quit: Lost terminal)
2025-04-15 23:04:30 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2025-04-15 23:04:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 23:07:24 +0200 <bwe> Is there a visualisation like Graham Hutton uses in his book for explaining the Cont monad?
2025-04-15 23:07:25 +0200Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2025-04-15 23:08:11 +0200 <[exa]> tomsmeding: anyway looks like the reduction to multiple buckets must be done manually no matter what. Should be pretty much OK with runNWith or so.
2025-04-15 23:08:39 +0200 <EvanR> monochrom, principle type, the details of which seems to be at the end of the making adhoc polymorphism less adhoc paper
2025-04-15 23:09:04 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-04-15 23:09:41 +0200 <tomsmeding> [exa]: that might work, yes. Accelerate will obviously not do fusion across runN calls
2025-04-15 23:10:03 +0200 <[exa]> more interesting case with PTX tho
2025-04-15 23:10:09 +0200 <tomsmeding> also not sure how copying data back and forth to GPU would work with multiple runN calls
2025-04-15 23:10:11 +0200 <tomsmeding> right
2025-04-15 23:10:40 +0200 <tomsmeding> also on GPU you really want something more specific, like accumulating values in shared memory
2025-04-15 23:10:47 +0200 <[exa]> yap
2025-04-15 23:11:25 +0200 <tomsmeding> I spoke a bit with the accelerate guys after we chatted here, and the idea has come up before to do stuff like this with `permute`, but nobody ever got to implementing it
2025-04-15 23:11:48 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-04-15 23:11:48 +0200ljdarj1ljdarj
2025-04-15 23:12:00 +0200 <[exa]> like, it could be pretty simple actually
2025-04-15 23:12:47 +0200Pozyomka(~pyon@user/pyon) (Ping timeout: 252 seconds)
2025-04-15 23:12:48 +0200 <[exa]> given there would be some control of how the threadblocks get created
2025-04-15 23:15:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 23:15:35 +0200 <[exa]> if I can make sure that different blocks of input indeed get to different threadblocks (and there's no surprising stuff like interleaving etc), then it's quite possible to do this with a simple permute which scatters to several target arrays based simply on indexes
2025-04-15 23:16:54 +0200 <[exa]> s/threadblock/however cuda calls the group of warps running/
2025-04-15 23:17:52 +0200takuan(~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
2025-04-15 23:20:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 23:30:23 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2025-04-15 23:30:55 +0200CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-04-15 23:31:14 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2025-04-15 23:33:16 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 23:34:09 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
2025-04-15 23:36:34 +0200Pozyomka(~pyon@user/pyon) pyon
2025-04-15 23:37:54 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-15 23:38:53 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2025-04-15 23:41:42 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
2025-04-15 23:42:37 +0200 <tomsmeding> [exa]: "thread block" is actually the cuda term for it
2025-04-15 23:42:44 +0200 <tomsmeding> Apple calls it a "threadgroup"
2025-04-15 23:43:27 +0200 <tomsmeding> rejoice in consistency / rejoice inconsistency
2025-04-15 23:46:15 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2025-04-15 23:48:42 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
2025-04-15 23:49:04 +0200Googulator82(~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
2025-04-15 23:49:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-15 23:49:19 +0200Googulator82(~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
2025-04-15 23:52:59 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2025-04-15 23:55:39 +0200pera(~pera@user/pera) (Quit: leaving)
2025-04-15 23:56:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-15 23:56:07 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
2025-04-15 23:57:37 +0200jacopovalanzano(~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net) (Quit: Client closed)
2025-04-15 23:59:37 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2025-04-15 23:59:44 +0200Googulator82(~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)