Home liberachat/#haskell: Logs Calendar

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

00:04:13 distopico joins (~cerdolibr@2001:4b98:dc2:41:216:3eff:fe6c:52a1)
00:04:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:09:35 × acidjnk quits (~acidjnk@p200300d6e71c4f08edc2aa045ea45701.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:14:42 Googulator16 joins (~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu)
00:16:28 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:18:06 × Googulator quits (~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Ping timeout: 240 seconds)
00:20:52 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
00:25:24 × xff0x quits (~xff0x@2405:6580:b080:900:eff9:16f2:1634:b479) (Ping timeout: 245 seconds)
00:33:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:37:30 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
00:42:10 × Googulator16 quits (~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
00:42:25 Googulator16 joins (~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu)
00:42:38 × amadaluzia quits (~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.)
00:49:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
00:54:31 × otto_s quits (~user@p5de2f29b.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
00:55:27 otto_s joins (~user@p5b04470d.dip0.t-ipconnect.de)
00:57:12 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
01:09:44 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:14:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
01:20:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:24:13 statusbot11 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
01:25:24 × inca quits (~inca@71.30.233.213) (Ping timeout: 245 seconds)
01:25:30 Square3 joins (~Square@user/square)
01:25:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
01:26:06 tabemann_ joins (~tabemann@2600:1700:7990:24e0::49)
01:26:32 ycp_ joins (~znc@user/dragestil)
01:26:42 SoF8 joins (~skius@user/skius)
01:26:45 inca joins (~inca@71.30.233.213)
01:28:04 down200- joins (~down200@shell.lug.mtu.edu)
01:28:33 visilii_ joins (~visilii@85.172.76.90)
01:28:55 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
01:28:59 bwe_ joins (~bwe@2a01:4f8:1c1c:4878::2)
01:29:06 vgtw joins (~vgtw@user/vgtw)
01:29:34 × tabaqui quits (~tabaqui@167.71.80.236) (Ping timeout: 245 seconds)
01:29:34 Taneb0 joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
01:32:00 ryanbooker joins (uid4340@id-4340.hampstead.irccloud.com)
01:33:41 <haskellbridge> <Bowuigi> EvanR the way that iso and osi "inject and extract" seems like foldology all over again with in-out
01:34:36 × Square2 quits (~Square@user/square) (*.net *.split)
01:34:36 × ljdarj quits (~Thunderbi@user/ljdarj) (*.net *.split)
01:34:36 × Angelz quits (Angelz@angelz.oddprotocol.org) (*.net *.split)
01:34:36 × Taneb quits (~Taneb@213.138.101.13) (*.net *.split)
01:34:36 × jle` quits (~jle`@2603:8001:3b00:11:2d8b:3abc:251d:2a6) (*.net *.split)
01:34:36 × robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (*.net *.split)
01:34:36 × dpk quits (~dpk@jains.nonceword.org) (*.net *.split)
01:34:37 × lyxia quits (~lyxia@poisson.chat) (*.net *.split)
01:34:37 × vgtw_ quits (~vgtw@user/vgtw) (*.net *.split)
01:34:37 × sefidel quits (~sefidel@user/sefidel) (*.net *.split)
01:34:37 × samhh__ quits (7569f027cf@2a03:6000:1812:100::e4) (*.net *.split)
01:34:37 × ursa-major quits (114efe6c39@2a03:6000:1812:100::11f3) (*.net *.split)
01:34:37 × sm2n quits (ae95cb1267@user/sm2n) (*.net *.split)
01:34:37 × raghavgururajan quits (ea769b8000@user/raghavgururajan) (*.net *.split)
01:34:37 × tabemann quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (*.net *.split)
01:34:37 × exarkun quits (~exarkun@user/exarkun) (*.net *.split)
01:34:37 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split)
01:34:37 × Adran quits (~adran@botters/adran) (*.net *.split)
01:34:38 × samhh quits (7569f027cf@2a03:6000:1812:100::e4) (*.net *.split)
01:34:38 × visilii quits (~visilii@85.172.76.90) (*.net *.split)
01:34:38 × Rembane quits (~Rembane@user/Rembane) (*.net *.split)
01:34:38 × p3n quits (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (*.net *.split)
01:34:38 × echoreply quits (~echoreply@45.32.163.16) (*.net *.split)
01:34:38 × _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (*.net *.split)
01:34:38 × SoF quits (~skius@user/skius) (*.net *.split)
01:34:38 × down200 quits (~down200@shell.lug.mtu.edu) (*.net *.split)
01:34:38 × bwe quits (~bwe@static.72.17.201.195.clients.your-server.de) (*.net *.split)
01:34:39 × dmoerner quits (~dmoerner@fedora/dmoerner) (*.net *.split)
01:34:39 × nshepperd2 quits (~nshepperd@2a01:4f9:3b:4cc9::2) (*.net *.split)
01:34:39 × V quits (~v@ircpuzzles/2022/april/winner/V) (*.net *.split)
01:34:39 × xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split)
01:34:39 × dfordivam1 quits (~dfordivam@160.16.87.223.v6.sakura.ne.jp) (*.net *.split)
01:34:39 × laman quits (laman@rego.ai) (*.net *.split)
01:34:39 × nadja quits (~dequbed@banana-new.kilobyte22.de) (*.net *.split)
01:34:39 × ycp quits (~znc@user/dragestil) (*.net *.split)
01:34:39 × mzg quits (mzg@abusers.hu) (*.net *.split)
01:34:41 SoF8 is now known as SoF
01:34:43 ycp_ is now known as ycp
01:38:15 amadaluzia joins (~amadaluzi@user/amadaluzia)
01:38:29 Adran joins (~adran@botters/adran)
01:38:31 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
01:41:37 echoreply joins (~echoreply@2001:19f0:9002:1f3b:5400:ff:fe6f:8b8d)
01:43:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
01:46:05 Square joins (~Square4@user/square)
01:46:34 × sp1ff quits (~user@c-67-160-173-55.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
01:47:03 xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
01:49:31 × Square3 quits (~Square@user/square) (Ping timeout: 244 seconds)
01:52:27 aaronv joins (~aaronv@user/aaronv)
01:56:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:01:24 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
02:11:26 ljdarj joins (~Thunderbi@user/ljdarj)
02:11:26 Angelz joins (Angelz@angelz.oddprotocol.org)
02:11:26 jle` joins (~jle`@2603:8001:3b00:11:2d8b:3abc:251d:2a6)
02:11:26 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
02:11:26 dpk joins (~dpk@jains.nonceword.org)
02:11:26 lyxia joins (~lyxia@poisson.chat)
02:11:26 sefidel joins (~sefidel@user/sefidel)
02:11:26 samhh__ joins (7569f027cf@2a03:6000:1812:100::e4)
02:11:26 ursa-major joins (114efe6c39@2a03:6000:1812:100::11f3)
02:11:26 raghavgururajan joins (ea769b8000@user/raghavgururajan)
02:11:26 sm2n joins (ae95cb1267@user/sm2n)
02:11:26 exarkun joins (~exarkun@user/exarkun)
02:11:26 samhh joins (7569f027cf@2a03:6000:1812:100::e4)
02:11:26 Rembane joins (~Rembane@user/Rembane)
02:11:26 p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
02:11:26 laman joins (laman@rego.ai)
02:11:26 _d0t joins (~{-d0t-}@user/-d0t-/x-7915216)
02:11:26 dmoerner joins (~dmoerner@fedora/dmoerner)
02:11:26 nshepperd2 joins (~nshepperd@2a01:4f9:3b:4cc9::2)
02:11:26 V joins (~v@ircpuzzles/2022/april/winner/V)
02:11:26 xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1)
02:11:26 dfordivam1 joins (~dfordivam@160.16.87.223.v6.sakura.ne.jp)
02:11:26 nadja joins (~dequbed@banana-new.kilobyte22.de)
02:11:26 mzg joins (mzg@abusers.hu)
02:11:44 × robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Max SendQ exceeded)
02:11:44 × Angelz quits (Angelz@angelz.oddprotocol.org) (Max SendQ exceeded)
02:14:43 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:15:52 × hsw quits (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw) (Remote host closed the connection)
02:15:55 hsw_ joins (~hsw@112-104-12-126.adsl.dynamic.seed.net.tw)
02:19:45 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
02:21:24 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
02:25:35 × prasad quits (~Thunderbi@c-73-246-138-70.hsd1.in.comcast.net) (Remote host closed the connection)
02:27:58 × amadaluzia quits (~amadaluzi@user/amadaluzia) (Ping timeout: 244 seconds)
02:30:16 amadaluzia joins (~amadaluzi@user/amadaluzia)
02:31:22 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
02:32:06 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:32:16 × td_ quits (~td@i5387092A.versanet.de) (Ping timeout: 272 seconds)
02:33:56 td_ joins (~td@i5387093D.versanet.de)
02:36:59 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 260 seconds)
02:39:26 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
02:40:50 Angelz joins (Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973)
02:51:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
02:56:05 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
03:07:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:12:31 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
03:18:08 × notdabs quits (~Owner@2600:1700:69cf:9000:1c62:21ed:d1ea:b97) (Quit: Leaving)
03:21:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:22:57 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
03:26:44 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
03:38:58 × rekahsoft quits (~rekahsoft@174.95.4.83) (Remote host closed the connection)
03:39:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
03:41:46 × ryanbooker quits (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
03:43:21 notdabs joins (~Owner@2600:1700:69cf:9000:1c62:21ed:d1ea:b97)
03:43:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
03:46:40 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 268 seconds)
03:46:41 j1n37- joins (~j1n37@user/j1n37)
03:55:49 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:00:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
04:03:33 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
04:12:48 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:17:31 j1n37 joins (~j1n37@user/j1n37)
04:18:44 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds)
04:20:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
04:24:14 × notdabs quits (~Owner@2600:1700:69cf:9000:1c62:21ed:d1ea:b97) (Quit: Leaving)
04:28:34 michalz joins (~michalz@185.246.207.217)
04:32:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:33:04 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
04:33:59 <haskellbridge> <Liamzee> i just put up a server, will be stuffing DNS over it so you can watch my traffic accident in real time
04:34:07 <haskellbridge> <Liamzee> but is there something that causes text to take a long time to build?
04:36:52 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
04:48:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
04:53:03 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
05:05:42 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:10:27 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
05:13:58 × euleritian quits (~euleritia@95.90.214.149) (Ping timeout: 252 seconds)
05:14:20 euleritian joins (~euleritia@dynamic-176-000-004-180.176.0.pool.telefonica.de)
05:15:40 × inca quits (~inca@71.30.233.213) (Ping timeout: 244 seconds)
05:17:55 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:21:28 andrewboltachev joins (~andrey@178.141.0.147)
05:21:36 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
05:22:28 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:23:25 × euleritian quits (~euleritia@dynamic-176-000-004-180.176.0.pool.telefonica.de) (Ping timeout: 260 seconds)
05:24:10 euleritian joins (~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de)
05:27:17 inca joins (~inca@71.30.233.213)
05:27:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
05:32:15 × euleritian quits (~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
05:32:33 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
05:35:25 harveypwca joins (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
05:36:48 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
05:37:21 euleritian joins (~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de)
05:38:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:40:59 Garbanzo joins (~Garbanzo@2602:304:6eac:dc10::2e)
05:43:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
05:45:41 × amadaluzia quits (~amadaluzi@user/amadaluzia) (Ping timeout: 268 seconds)
05:46:14 × euleritian quits (~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
05:46:32 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
05:49:01 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
05:51:23 j1n37- joins (~j1n37@user/j1n37)
05:52:18 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds)
05:56:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
05:59:27 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
06:00:02 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
06:02:01 Googulator82 joins (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
06:03:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
06:05:18 × Googulator16 quits (~Googulato@2a01-036d-0106-211a-315b-d519-517f-afe7.pool6.digikabel.hu) (Ping timeout: 240 seconds)
06:15:55 aaronv joins (~aaronv@user/aaronv)
06:16:40 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds)
06:17:07 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:17:10 euleritian joins (~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de)
06:21:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
06:28:21 takuan joins (~takuan@d8D86B601.access.telenet.be)
06:29:12 × mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
06:30:56 mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es)
06:33:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:36:44 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 260 seconds)
06:38:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
06:45:27 forell_ joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl)
06:46:54 × forell quits (~forell@user/forell) (Ping timeout: 276 seconds)
06:49:07 aaronv joins (~aaronv@user/aaronv)
06:50:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
06:51:03 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
06:53:58 × aaronv quits (~aaronv@user/aaronv) (Ping timeout: 276 seconds)
06:54:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
07:00:01 × caconym quits (~caconym@user/caconym) (Quit: bye)
07:00:33 × jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
07:00:50 caconym joins (~caconym@user/caconym)
07:02:30 × Garbanzo quits (~Garbanzo@2602:304:6eac:dc10::2e) (Remote host closed the connection)
07:03:42 chele joins (~chele@user/chele)
07:07:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:07:35 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
07:08:37 × andrewboltachev quits (~andrey@178.141.0.147) (Quit: Leaving.)
07:12:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
07:13:52 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:14:36 fp joins (~Thunderbi@2001:708:20:1406::1370)
07:15:44 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:17:46 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
07:19:34 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
07:20:27 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
07:20:53 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
07:20:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:21:58 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
07:24:33 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
07:25:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
07:25:57 × califax quits (~califax@user/califx) (Remote host closed the connection)
07:27:11 califax joins (~califax@user/califx)
07:28:39 × euleritian quits (~euleritia@dynamic-176-000-057-245.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
07:28:56 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
07:33:03 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
07:33:23 acidjnk joins (~acidjnk@p200300d6e71c4f58dd6e73151eca3115.dip0.t-ipconnect.de)
07:37:42 alecs joins (~alecs@nat16.software.imdea.org)
07:38:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:39:19 × ft quits (~ft@p4fc2a6e6.dip0.t-ipconnect.de) (Quit: leaving)
07:41:42 gmg joins (~user@user/gehmehgeh)
07:45:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
07:54:12 lxsameer joins (~lxsameer@Serene/lxsameer)
07:55:37 sinbad joins (~sinbad@user/sinbad)
07:57:06 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
07:58:13 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
08:01:58 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
08:02:43 kenran joins (~void@user/kenran)
08:08:08 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
08:15:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:20:05 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
08:22:56 tabaqui joins (~tabaqui@167.71.80.236)
08:25:04 × kenran quits (~void@user/kenran) (Remote host closed the connection)
08:27:18 kenran joins (~void@user/kenran)
08:31:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:33:48 × poscat quits (~poscat@user/poscat) (Ping timeout: 252 seconds)
08:34:34 __monty__ joins (~toonn@user/toonn)
08:36:21 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
08:38:34 poscat joins (~poscat@user/poscat)
08:43:53 × puke quits (~puke@user/puke) (Ping timeout: 244 seconds)
08:47:14 puke joins (~puke@user/puke)
08:49:20 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
08:51:01 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
08:53:49 poscat joins (~poscat@user/poscat)
08:53:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
09:03:07 × fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds)
09:03:33 fp joins (~Thunderbi@wireless-86-50-140-117.open.aalto.fi)
09:03:41 × gorignak quits (~gorignak@user/gorignak) (Read error: Connection reset by peer)
09:05:05 gorignak joins (~gorignak@user/gorignak)
09:06:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:11:16 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
09:14:22 × sand-witch quits (~m-mzmz6l@vmi833741.contaboserver.net) (Ping timeout: 244 seconds)
09:18:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:19:07 Diaseis joins (~Diaseis@laptop-ipv6-2001-660-6101-403-1-af.labri.fr)
09:19:34 sand-witch joins (~m-mzmz6l@vmi833741.contaboserver.net)
09:24:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
09:24:24 polyphem joins (~rod@p4fc2c7a3.dip0.t-ipconnect.de)
09:27:15 sprotte24 joins (~sprotte24@p200300d16f238d002592e50c1399a7a3.dip0.t-ipconnect.de)
09:33:59 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
09:34:10 bwe_ 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.
09:34:14 bwe_ is now known as bwe
09:36:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:36:58 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:37:10 × driib318 quits (~driib@vmi931078.contaboserver.net) (Quit: Ping timeout (120 seconds))
09:41:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
09:42:13 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
09:46:13 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds)
09:47:10 euleritian joins (~euleritia@dynamic-176-004-129-026.176.4.pool.telefonica.de)
09:49:21 zmt01 joins (~zmt00@user/zmt00)
09:49:45 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
09:52:55 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
09:53:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
09:57:46 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
09:59:39 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
10:01:24 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
10:01:24 haritz joins (~hrtz@user/haritz)
10:02:26 × rselim quits (ce261f06ff@user/milesrout) (Ping timeout: 248 seconds)
10:02:26 × stureplan quits (22e45d5caf@user/stureplan) (Ping timeout: 248 seconds)
10:02:26 × akspecs quits (00cc8321af@sourcehut/user/akspecs) (Ping timeout: 248 seconds)
10:02:28 × fn_lumi quits (3d621153a5@2a03:6000:1812:100::df7) (Read error: Connection reset by peer)
10:02:31 × smiesner quits (b0cf5acf8c@2a03:6000:1812:100::13b9) (Read error: Connection reset by peer)
10:02:36 fn_lumi joins (3d621153a5@2a03:6000:1812:100::df7)
10:02:38 smiesner joins (b0cf5acf8c@user/smiesner)
10:02:41 × lucyy quits (228ee8f0ce@user/lucyy) (Write error: Connection reset by peer)
10:02:41 × JoelMcCracken quits (5ea8252fbb@2a03:6000:1812:100::10e3) (Read error: Connection reset by peer)
10:02:41 × uint64_t quits (ec7b9bb9f3@2a03:6000:1812:100::139b) (Write error: Connection reset by peer)
10:02:42 × sus quits (1b7af6299f@user/zeromomentum) (Write error: Connection reset by peer)
10:02:42 × ymherklotz quits (cb2c9cfbdd@2a03:6000:1812:100::29a) (Write error: Connection reset by peer)
10:02:42 × arcadewise quits (52968ed80d@2a03:6000:1812:100::3df) (Write error: Connection reset by peer)
10:02:42 × jakzale quits (6291399afa@user/jakzale) (Write error: Connection reset by peer)
10:02:42 × whereiseveryone quits (206ba86c98@2a03:6000:1812:100::2e4) (Write error: Connection reset by peer)
10:02:42 × probie quits (cc0b34050a@user/probie) (Write error: Connection reset by peer)
10:02:42 × simendsjo quits (34b0550437@2a03:6000:1812:100::1441) (Write error: Connection reset by peer)
10:02:42 × Ankhers quits (e99e97ef8e@2a03:6000:1812:100::2a2) (Write error: Connection reset by peer)
10:02:42 × thatonelutenist quits (8216c46202@2a03:6000:1812:100::fb3) (Write error: Connection reset by peer)
10:02:42 × jkoshy quits (99b9359beb@user/jkoshy) (Write error: Connection reset by peer)
10:02:42 × chaitlatte0 quits (ea29c0bb16@user/chaitlatte0) (Write error: Connection reset by peer)
10:02:42 × lane quits (809450f172@2a03:6000:1812:100::1300) (Write error: Connection reset by peer)
10:02:42 × RussetParrotBear quits (45ce440a48@2a03:6000:1812:100::e2) (Read error: Connection reset by peer)
10:02:49 lane joins (809450f172@2a03:6000:1812:100::1300)
10:02:49 RussetParrotBear joins (45ce440a48@2a03:6000:1812:100::e2)
10:02:49 whereiseveryone_ joins (206ba86c98@2a03:6000:1812:100::2e4)
10:02:50 jakzale joins (6291399afa@user/jakzale)
10:02:50 probie joins (cc0b34050a@user/probie)
10:02:50 rselim joins (ce261f06ff@user/milesrout)
10:02:50 sus joins (1b7af6299f@user/zeromomentum)
10:02:50 akspecs joins (00cc8321af@sourcehut/user/akspecs)
10:02:51 chaitlatte0 joins (ea29c0bb16@user/chaitlatte0)
10:02:51 arcadewise joins (52968ed80d@2a03:6000:1812:100::3df)
10:02:51 thatonelutenist joins (8216c46202@2a03:6000:1812:100::fb3)
10:02:51 lucyy joins (228ee8f0ce@user/lucyy)
10:02:51 stureplan joins (22e45d5caf@user/stureplan)
10:02:51 uint64_t joins (ec7b9bb9f3@2a03:6000:1812:100::139b)
10:02:51 Ankhers_ joins (e99e97ef8e@2a03:6000:1812:100::2a2)
10:02:51 simendsjo joins (34b0550437@2a03:6000:1812:100::1441)
10:02:51 ymherklotz joins (cb2c9cfbdd@2a03:6000:1812:100::29a)
10:02:51 JoelMcCracken joins (5ea8252fbb@2a03:6000:1812:100::10e3)
10:02:51 jkoshy_ joins (99b9359beb@user/jkoshy)
10:03:18 jkoshy_ is now known as jkoshy
10:03:47 Ankhers_ is now known as Ankhers
10:04:04 bwe32145 joins (~bwe@2a01:4f8:1c1c:4878::2)
10:04:09 bwe is now known as bwe_
10:04:14 bwe32145 is now known as bwe
10:05:01 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (Client Quit)
10:06:01 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
10:06:57 whereiseveryone_ is now known as whereiseveryone
10:07:12 × bwe quits (~bwe@2a01:4f8:1c1c:4878::2) (Remote host closed the connection)
10:08:48 × bwe_ quits (~bwe@2a01:4f8:1c1c:4878::2) (Remote host closed the connection)
10:09:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:11:08 <[exa]> tomsmeding: hey btw, are there any good tools to kinda inspect what code is generated by accelerate?
10:11:23 <[exa]> In particular I was wondering what the `permute` actually does inside
10:13:42 bwe joins (~bwe@2a01:4f8:1c1c:4878::2)
10:13:59 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
10:17:35 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:21:45 × xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds)
10:22:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
10:23:32 driib318 joins (~driib@vmi931078.contaboserver.net)
10:25:31 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:33:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:34:16 internatetional joins (~nate@2001:448a:20a3:c2e5:91f2:cdf9:8535:492c)
10:37:25 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
10:38:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
10:43:09 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
10:43:55 tromp joins (~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl)
10:50:15 × poscat quits (~poscat@user/poscat) (Read error: Connection reset by peer)
10:51:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
10:54:08 × sprotte24 quits (~sprotte24@p200300d16f238d002592e50c1399a7a3.dip0.t-ipconnect.de) (Quit: Leaving)
10:56:02 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
11:00:05 × caconym quits (~caconym@user/caconym) (Quit: bye)
11:00:31 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
11:01:48 poscat joins (~poscat@user/poscat)
11:05:07 caconym joins (~caconym@user/caconym)
11:05:16 × tromp quits (~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:07:11 × internatetional quits (~nate@2001:448a:20a3:c2e5:91f2:cdf9:8535:492c) (Ping timeout: 272 seconds)
11:08:14 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:08:30 × Diaseis quits (~Diaseis@laptop-ipv6-2001-660-6101-403-1-af.labri.fr) (Ping timeout: 240 seconds)
11:10:38 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
11:10:44 Otong joins (~Otong@user/Otong)
11:14:25 <ski> bwe : higher-order functions ?
11:15:07 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
11:15:37 poscat joins (~poscat@user/poscat)
11:17:18 jespada joins (~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy)
11:18:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:19:10 hsw_ is now known as hsw
11:19:14 xff0x joins (~xff0x@2405:6580:b080:900:a06a:3d55:af99:ce4d)
11:21:53 <haskellbridge> <Liamzee> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/multiline_strings.html
11:21:54 <haskellbridge> <Liamzee> this is cruel
11:21:57 <haskellbridge> <Liamzee> the ++ is unnecessary ;_;
11:23:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
11:31:47 tromp joins (~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d)
11:33:19 <bwe> ski: can you elaborate?
11:35:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:36:40 <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')
11:37:21 <ski> (preferably a little bit about type classes, and how instances work, too)
11:38:10 <haskellbridge> <Liamzee> I don't have Bragilevsky's book with me :(
11:38:14 [exa] is still missing a monad tutorial that starts with Cont and iteratively brings order to the utter chaos
11:38:30 <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?"
11:39:09 <bwe> [exa] & ski: can you recommend a tutorial for Cont?
11:39:29 Inst joins (~Inst@user/Inst)
11:39:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
11:39:42 <haskellbridge> <Liamzee> hum
11:40:33 <ski> i don't really recall what tutorials cover which ones
11:40:39 <ski> i assume you checked
11:40:48 <ski> @where Typeclassopedia
11:40:48 <lambdabot> http://www.haskell.org/haskellwiki/Typeclassopedia
11:40:53 <ski> also
11:40:57 <ski> @where AAM
11:40:57 <lambdabot> http://www.haskell.org/haskellwiki/All_About_Monads
11:41:04 <haskellbridge> <Liamzee> this is _A_ monad tutorial for cont, not necessarily the best one
11:41:26 <ski> .. i already knew about CPS, before i learned about `Cont', though
11:41:41 <haskellbridge> <Liamzee> https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/the-mother-of-all-monads
11:42:00 <ski> wasn't there a dpiponi blag on that ?
11:42:41 <ski> ah, this is by dpiponi
11:44:22 <bwe> Liamzee: I cannot find such hint, though he discusses different loggers
11:44:36 <bwe> what's CPS?
11:44:49 <bwe> so, CPS, Cont, Reader, Writer, State, in that order?
11:45:50 <ski> right. i know that post from <http://blog.sigfpe.com/2008/12/mother-of-all-monads.html>
11:45:56 <ski> no
11:46:00 <haskellbridge> <ozkutuk> bwe: https://williamyaoh.com/posts/2022-05-02-the-cont-monad.html
11:46:07 <ski> CPS is Continuation-Passing Style
11:46:12 <ski> which is what `Cont' does
11:47:36 <Inst> tbh many of the monad transformers have been problematic
11:47:40 <ski> (also `Codensity', and one `IO'-specific that i don't recall the name of, atm)
11:47:44 <Inst> if you use State monad from mtl or transformer package
11:47:56 <Inst> remember to use State.Strict, it's a footgun, unfortunately
11:48:13 <Inst> Writer from those packages are liable to be footguns unless you use the CPS variant
11:48:24 <ski> ah
11:48:26 <Inst> and Writer these days is used less for logging, and more for constructing builder eDSLs
11:48:30 <ski> @hackage managed
11:48:30 <lambdabot> https://hackage.haskell.org/package/managed
11:48:56 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
11:49:00 <Inst> for instance, html in Haskell, whether through the Blaze or Lucid libraries, is a writer-like eDSL
11:49:36 sinbad parts (~sinbad@user/sinbad) ()
11:49:53 × poscat quits (~poscat@user/poscat) (Read error: Connection reset by peer)
11:50:09 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
11:50:53 × urdh quits (~urdh@user/urdh) (Ping timeout: 272 seconds)
11:52:47 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
11:57:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
12:05:55 poscat joins (~poscat@user/poscat)
12:07:05 × fp quits (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Ping timeout: 265 seconds)
12:08:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:09:28 j1n37 joins (~j1n37@user/j1n37)
12:10:57 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds)
12:13:19 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
12:18:31 SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky)
12:19:31 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:20:12 × jespada quits (~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
12:23:23 jespada joins (~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy)
12:23:47 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
12:24:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
12:28:55 <Inst> you asked for it, ski
12:28:56 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
12:29:00 <Inst> https://pastebin.com/QykNnTeQ
12:30:36 <bwe> Inst:
12:30:41 × kenran quits (~void@user/kenran) (Remote host closed the connection)
12:31:17 <bwe> Inst: I am considering using a State / Writer to collect those parts that are not parsed yet and need parsers to be defined.
12:31:18 <ski> wasn't aware i asked for anything
12:31:23 <GdeVolpiano> Hello gentlepeople.
12:31:51 <Inst> oh sorry
12:31:54 <Inst> [exa]
12:33:42 <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
12:34:49 <GdeVolpiano> ghc_unique_counter64 is defined both in libHSrts-1.0.2 and libHSghc-lib-parser-9.10.1.20250103
12:35:14 <[exa]> Inst: <3
12:35:27 <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…
12:35:51 <ski> @let type StateC s a = Cont (s -> (a, s)) a
12:35:52 <lambdabot> Defined.
12:35:52 rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-15-174-95-4-83.dsl.bell.ca)
12:35:55 <ski> @type let runStateC :: StateC s a -> s -> (a,s); runStateC m s = runCont m (\a -> (a, s)) s in runStateC
12:35:55 <lambdabot> error:
12:35:55 <lambdabot> • Couldn't match expected type ‘s1 -> (a1, s1)’
12:35:55 <lambdabot> with actual type ‘(a1, s1)’
12:36:12 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:37:04 <ski> @type let runStateC :: StateC s a -> s -> (a,s); runStateC m s = runCont m (\a -> (a, s)) s in runStateC
12:37:05 <lambdabot> error:
12:37:05 <lambdabot> • Couldn't match expected type ‘s1 -> (a1, s1)’
12:37:05 <lambdabot> with actual type ‘(a1, s1)’
12:37:11 <ski> er
12:37:14 <ski> @type let runStateC :: StateC s a -> s -> (a,s); runStateC m s = runCont m (\a s -> (a, s)) s in runStateC
12:37:15 <lambdabot> StateC s a -> s -> (a, s)
12:40:19 <ski> ah, right. here's a more serious problem. `Functor (StateC s)' ?
12:40:49 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
12:41:49 <ski> also `Functor MaybeC'
12:43:30 <ski> the `IO' one also makes no sense (type error, unless `World' is supposed to be a function type ?)
12:44:00 <ski> Inst ^
12:44:37 <Inst> ski: it's deepseek ai brainrot
12:45:33 <Axman6> GdeVolpiano: what error are you getting?
12:45:33 <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, ..)
12:47:47 <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
12:48:36 <Inst> probably shouldn't have put it up :(
12:49:27 <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
12:50:17 fp joins (~Thunderbi@wireless-86-50-140-117.open.aalto.fi)
12:50:46 <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"
12:52:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
12:52:36 <haskellbridge> <Liamzee> https://cdn.discordapp.com/attachments/968989726633779215/1361685398060794026/image.png?ex=67ffa7d9&is=67fe5659&hm=8cc16440244ee29724fd8ad2810914adede91ad81aa055607e7fbfd0bab23323&format=webp&quality=lossless&width=3436&height=584
12:52:47 weary-traveler joins (~user@user/user363627)
12:53:13 <Axman6> I ain't clicking that
12:57:21 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
12:59:32 × fp quits (~Thunderbi@wireless-86-50-140-117.open.aalto.fi) (Quit: fp)
12:59:50 fp joins (~Thunderbi@2001:708:20:1406::10c5)
13:01:28 <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'
13:01:30 <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
13:02:01 <haskellbridge> <maerwald> That's known
13:02:14 <GdeVolpiano> Weirdly enough, that's when building stylish-haskell, not when building ghc-lib-parser
13:02:17 <haskellbridge> <maerwald> Trying to compile hls?
13:02:23 <Axman6> I was going to say #ghc might be a better place to ask
13:02:30 <GdeVolpiano> Oh right, sorry
13:02:33 <haskellbridge> <maerwald> I see
13:02:41 <Axman6> always a good idea to ask here first though
13:02:52 GdeVolpiano is off to #ghc then
13:03:01 <GdeVolpiano> Thanks
13:05:02 × tromp quits (~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:10:51 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:11:02 hidjgr joins (~hidjgr@68.52.120.78.rev.sfr.net)
13:11:20 × hidjgr quits (~hidjgr@68.52.120.78.rev.sfr.net) (Changing host)
13:11:20 hidjgr joins (~hidjgr@user/hidjgr)
13:17:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
13:20:34 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:21:17 L29Ah joins (~L29Ah@wikipedia/L29Ah)
13:25:11 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
13:25:27 gorignak joins (~gorignak@user/gorignak)
13:25:52 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
13:30:49 tromp joins (~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d)
13:30:56 poscat0x04 joins (~poscat@user/poscat)
13:31:06 × poscat0x04 quits (~poscat@user/poscat) (Remote host closed the connection)
13:32:50 × poscat quits (~poscat@user/poscat) (Ping timeout: 260 seconds)
13:34:18 poscat joins (~poscat@user/poscat)
13:35:32 × euleritian quits (~euleritia@dynamic-176-004-129-026.176.4.pool.telefonica.de) (Ping timeout: 265 seconds)
13:36:16 × cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
13:37:56 euleritian joins (~euleritia@dynamic-176-004-021-148.176.4.pool.telefonica.de)
13:38:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
13:38:21 Square3 joins (~Square@user/square)
13:40:40 × polyphem quits (~rod@p4fc2c7a3.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
13:41:25 × Square quits (~Square4@user/square) (Ping timeout: 252 seconds)
13:42:39 polyphem joins (~rod@p4fc2c7a3.dip0.t-ipconnect.de)
13:42:41 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
13:45:43 kuribas` joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:47:25 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds)
13:50:08 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
13:53:54 × poscat quits (~poscat@user/poscat) (Read error: Connection reset by peer)
13:55:55 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:00:50 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
14:01:57 × alecs quits (~alecs@nat16.software.imdea.org) (Quit: Client closed)
14:03:13 × inca quits (~inca@71.30.233.213) (Read error: Connection reset by peer)
14:03:51 inca joins (~inca@h213.233.30.71.dynamic.ip.windstream.net)
14:04:11 poscat joins (~poscat@user/poscat)
14:06:21 × Inst quits (~Inst@user/Inst) (Ping timeout: 252 seconds)
14:08:38 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
14:10:35 poscat joins (~poscat@user/poscat)
14:12:01 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
14:12:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:15:46 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
14:17:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
14:17:38 poscat joins (~poscat@user/poscat)
14:17:40 × tabemann_ quits (~tabemann@2600:1700:7990:24e0::49) (Ping timeout: 252 seconds)
14:17:52 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
14:18:09 poscat joins (~poscat@user/poscat)
14:18:50 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
14:19:07 poscat joins (~poscat@user/poscat)
14:23:14 × tabaqui quits (~tabaqui@167.71.80.236) (Ping timeout: 252 seconds)
14:27:01 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
14:28:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:29:07 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2)
14:29:11 poscat joins (~poscat@user/poscat)
14:32:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
14:36:30 × poscat quits (~poscat@user/poscat) (Remote host closed the connection)
14:38:37 poscat joins (~poscat@user/poscat)
14:39:05 tabemann joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
14:40:36 × fp quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 272 seconds)
14:40:54 × inca quits (~inca@h213.233.30.71.dynamic.ip.windstream.net) (Ping timeout: 260 seconds)
14:44:12 <haskellbridge> <Liamzee> this is sort of overkill, isn't it?
14:44:14 <haskellbridge> <Liamzee> https://milkv.io/duo-s
14:44:29 famubu joins (~julinuser@user/famubu)
14:45:08 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
14:45:49 <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.
14:46:05 <haskellbridge> <Liamzee> grr
14:46:13 <haskellbridge> <Liamzee> https://gitlab.haskell.org/ghc/ghc/-/issues/16783
14:46:13 <famubu> For example Pred, Cxt, Bang.
14:46:30 <famubu> Is there some place where the meaning of these types are written down?
14:46:34 <famubu> in TemplateHaskell.
14:46:38 inca joins (~inca@71.30.233.213)
14:48:27 <famubu> Eg: https://hackage.haskell.org/package/template-haskell-2.23.0.0/docs/Language-Haskell-TH.html#t:BangType
14:49:38 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
14:52:24 <c_wraith> famubu: many of these things are just direct reflections of a combination of Haskell syntax and GHC extensions
14:53:52 <tomsmeding> [exa]: for the accelerate-internal IR, Acc and Exp values have a Show instance that shows the program after fusion
14:54:31 <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)
14:54:44 <tomsmeding> for other +ACC flags, see accelerate.cabal
14:55:02 <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
14:55:08 <tomsmeding> [exa]: (+ACC is intended to work like +RTS and also supports -ACC and --ACC like RTS does)
14:55:34 <c_wraith> SourceStrictness reflects actual Haskell syntax - is the field declared to be strict, lazy, or neither?
14:55:43 <tomsmeding> [exa]: for better or for worse, even 'r -> Acc a' has a Show instance
14:55:59 <c_wraith> SourceUnpackedness reflects the GHC {-# Unpack #-} pragma being present or not
14:57:11 harveypwca joins (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c)
14:57:36 <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
14:58:33 michalz joins (~michalz@185.246.207.217)
14:59:10 <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
14:59:13 <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
14:59:38 × inca quits (~inca@71.30.233.213) (Ping timeout: 265 seconds)
14:59:59 <famubu> I only have a superficial familiarity with Haskell.. I guess that's why..😅
15:00:30 <famubu> Oh wait..
15:00:50 <famubu> I guess `!` is for strict eval.
15:00:59 inca joins (~inca@71.30.233.213)
15:01:54 <famubu> Which ghc extensions are relevant for SourceUnpackedness?
15:02:20 <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
15:02:45 qeef joins (~qeef@138-169-143-94.cust.centrio.cz)
15:02:53 <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
15:03:01 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:03:18 JuanDaugherty joins (~juan@user/JuanDaugherty)
15:03:21 <c_wraith> as pragmas, they don't need a separate language extension to enable
15:04:46 <c_wraith> hey wait a second. the docs on the nounpack pragma are wrong, though the usage example shows correct usage.
15:05:07 <c_wraith> (it should say "Where: data constructor field")
15:06:12 JuanDaugherty had to look at the log to dispel "noun pack"
15:06:39 <famubu> I too first read it as noun.
15:07:04 <JuanDaugherty> which woulda been the excite
15:07:39 <c_wraith> verbs never get packed, though
15:10:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
15:14:15 × inca quits (~inca@71.30.233.213) (Ping timeout: 268 seconds)
15:15:28 × Googulator82 quits (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
15:15:56 Googulator82 joins (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
15:17:37 urdh joins (~urdh@user/urdh)
15:17:51 inca joins (~inca@71.30.233.213)
15:20:21 × qeef quits (~qeef@138-169-143-94.cust.centrio.cz) (Ping timeout: 252 seconds)
15:21:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:23:42 jmcantrell joins (~weechat@user/jmcantrell)
15:26:42 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
15:28:30 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
15:31:22 × acidjnk quits (~acidjnk@p200300d6e71c4f58dd6e73151eca3115.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
15:33:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:35:45 × tromp quits (~textual@2001:1c00:3487:1b00:2562:1865:ccbe:6e5d) (Ping timeout: 248 seconds)
15:37:23 skylord5816 joins (~skylord58@user/skylord5816)
15:38:50 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
15:46:57 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 248 seconds)
15:48:52 j1n37 joins (~j1n37@user/j1n37)
15:50:04 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
15:51:06 qeef joins (~qeef@138-169-143-94.cust.centrio.cz)
15:51:40 × SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving)
15:54:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
15:56:50 × Otong quits (~Otong@user/Otong) (Remote host closed the connection)
15:57:21 <bwe> ski: so, Cont, Reader, Writer, State…in this order?
15:58:47 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:04:06 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
16:06:15 × machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 260 seconds)
16:06:52 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:09:09 × kuribas` quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:09:59 <[exa]> tomsmeding: oh great I didn't notice that the Show does anything, thx
16:11:23 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
16:11:52 acidjnk joins (~acidjnk@p200300d6e71c4f5865559714f8604ffa.dip0.t-ipconnect.de)
16:14:43 <tomsmeding> (that won't tell you what 'permute' is doing under the hood, though)
16:17:55 j1n37- joins (~j1n37@user/j1n37)
16:18:54 × j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds)
16:22:59 __monty__ joins (~toonn@user/toonn)
16:24:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:27:13 notdabs joins (~Owner@2600:1700:69cf:9000:2d58:f7ab:5036:c251)
16:29:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
16:31:11 × Square3 quits (~Square@user/square) (Ping timeout: 252 seconds)
16:31:33 × euleritian quits (~euleritia@dynamic-176-004-021-148.176.4.pool.telefonica.de) (Ping timeout: 252 seconds)
16:32:13 euleritian joins (~euleritia@dynamic-176-000-053-196.176.0.pool.telefonica.de)
16:40:46 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
16:42:11 × jespada quits (~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
16:42:17 jacopovalanzano joins (~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net)
16:42:26 × JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
16:43:12 × glguy quits (glguy@libera/staff/glguy) (Quit: Quit)
16:44:00 jespada joins (~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy)
16:45:29 × qeef quits (~qeef@138-169-143-94.cust.centrio.cz) (Ping timeout: 265 seconds)
16:48:15 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
16:50:22 tremon joins (~tremon@83.80.159.219)
16:51:59 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
16:53:56 glguy joins (glguy@libera/staff/glguy)
16:55:45 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
16:58:58 amadaluzia joins (~amadaluzi@user/amadaluzia)
16:59:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:04:32 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
17:07:12 <[exa]> tomsmeding: yeah well I realized I can just disassemble the .so libs, should be sufficiently telling
17:07:31 <tomsmeding> :)
17:07:37 <[exa]> otoh yeah probably time to open the source :D
17:07:42 <tomsmeding> LLVM IR may be more readable, depending on your inclination
17:07:58 <[exa]> I find the IR more confusing tbh
17:08:17 <tomsmeding> permute does atomic fetch-and-add when applicable, and uses locks when not
17:08:27 <tomsmeding> `permute const` is special-cased to write without any synchronisation
17:08:41 <[exa]> normally I just look with perf disassembly, that's quite clean even for haskells
17:08:56 <tomsmeding> I mostly don't dare look at assembly from ghc
17:09:13 <tomsmeding> but accelerate-generated code is fairly imperative
17:09:25 <[exa]> like, after you implement some STG yourself it's awright
17:09:28 <[exa]> yeah
17:09:30 <tomsmeding> I see
17:09:39 × euleritian quits (~euleritia@dynamic-176-000-053-196.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
17:10:04 euleritian joins (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de)
17:10:32 <tomsmeding> [exa]: there is +ACC -ddump-asm
17:10:43 <[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?
17:12:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:13:29 <tomsmeding> no direct support, no
17:13:34 <[exa]> (mainly because of GPUs later, locks there just hurt)
17:13:56 <tomsmeding> I'll pass on your feature request :D
17:14:33 <[exa]> should I open an actual feature request? just for tracking
17:14:40 <[exa]> we also have a paper showing that it helps™
17:15:16 <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
17:15:38 <tomsmeding> and doing something smarter, or making this configurable, is TODO
17:15:47 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
17:16:02 <tomsmeding> actually, yes, please post a feature request -- no need to be verbose if you don't have time
17:16:04 <[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
17:16:08 <tomsmeding> link https://ircbrowse.tomsmeding.com/browse/lchaskell?id=1529868#trid1529868
17:16:39 <[exa]> ok
17:17:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
17:17:41 <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
17:17:53 <tomsmeding> but documenting use cases is always good
17:18:08 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:28:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:30:53 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
17:32:15 <[exa]> ok well let's see https://github.com/AccelerateHS/accelerate/issues/552
17:32:53 <[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.
17:33:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
17:35:00 nacation joins (~m-3l4s76@user/nacation)
17:36:51 gawen_ joins (~gawen@user/gawen)
17:37:56 × gawen quits (~gawen@user/gawen) (Ping timeout: 272 seconds)
17:39:38 <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?
17:41:08 <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
17:42:16 <lxsameer> tomsmeding: ok cool, would it be better to interface the syscalls in a static C library and use it in haskell?
17:42:40 <tomsmeding> lxsameer: cabal has support for compiling in C code
17:42:46 <tomsmeding> no need to manually create a static C library
17:42:57 <lxsameer> perfect. Thank you
17:43:29 <tomsmeding> just add a space-separated list of .c files in `c-sources:`; you may want to set `cc-options:` too
17:43:40 <tomsmeding> then you can bind those C functions via the FFI as usual
17:43:52 <lxsameer> wow, that's pretty easy then
17:43:52 × euleritian quits (~euleritia@ip5f5ad695.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
17:44:00 euleritian joins (~euleritia@dynamic-176-000-199-065.176.0.pool.telefonica.de)
17:44:15 <tomsmeding> plenty of libraries on hackage, including very core ones like bytestring and text, do this, so it's rather well supported :)
17:44:48 <lxsameer> awesome, that makes me happy
17:45:40 <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
17:45:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
17:46:02 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
17:46:11 internatetional joins (~nate@2001:448a:20a3:c2e5:8bd5:1444:ad98:1780)
17:46:27 <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
17:47:57 <tomsmeding> I have no clue what permute does with such vectors though
17:48:03 <tomsmeding> it's quite possible it generates bad code
17:50:01 <[exa]> tomsmeding: Vec seems like sized by a Nat, I think I need it a lil more flexible
17:50:12 <tomsmeding> ah
17:50:22 <[exa]> (or can I change a Nat in type based on input data? I guess not, right?)
17:50:28 [exa] not into Nats
17:50:31 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
17:50:32 <tomsmeding> not based on input data to the accelerate program
17:50:44 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds)
17:50:48 <tomsmeding> but you can based on input data to the haskell program that generates the accelerate program
17:51:16 <[exa]> so if runN gets the right type somehow, it will be able to do this for the right Nat?
17:51:44 <tomsmeding> https://hackage.haskell.org/package/base-4.19.0.0/docs/GHC-TypeNats.html#v:withSomeSNat
17:52:07 <tomsmeding> withSomeSNat 17 $ \SNat -> _
17:52:29 <tomsmeding> oh you'll probably need to `\(Snat :: n) -> _` and then use @n judiciously in the _
17:52:40 <tomsmeding> er, `\(SNat :: SNat n) -> _`
17:52:43 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
17:52:52 <tomsmeding> I didn't say it was comfortable
17:55:51 <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
17:56:00 <tomsmeding> and then I saw that I'd misread this like 15x and it's actually ICPP
17:56:03 ljdarj joins (~Thunderbi@user/ljdarj)
17:57:29 ft joins (~ft@p4fc2a6e6.dip0.t-ipconnect.de)
17:58:10 <[exa]> ah ok so `withSomeSNat` should do it
17:58:52 <[exa]> gooooood
17:58:59 <tomsmeding> does it work?
17:59:19 <[exa]> it works in my head now :D :D
17:59:46 <[exa]> lemme first disassemble the thing to see what it actually does internally :D
18:00:09 <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)
18:00:39 <tomsmeding> Exp does have `while` so you can do multiple sequential loops in parallel, but that's not enough for you here
18:00:52 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
18:01:57 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:05:02 × euleritian quits (~euleritia@dynamic-176-000-199-065.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
18:05:20 <[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
18:05:21 euleritian joins (~euleritia@95.90.214.149)
18:05:56 <tomsmeding> oh
18:06:00 <[exa]> prospecfively, s/8/n_detected_cpus/
18:06:08 <tomsmeding> right
18:06:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
18:06:27 <tomsmeding> so this doesn't work I think because the current scheduler will do the permutes in parallel and the 8-loop sequentially
18:06:38 <tomsmeding> I'm 95% sure of that
18:06:42 <tomsmeding> not 100%
18:07:04 <tomsmeding> [exa]: I have an idea
18:07:11 <[exa]> docs say "The permute operation will always be evaluated; it can not be fused into a later step."
18:07:17 <[exa]> hoped to use this as a kinda barrier :D
18:07:30 <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
18:07:46 <tomsmeding> no
18:07:50 mdz joins (~mdz@78-131-27-35.pool.digikabel.hu)
18:07:52 <tomsmeding> `(Z :. 8) ++ sh`
18:08:02 <tomsmeding> then transpose and fold to get the result
18:08:17 × mdz quits (~mdz@78-131-27-35.pool.digikabel.hu) (Client Quit)
18:08:27 <tomsmeding> oh but that doesn't work because you can't reliably get a single thread to choose a particular index
18:08:36 <tomsmeding> [exa]: you're confusing me
18:08:48 <tomsmeding> you're making me think accelerate can do this
18:08:50 <tomsmeding> it can't
18:08:58 <tomsmeding> my mental model was correct all along
18:08:58 <[exa]> c'mon it can
18:09:01 <[exa]> :D
18:09:06 <tomsmeding> it might in the future :p
18:09:08 <haskellbridge> <sm> stop confusing tomsmeding everyone
18:09:11 <tomsmeding> it just can't right now
18:09:15 <tomsmeding> sm: thank you
18:09:18 <[exa]> lol
18:09:51 <[exa]> ok
18:10:06 <[exa]> I'll read the source and see
18:10:14 tabaqui joins (~tabaqui@167.71.80.236)
18:10:55 <[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 )
18:11:30 tomsmeding missed that
18:11:44 <tomsmeding> I have a fairly good idea of what the internal language of accelerate looks like :p
18:12:23 <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
18:12:46 <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
18:13:05 × jespada quits (~jespada@r167-61-126-159.dialup.adsl.anteldata.net.uy) (Ping timeout: 248 seconds)
18:13:28 <[exa]> tomsmeding: re subparser: https://ircbrowse.tomsmeding.com/browse/lchaskell?id=1527499#trid1527499
18:14:10 <tomsmeding> cute
18:14:34 jespada joins (~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy)
18:15:10 <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 😛
18:15:18 <geekosaur> )]
18:16:59 <[exa]> I had extremely positive lego feelings there, much more than with just normal parsers and normal `many` :D
18:17:05 <[exa]> optparse-applicative <3
18:19:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:19:32 <EvanR> somebody should rename "dsl disease" to "lego feelings"
18:20:40 <[exa]> quality disease.
18:21:04 <EvanR> things went together really easily and worked great disease
18:21:18 <EvanR> made the world a better place disease
18:21:26 <Rembane> I want a pandemic of that!
18:21:32 <geekosaur> tetris disease 😛
18:21:49 <EvanR> tetris going badly might be a great counterexample
18:22:10 <EvanR> yes things CAN fit together
18:22:12 <EvanR> but they didn't
18:22:27 <EvanR> (skill issue)
18:22:30 <tomsmeding> makes me think of ghc typelevel nats
18:22:33 ludihan joins (~ludihan@189.36.207.182)
18:22:47 <tomsmeding> you have (+) but GHC has no clue that 1 + n = n + 1
18:22:55 <monochrom> Why was DSL disease called a disease?
18:23:14 × ludihan quits (~ludihan@189.36.207.182) (Client Quit)
18:23:29 <EvanR> for dramatic tension
18:23:33 <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
18:23:45 <[exa]> monochrom: it spread
18:24:07 <monochrom> Can we say "OOP disease" too? Because it too spread.
18:24:17 <EvanR> that's a dead horse beaten
18:24:21 <monochrom> Python disease? JS disease?
18:24:27 <EvanR> same
18:24:39 <tomsmeding> at least one of the stupidities got fixed recently https://gitlab.haskell.org/ghc/ghc/-/issues/24845 :D
18:24:47 <monochrom> copilot disease
18:24:57 <EvanR> LLM disease
18:25:04 <EvanR> the disease frontier
18:25:29 monochrom not happy about people being jealous to intelligence.
18:25:48 <[exa]> +1 ^
18:26:15 sprotte24 joins (~sprotte24@p200300d16f238d00f5d5381b458840fc.dip0.t-ipconnect.de)
18:26:39 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
18:27:29 × CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds)
18:29:37 × califax quits (~califax@user/califx) (Remote host closed the connection)
18:30:42 califax joins (~califax@user/califx)
18:33:17 × califax quits (~califax@user/califx) (Remote host closed the connection)
18:35:47 califax joins (~califax@user/califx)
18:36:43 × internatetional quits (~nate@2001:448a:20a3:c2e5:8bd5:1444:ad98:1780) (Ping timeout: 252 seconds)
18:39:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:44:11 × weary-traveler quits (~user@user/user363627) (Remote host closed the connection)
18:44:17 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
18:45:01 × tabaqui quits (~tabaqui@167.71.80.236) (Quit: WeeChat 4.6.0)
18:47:40 segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
18:51:09 × ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj)
18:51:30 ljdarj joins (~Thunderbi@user/ljdarj)
18:55:47 × statusbot11 quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
18:56:01 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
18:56:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
18:57:39 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
19:00:01 × caconym quits (~caconym@user/caconym) (Quit: bye)
19:00:14 lxsameer joins (~lxsameer@Serene/lxsameer)
19:00:42 caconym joins (~caconym@user/caconym)
19:01:03 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
19:01:18 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
19:02:24 × jespada quits (~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
19:03:18 jespada joins (~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy)
19:06:49 pavonia joins (~user@user/siracusa)
19:13:10 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:14:37 <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
19:18:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
19:18:26 × harveypwca quits (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving)
19:21:00 pera joins (~pera@user/pera)
19:23:58 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
19:24:14 <tomsmeding> it does
19:24:24 <tomsmeding> before a couple imports, its fucking confusing
19:24:26 <tomsmeding> :)
19:24:43 <[exa]> :set -shortprompt?
19:24:56 <tomsmeding> what exacerbates the confusingness is that `:r` adds the first module in the cabal file to your scope unconditionally, with `*`
19:25:23 <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
19:25:40 <tomsmeding> without %s in prompt, you have no idea this is happening; with %s, it's obvious
19:25:56 <tomsmeding> also without %s in prompt, a beginner has no idea what's even happening
19:26:01 <tomsmeding> and in which component they are
19:26:07 <haskellbridge> <sm> what sort of UI/UX could improve on these I wonder
19:26:44 <tomsmeding> [exa]: is that a hypothetical or a real option
19:27:12 <[exa]> future real
19:27:43 <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
19:27:47 <haskellbridge> <sm> a two-line prompt ?
19:27:55 <monochrom> Beginner has no idea what's happening. Unconditionally. >:)
19:27:57 <tomsmeding> with a purely line-based text-mode interface, I'm not sure one can do much better
19:28:00 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
19:28:10 <haskellbridge> <sm> a message when you start ghci, informing of the two options and how to toggle ?
19:28:12 <tomsmeding> sm: surely people will find that at least as noisy?
19:28:33 <monochrom> Really, any better UI requires windowing.
19:28:44 <haskellbridge> <sm> show one prompt with the new scope info whenever it changes, short prompts otherwise ?
19:28:45 <tomsmeding> I think monochrom is right
19:28:46 <monochrom> or hovering
19:29:13 × notdabs quits (~Owner@2600:1700:69cf:9000:2d58:f7ab:5036:c251) (Read error: Connection reset by peer)
19:29:15 <tomsmeding> sm: I like that one, but not as a prompt but simply as a notification: hey, the module list is now this \n λ>
19:29:29 <haskellbridge> <sm> simple, eh ?
19:29:48 <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!
19:29:56 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:30:03 <tomsmeding> it would be too long for the window title, though
19:30:07 <haskellbridge> <sm> I don't do that, can never rely on it
19:30:15 <tomsmeding> that's the whole point of why people wanted to eliminate it :p
19:30:26 <tomsmeding> sm: are we going again with the "simple, eh?"
19:30:33 <tomsmeding> this time I'm not going to implement it
19:30:40 <monochrom> Oh yeah I'm also routinely 10 levels deep with cwd so it's also too long for window titles too :)
19:31:34 <haskellbridge> <sm> tomsmeding yes I think being a little more chatty and explanatory about initial scope and scope changes would be simple and helpful
19:31:52 emmanuelux joins (~emmanuelu@user/emmanuelux)
19:31:52 <haskellbridge> <sm> and needed, since it's so confusing
19:34:22 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
19:36:49 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds)
19:37:24 L29Ah joins (~L29Ah@wikipedia/L29Ah)
19:39:28 <haskellbridge> <sm> (but it doesn't need to be in every single prompt)
19:39:34 <tomsmeding> agreed
19:41:45 <ski> bwe : i'm not sure doing `Cont' before the others would be preferable, generally
19:44:48 <EvanR> tomsmeding, did you learn all these vagaries of ghci by reading the source
19:45:33 <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.
19:46:05 <EvanR> I think you mean lego feelings
19:46:52 <haskellbridge> <Liamzee> Okay, then please describe lego feelings.
19:47:17 × amadaluzia quits (~amadaluzi@user/amadaluzia) (Ping timeout: 244 seconds)
19:47:40 × bliminse quits (~bliminse@user/bliminse) (Ping timeout: 252 seconds)
19:47:47 <EvanR> when a codebase is based on a custom, well or well enough documented DSL, that not only the authors understand
19:47:50 <haskellbridge> <Liamzee> ah, when type-tetris is intuitive or when the DSL just clicks
19:47:59 amadaluzia joins (~amadaluzi@user/amadaluzia)
19:47:59 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
19:48:05 <tomsmeding> EvanR: by hitting them every single fucking time I use ghci
19:48:13 <tomsmeding> at some point you learn what the patterns are
19:48:18 <EvanR> lol
19:48:49 <EvanR> sounds like trying to play minigolf while blind
19:48:50 <tomsmeding> I use ghci in two modes: 1. playing around; no issues. 2. testing a project: lots of :r
19:49:19 tromp joins (~textual@2001:1c00:3487:1b00:c0e6:9a43:de22:8c0a)
19:49:27 <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
19:49:32 bliminse joins (~bliminse@user/bliminse)
19:49:50 <tomsmeding> but I can't put it in ~/.ghci because the command naturally depends on what that first module is
19:49:59 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
19:50:13 gorignak joins (~gorignak@user/gorignak)
19:50:40 <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
19:50:52 <tomsmeding> then I complained about it here and someone suggested the "first in the cabal list" thing
19:51:10 <tomsmeding> which is _actually_ just the first module passed on ghci's command line, and cabal sensibly just pastes the module list as-is
19:52:35 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
19:58:21 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 244 seconds)
19:58:22 <haskellbridge> <Liamzee> smtp-mail vs haskellnet-ssl?
20:04:45 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:09:19 AlexNoo_ joins (~AlexNoo@178.34.161.112)
20:11:55 target_i joins (~target_i@user/target-i/x-6023099)
20:12:06 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
20:12:12 <haskellbridge> <Liamzee> also, if it's okay with you, brief question
20:12:32 <haskellbridge> <Liamzee> foo :: m (m (m (m a) ) )
20:12:40 × AlexNoo quits (~AlexNoo@94.233.240.249) (Ping timeout: 252 seconds)
20:12:44 AlexNoo_ is now known as AlexNoo
20:13:20 × AlexZenon quits (~alzenon@94.233.240.249) (Ping timeout: 268 seconds)
20:14:10 AlexZenon joins (~alzenon@178.34.161.112)
20:14:50 <haskellbridge> <Liamzee> oh, i see how it works :(
20:15:06 <haskellbridge> <Liamzee> join foo :: m (m (m a))
20:15:15 <haskellbridge> <Liamzee> why not foo :: m (m a)?
20:15:57 <mauke> join removes one layer of m
20:16:02 <EvanR> it's an exercise in unifying your type after suitable renaming with the type of join _
20:16:18 <mauke> offer void where prohibited
20:16:31 <EvanR> :t join
20:16:33 <lambdabot> Monad m => m (m a) -> m a
20:17:08 <EvanR> consider foo : m (m (m (m Z)))
20:17:16 <haskellbridge> <Liamzee> no, but can't n a = m (m a)?
20:17:17 <EvanR> then if a = m (m Z)
20:17:38 <EvanR> join foo :: m a = m (m (m Z))
20:17:55 <haskellbridge> <Liamzee> then join n (n a) = n a, but it's effectively (m (m a))
20:18:12 qeef joins (~qeef@138-169-143-94.cust.centrio.cz)
20:18:13 <haskellbridge> <Liamzee> shouldn't this cause an ambiguous types error?
20:18:19 Feuermagier joins (~Feuermagi@user/feuermagier)
20:18:33 <EvanR> the question is what is a
20:18:43 <EvanR> or what it could be possibly
20:18:43 <haskellbridge> <Liamzee> say (), then
20:18:45 <EvanR> only one thing
20:18:51 <EvanR> in the case of foo
20:18:51 <monochrom> No, HM type checking does not know to do "let n = m . m".
20:19:11 <haskellbridge> <Liamzee> but should it be an ambiguous types error?
20:19:37 <EvanR> ambiguous types error when trying to find a Monad instance?
20:19:45 <EvanR> that's when that error happens
20:19:50 <haskellbridge> <Liamzee> ya
20:19:58 <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".
20:20:06 <haskellbridge> <Liamzee> since it should be able to result in either element?
20:20:17 <EvanR> I'm not sure where you got n
20:20:23 <EvanR> that wasn't introduced anywhere
20:20:25 <EvanR> we have m and a
20:20:37 <EvanR> and Z which is my renaming of your a from foo
20:21:45 <EvanR> the only possibility I see in join foo is that a = m (m Z)
20:22:11 <mauke> <Liamzee> no, but can't n a = m (m a)? <- no
20:22:32 <mauke> because then you'd need to have n = m (m
20:22:36 <mauke> and that's a syntax error
20:23:02 <EvanR> oh
20:23:31 <EvanR> that is where n in first mentioned but it's not clear to me what it is
20:23:38 <mauke> or alternatively, n = m and a = m a
20:23:54 <mauke> but that's both boring and illegal because a would be infinitely deep
20:24:30 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:24:31 Feuermagier_ joins (~Feuermagi@user/feuermagier)
20:24:31 × Feuermagier quits (~Feuermagi@user/feuermagier) (Killed (mercury.libera.chat (Nickname regained by services)))
20:24:31 Feuermagier_ is now known as Feuermagier
20:27:00 <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")
20:27:46 <mauke> "we don't do that here"
20:27:49 <monochrom> (the "recognize m (m a) = (m . m) a" part is a higher-order step)
20:28:14 <monochrom> So yeah the short answer is HM simply doesn't do that.
20:28:55 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
20:28:59 <EvanR> now I get it
20:29:56 <EvanR> however (at least when classes and instances are global) you have a inference still finds the most general type
20:30:07 <EvanR> you're saying it's missing something?
20:30:14 <EvanR> or it's covered
20:31:05 machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net)
20:31:35 <monochrom> The definition of "most general" is carefully written to have the fine print "restricted to first-order only".
20:31:58 <monochrom> Once again, never trust "meaningful names"!
20:32:27 <monochrom> "conditions apply" is always true.
20:37:29 <haskellbridge> <sm> tomsmeding ooh, that looks like my (argument preserving..)
20:37:29 <haskellbridge> ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/dIwzLMBxDaLycgbYfWcCkhtz/kbzNeP-RDR0 (3 lines)
20:39:19 alecs joins (~alecs@61.pool85-58-154.dynamic.orange.es)
20:42:12 <tomsmeding> sm: yes, :def is useful for little shorthands like these :)
20:42:24 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
20:46:45 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
20:58:50 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Remote host closed the connection)
20:59:41 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:01:40 × qeef quits (~qeef@138-169-143-94.cust.centrio.cz) (Quit: Lost terminal)
21:04:30 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
21:04:33 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
21:07:24 <bwe> Is there a visualisation like Graham Hutton uses in his book for explaining the Cont monad?
21:07:25 × Feuermagier quits (~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
21:08:11 <[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.
21:08:39 <EvanR> monochrom, principle type, the details of which seems to be at the end of the making adhoc polymorphism less adhoc paper
21:09:04 ljdarj1 joins (~Thunderbi@user/ljdarj)
21:09:41 <tomsmeding> [exa]: that might work, yes. Accelerate will obviously not do fusion across runN calls
21:10:03 <[exa]> more interesting case with PTX tho
21:10:09 <tomsmeding> also not sure how copying data back and forth to GPU would work with multiple runN calls
21:10:11 <tomsmeding> right
21:10:40 <tomsmeding> also on GPU you really want something more specific, like accumulating values in shared memory
21:10:47 <[exa]> yap
21:11:25 <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
21:11:48 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
21:11:48 ljdarj1 is now known as ljdarj
21:12:00 <[exa]> like, it could be pretty simple actually
21:12:47 × Pozyomka quits (~pyon@user/pyon) (Ping timeout: 252 seconds)
21:12:48 <[exa]> given there would be some control of how the threadblocks get created
21:15:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:15:35 <[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
21:16:54 <[exa]> s/threadblock/however cuda calls the group of warps running/
21:17:52 × takuan quits (~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
21:20:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
21:30:23 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
21:30:55 CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db)
21:31:14 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
21:33:16 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:34:09 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
21:36:34 Pozyomka joins (~pyon@user/pyon)
21:37:54 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
21:38:53 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
21:41:42 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
21:42:37 <tomsmeding> [exa]: "thread block" is actually the cuda term for it
21:42:44 <tomsmeding> Apple calls it a "threadgroup"
21:43:27 <tomsmeding> rejoice in consistency / rejoice inconsistency
21:46:15 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
21:48:42 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
21:49:04 × Googulator82 quits (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
21:49:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
21:49:19 Googulator82 joins (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
21:52:59 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
21:55:39 × pera quits (~pera@user/pera) (Quit: leaving)
21:56:01 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
21:56:07 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
21:57:37 × jacopovalanzano quits (~jacopoval@cpc151911-cove17-2-0-cust105.3-1.cable.virginm.net) (Quit: Client closed)
21:59:37 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
21:59:44 × Googulator82 quits (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu) (Quit: Client closed)
22:00:01 Googulator82 joins (~Googulato@94-21-172-228.pool.digikabel.hu)
22:00:19 <monochrom> "thread block" gives me the wrong impression that we're blocking a thread.
22:00:58 <monochrom> I wonder if "thread bloc" works better. (Like, "trie" is clearly different from "tree" right? >:D )
22:01:45 <monochrom> Right? "writer's block" does not mean a collection of writers. >:)
22:02:47 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Max SendQ exceeded)
22:06:47 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
22:07:58 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:11:47 × Googulator82 quits (~Googulato@94-21-172-228.pool.digikabel.hu) (Quit: Client closed)
22:11:53 ljdarj1 joins (~Thunderbi@user/ljdarj)
22:12:02 Googulator82 joins (~Googulato@94-21-172-228.pool.digikabel.hu)
22:13:09 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
22:15:36 × ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
22:15:36 ljdarj1 is now known as ljdarj
22:16:47 × Googulator82 quits (~Googulato@94-21-172-228.pool.digikabel.hu) (Client Quit)
22:17:03 Googulator82 joins (~Googulato@2a01-036d-0106-2077-315b-d519-517f-afe7.pool6.digikabel.hu)
22:19:22 × tromp quits (~textual@2001:1c00:3487:1b00:c0e6:9a43:de22:8c0a) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:20:44 notdabs joins (~Owner@2600:1700:69cf:9000:2d58:f7ab:5036:c251)
22:22:39 × alecs quits (~alecs@61.pool85-58-154.dynamic.orange.es) (Quit: Client closed)
22:22:49 × ystael quits (~ystael@user/ystael) (Ping timeout: 276 seconds)
22:25:22 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:26:04 × tessier quits (~tessier@ip68-8-117-219.sd.sd.cox.net) (Ping timeout: 276 seconds)
22:27:49 tessier joins (~tessier@ec2-184-72-149-67.compute-1.amazonaws.com)
22:29:37 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
22:30:38 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
22:30:38 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
22:30:38 haritz joins (~hrtz@user/haritz)
22:32:26 × haritz quits (~hrtz@user/haritz) (Remote host closed the connection)
22:38:06 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
22:38:36 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
22:41:42 <haskellbridge> <Liamzee> evanr, if you're still here, do you mind if I steal your phrase "lego feeling" and put it in opposition to eDSL disease? I.e, two states that Haskell libraries, scripts, and codebases can obtain, and how to get to "lego feeling" and avoid eDSL disease?
22:42:14 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
22:42:36 <haskellbridge> <Liamzee> I mean, I'd like to put it up on Discourse or something, i.e, ask what people know about "lego feeling" vs eDSL disease (and implicitly, "my code is going to break within the year and I accidentally created legacy code that only I can maintain")
22:42:36 <EvanR> I didn't coin that
22:42:43 <EvanR> scroll up more
22:44:25 <haskellbridge> <Liamzee> [exa], then
22:45:17 <haskellbridge> <Liamzee> yeah, okay, need to figure out how to get the registration working on https://ricardo.community
22:45:33 <haskellbridge> <Liamzee> and fix the ssh certificate while i'm at it
22:46:40 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
22:47:53 <haskellbridge> <Liamzee> while racing this guy, http://xhslink.com/a/bv80ykq0qMkab, to see who can get an mvp up first; guess this project has to be open-sourced because my revenue model i can't do on my own, otherwise it'd be another shitty upwork clone
22:50:01 <haskellbridge> <Liamzee> rumors are that Jane Street picked him up and he quit (likely because it's less pressure doing start-ups than ibanks, but he'll claim it's because of jealousy of his quant girlfriend)
22:51:12 weary-traveler joins (~user@user/user363627)
22:51:46 <haskellbridge> <Liamzee> hope you're doing well, weary-traveler!
22:51:49 <haskellbridge> <Liamzee> running off to dinner now
22:54:14 <weary-traveler> Liamzee: do we know each other? sorry, having trouble placing the nick
22:56:14 talismanick joins (~user@2601:644:937c:ed10::ae5)
22:59:36 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:04:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
23:07:07 <monochrom> Liamzee is Inst.
23:10:40 <weary-traveler> monochrom: what's Inst.?
23:10:43 <haskellbridge> <Liamzee> i might have mistaken you for someone else, sorry, reading through logs now
23:11:31 <weary-traveler> mistaken for whom, i wonder
23:12:09 <EvanR> I thought Liamzee could be Inst
23:12:35 <EvanR> short for Instigator xD
23:12:43 <geekosaur> yes, they're Inst when on IRC-side and Liamzee when Matrix-side
23:12:59 <haskellbridge> <Liamzee> there was a gentlemen who popped in with some problems
23:13:20 <haskellbridge> <Liamzee> %s/gentlemen/gentleman
23:13:25 <haskellbridge> <Liamzee> which I don't think was adequately solved
23:13:45 <weary-traveler> and here i was thinking liamzee was an llm
23:13:52 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:14:36 <haskellbridge> <Liamzee> it was emojelly
23:14:51 <haskellbridge> <Liamzee> might as well be an llm, i get things wrong about as often :(
23:15:54 mange joins (~user@user/mange)
23:16:14 <EvanR> impressive
23:16:28 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:16:41 <haskellbridge> <Liamzee> sorry about the mistaken identity, weary
23:18:38 haritz joins (~hrtz@152.37.68.178)
23:18:38 × haritz quits (~hrtz@152.37.68.178) (Changing host)
23:18:38 haritz joins (~hrtz@user/haritz)
23:19:35 <EvanR> for more folk reference to lego (in this case, magic lego) see "graphical linear algebra blog"
23:21:03 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
23:21:17 Square joins (~Square@user/square)
23:21:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:22:33 Sgeo joins (~Sgeo@user/sgeo)
23:25:08 <haskellbridge> <Liamzee> thanks https://graphicallinearalgebra.net
23:33:45 <weary-traveler> EvanR: is that the one that uses string/circuit diagrams. i recall there being something like that by an australian researcher/prof
23:34:03 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:35:16 <EvanR> yes
23:35:21 <EvanR> string diagrams, eventually
23:35:34 <EvanR> but it is a lot of linear algebra, in disguise
23:41:08 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 268 seconds)
23:41:29 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
23:41:45 × jespada quits (~jespada@r167-61-124-233.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
23:41:57 <haskellbridge> <Liamzee> the sad thing is, i've totally forgotten my linear algebra ;_;
23:44:08 <EvanR> you don't need to know any to read the blog
23:44:41 <haskellbridge> <Liamzee> oh no, i'm just trying to remember stuff about eigenvectors etc
23:44:51 <haskellbridge> <Liamzee> i rushed it, was just cramming practice problems to ace the test
23:45:08 <haskellbridge> <Liamzee> whereas it's probably the part of math i'm best at, i got lost at geometry :(
23:45:47 <haskellbridge> <Liamzee> too shy to ask "how to derive sin instead of relying on these odious calculating machines"
23:46:17 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
23:47:17 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
23:50:55 j1n37 joins (~j1n37@user/j1n37)
23:52:14 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
23:52:16 × j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds)
23:54:27 × sprotte24 quits (~sprotte24@p200300d16f238d00f5d5381b458840fc.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
23:56:54 arahael joins (~arahael@user/arahael)
23:57:56 × Igloo quits (~ian@81.2.99.210) (Ping timeout: 272 seconds)

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