Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-28 (liberachat/#haskell)

00:01:34 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
00:02:14 × flounders quits (~flounders@24.246.133.1) (Ping timeout: 250 seconds)
00:02:17 <dsal> I just heard about amazonka2 arriving at hackage. Just came here to say woo.
00:03:03 jmdaemon joins (~jmdaemon@user/jmdaemon)
00:03:57 <shapr> oh wow, amazonka got an update?!
00:04:13 <shapr> dsal: did you see my blog post from yesterday? Android app in Haskell?
00:04:27 × phma quits (~phma@host-67-44-208-59.hnremote.net) (Read error: Connection reset by peer)
00:04:52 phma joins (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871)
00:04:55 maulanazn joins (~maulanazn@103.144.170.135)
00:05:14 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:05:44 <maulanazn> Hello everyone
00:06:02 maulanazn parts (~maulanazn@103.144.170.135) ()
00:06:05 thegeekinside joins (~thegeekin@189.217.90.138)
00:06:24 <shapr> that's about the attention span most people have
00:06:29 <geekosaur> o.O
00:06:42 califax joins (~califax@user/califx)
00:07:39 maulanazn joins (~maulanazn@103.144.170.135)
00:09:06 <yushyin> :D
00:11:02 maulanazn parts (~maulanazn@103.144.170.135) ()
00:11:57 maulanazn joins (~maulanazn@103.144.170.135)
00:12:01 reach__ joins (~reach@142.198.51.47)
00:12:06 maulanazn parts (~maulanazn@103.144.170.135) ()
00:14:54 <jackdk> Thanks dsal. I've been pushing that boulder for two years and it feels good to get it over the top.
00:15:03 maulanazn joins (~maulanazn@103.144.170.135)
00:15:10 × maulanazn quits (~maulanazn@103.144.170.135) (Quit: Leaving.)
00:25:59 libertyprime joins (~libertypr@203.96.203.44)
00:26:12 × xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 245 seconds)
00:28:19 xff0x joins (~xff0x@178.255.149.135)
00:30:11 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:30:12 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:30:12 wroathe joins (~wroathe@user/wroathe)
00:35:39 × reach__ quits (~reach@142.198.51.47) (Ping timeout: 246 seconds)
00:37:49 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
00:39:30 × ystael quits (~ystael@user/ystael) (Ping timeout: 246 seconds)
00:40:26 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 245 seconds)
00:40:28 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
00:42:24 EsoAlgo81 joins (~EsoAlgo@129.146.136.145)
00:42:31 xff0x joins (~xff0x@2405:6580:b080:900:f296:7c8e:ce20:8b85)
00:43:17 × img quits (~img@user/img) (Ping timeout: 245 seconds)
00:44:23 img joins (~img@user/img)
00:49:08 mrmr4 joins (~mrmr@user/mrmr)
00:49:47 × mrmr quits (~mrmr@user/mrmr) (Ping timeout: 246 seconds)
00:49:48 mrmr4 is now known as mrmr
00:50:32 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
00:50:50 jmdaemon joins (~jmdaemon@user/jmdaemon)
00:57:29 <Axman6> jackdk: thanks for all your thankless work, I know how hard you've been working on this, and the changes made in 2.0 really add some polish on an already amazing project
00:57:58 <Axman6> (I say thankless, but I thank jackdk every chance I get for his work on this)
00:58:34 <jackdk> Axman6: "thanks for all your thankless work" <- Paging Mr. Russell `;-)`
00:58:46 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 245 seconds)
00:59:01 <Axman6> The thank of all thanks that do not contain themselves
00:59:07 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 245 seconds)
00:59:14 <dsal> shapr: I didn't. Where do I see that?
00:59:53 <jackdk> https://shapr.github.io/posts/2023-07-25-android-app-in-haskell.html I think?
01:01:47 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 260 seconds)
01:02:22 <arahael_> jackdk: That's very cool. :)
01:02:36 <arahael_> jackdk: Would you have been confident to take the same approach for iOS?
01:02:50 <jackdk> arahael_: You'll have to ask shapr, it's his blog post
01:03:25 <arahael_> Ah, ok.
01:03:53 <arahael_> reflex-frp does seem to be the most promising tool for this, but I'm somehow less confident when it comes to using it for iOS in production - feels experimental.
01:05:20 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
01:06:10 razetime joins (~quassel@117.193.5.53)
01:11:16 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:36 pavonia joins (~user@user/siracusa)
01:15:06 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
01:16:21 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
01:17:24 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:56 jmd_ joins (~jmdaemon@user/jmdaemon)
01:22:59 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
01:27:52 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
01:29:03 yangby joins (~secret@183.128.108.131)
01:33:25 × mvk quits (~mvk@2607:fea8:5c9a:a600::1c6d) (Ping timeout: 245 seconds)
01:37:12 sm[i] joins (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54)
01:39:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
01:44:10 × hugo- quits (znc@verdigris.lysator.liu.se) (Ping timeout: 244 seconds)
01:48:28 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
01:50:33 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
01:52:22 × perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2)
01:52:45 perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca)
01:56:39 hugo joins (znc@verdigris.lysator.liu.se)
02:00:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:01:16 × codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
02:07:42 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
02:11:37 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 245 seconds)
02:13:37 × sm[i] quits (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) (Quit: sm[i])
02:16:18 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
02:16:56 × td_ quits (~td@i5387090B.versanet.de) (Ping timeout: 246 seconds)
02:17:09 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:18:41 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 246 seconds)
02:19:04 td_ joins (~td@i53870935.versanet.de)
02:19:07 × libertyprime quits (~libertypr@203.96.203.44) (Quit: leaving)
02:19:45 hugo joins (znc@verdigris.lysator.liu.se)
02:19:50 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:19:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:19:50 finn_elija is now known as FinnElija
02:19:57 reach__ joins (~reach@142.198.51.47)
02:20:41 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c)
02:23:07 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
02:24:49 sm[i] joins (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54)
02:35:31 × perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2)
02:41:55 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
02:42:36 × phma quits (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871) (Read error: Connection reset by peer)
02:43:02 phma joins (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871)
02:43:28 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
02:43:31 perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca)
02:45:44 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
02:46:04 × mei quits (~mei@user/mei) (Ping timeout: 246 seconds)
02:50:04 mei joins (~mei@user/mei)
02:50:51 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
02:55:07 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
02:55:55 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
03:05:17 × mei quits (~mei@user/mei) (Ping timeout: 244 seconds)
03:05:30 × perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2)
03:06:01 perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca)
03:07:27 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
03:09:18 mei joins (~mei@user/mei)
03:12:56 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
03:15:36 × reach__ quits (~reach@142.198.51.47) (Ping timeout: 246 seconds)
03:18:19 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
03:19:19 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
03:20:38 foul_owl_ joins (~kerry@174-21-159-141.tukw.qwest.net)
03:20:47 × foul_owl quits (~kerry@185.219.141.162) (Ping timeout: 244 seconds)
03:25:26 × foul_owl_ quits (~kerry@174-21-159-141.tukw.qwest.net) (Ping timeout: 245 seconds)
03:27:23 × califax quits (~califax@user/califx) (Remote host closed the connection)
03:27:52 califax joins (~califax@user/califx)
03:29:34 × aforemny quits (~aforemny@2001:9e8:6cfc:2a00:d5a2:6a3b:38ac:cbd4) (Ping timeout: 244 seconds)
03:29:44 aforemny_ joins (~aforemny@2001:9e8:6ce2:4f00:57f9:d120:56d4:9724)
03:32:16 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 246 seconds)
03:34:26 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
03:37:03 foul_owl_ joins (~kerry@193.29.61.236)
03:40:05 × sm quits (~sm@plaintextaccounting/sm) (Quit: Reconnecting)
03:41:04 sm joins (~sm@plaintextaccounting/sm)
03:41:56 × texasmynsted quits (~username@99.96.221.112) (Ping timeout: 250 seconds)
03:42:52 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 245 seconds)
03:45:41 trev joins (~trev@user/trev)
03:52:49 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 244 seconds)
04:04:02 × razetime quits (~quassel@117.193.5.53) (Ping timeout: 246 seconds)
04:06:29 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:08:30 × sm[i] quits (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) (Quit: sm[i])
04:26:08 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
04:45:44 razetime joins (~quassel@117.193.5.53)
04:55:36 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
04:57:28 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
04:59:04 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
05:04:57 nattiestnate joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f)
05:10:25 <dsal> My build's trying to build connection. Is there any way I can figure out why? It's not an obvious dependency.
05:11:21 <dsal> Oh, I just figured out `stack dot --external` directly answers my question.
05:13:58 <dsal> Weird, I was specifying network-conduit-tls >= 1.4 but it was apparently building something older.
05:14:27 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 244 seconds)
05:16:23 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
05:20:16 reach__ joins (~reach@142.198.51.47)
05:22:19 seeg123456 joins (~seeg12345@64.176.64.83)
05:25:18 × reach__ quits (~reach@142.198.51.47) (Ping timeout: 244 seconds)
05:27:16 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:45:44 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:46:59 × mixfix41 quits (~sdeny9ee@user/mixfix41) (Ping timeout: 260 seconds)
05:51:19 CiaoSen joins (~Jura@2a05:5800:2a3:b400:664b:f0ff:fe37:9ef)
05:54:25 titibandit joins (~titibandi@user/titibandit)
05:54:26 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
06:05:42 titiband1t joins (~titibandi@user/titibandit)
06:07:53 × titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection)
06:14:00 seeg123456 parts (~seeg12345@64.176.64.83) ()
06:14:57 × Luj quits (~Luj@2a01:e0a:5f9:9681:b61c:443d:ba92:3071) (Quit: Ping timeout (120 seconds))
06:15:14 Luj joins (~Luj@2a01:e0a:5f9:9681:9d2:9ce:d805:54e2)
06:16:28 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
06:19:58 mmhat joins (~mmh@p200300f1c73d1944ee086bfffe095315.dip0.t-ipconnect.de)
06:19:58 × mmhat quits (~mmh@p200300f1c73d1944ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
06:20:30 × foul_owl_ quits (~kerry@193.29.61.236) (Ping timeout: 245 seconds)
06:21:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:22:32 acidjnk joins (~acidjnk@p200300d6e7072f09b522d1b3cfe8e851.dip0.t-ipconnect.de)
06:23:46 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 260 seconds)
06:29:00 kenran joins (~user@user/kenran)
06:34:00 bliminse joins (~bliminse@user/bliminse)
06:34:43 foul_owl_ joins (~kerry@185.219.141.162)
06:35:05 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
06:35:16 dibblego joins (~dibblego@116.255.1.151)
06:35:16 × dibblego quits (~dibblego@116.255.1.151) (Changing host)
06:35:16 dibblego joins (~dibblego@haskell/developer/dibblego)
06:36:55 seeg123456 joins (~seeg12345@64.176.64.83)
06:39:39 × shapr quits (~user@2600:1700:c640:3100:fa13:6c46:116:2be9) (Ping timeout: 246 seconds)
06:40:51 seeg123456 parts (~seeg12345@64.176.64.83) ()
06:41:11 Guest8558 joins (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
06:41:16 seeg123456 joins (~seeg12345@64.176.64.83)
06:44:24 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:47:35 chele joins (~chele@user/chele)
06:47:51 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
06:50:30 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
06:55:53 codaraxis joins (~codaraxis@user/codaraxis)
06:59:11 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
07:01:07 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:01:08 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:01:08 dibblego joins (~dibblego@haskell/developer/dibblego)
07:03:06 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
07:03:44 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:05:42 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
07:06:35 dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:06:36 × dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:06:36 dobblego joins (~dibblego@haskell/developer/dibblego)
07:06:53 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
07:07:05 dobblego is now known as dibblego
07:11:47 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
07:13:41 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
07:14:35 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:14:35 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:14:35 dibblego joins (~dibblego@haskell/developer/dibblego)
07:16:11 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
07:19:39 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:20:44 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
07:22:28 fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932)
07:23:35 emmanuelux joins (~emmanuelu@user/emmanuelux)
07:24:35 × ft quits (~ft@p3e9bc61e.dip0.t-ipconnect.de) (Quit: leaving)
07:24:50 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection)
07:25:47 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 264 seconds)
07:26:50 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:26:50 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:26:50 dibblego joins (~dibblego@haskell/developer/dibblego)
07:32:49 <Inst> erm, does anyone use halide? Since I can't get accelerate to work :(
07:32:55 <Inst> well, not without stack, but lazy
07:33:14 <Inst> bleh, tbh, i'll just install halide via msys on win64 and see how well that works out
07:35:01 <[exa]> that platform isn't very compatible with the idea of getting stuff to work
07:35:15 <[exa]> (apologies for slightly brutal honesty)
07:36:29 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
07:37:02 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
07:37:02 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
07:37:02 dibblego joins (~dibblego@haskell/developer/dibblego)
07:37:43 <mzg> [exa]: have to write that response down, it seems to be reusable to various other situations
07:38:18 <Inst> ehhh, msys doesn't have it
07:38:31 <Inst> yeah, i know, i can't even get more niche python libs to work on windows
07:51:55 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 240 seconds)
07:53:47 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
07:55:18 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:58:05 nattiestnate is now known as internatetional
07:58:07 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
07:59:21 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
08:00:18 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 244 seconds)
08:01:55 <davean> Inst: I can say accelerate has worked for me on linux without too much trouble. I have heard people *have* gotten it to work on windows, but I forget who
08:02:10 × arahael_ quits (~arahael@124-149-31-4.dyn.iinet.net.au) (Ping timeout: 245 seconds)
08:03:14 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
08:04:08 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:04:47 <Inst> I can't figure out how to get the newer versions of accelerate to install from github
08:05:59 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
08:14:16 × phma quits (phma@2001:5b0:210b:9ac8:482d:5318:4a02:3871) (Read error: Connection reset by peer)
08:15:18 phma joins (~phma@2001:5b0:210f:78d8:de61:1bc2:fcbd:591a)
08:18:18 dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
08:18:18 × dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
08:18:18 dobblego joins (~dibblego@haskell/developer/dibblego)
08:18:28 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 258 seconds)
08:18:59 dobblego is now known as dibblego
08:21:43 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
08:22:04 <[exa]> Inst: git clone the repo and add it to your project using `cabal.project` config?
08:29:59 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:30:39 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:32:09 danse-nr3 joins (~francesco@151.37.208.115)
08:32:44 tbagrel1 joins (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605)
08:33:23 × tbagrel1 quits (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605) (Client Quit)
08:33:45 × internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2)
08:33:57 tbagrel1 joins (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605)
08:34:04 internatetional joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f)
08:37:09 <tbagrel1> Hey! I'm currently working on GHC memory model, and I don't exactly understand when a thunk will be overwritten with a constructor or overwritten by an indirection (IND) pointing to a newly allocated constructor. I tried to run some tests, by forcing a thunk of a small struct VS big struct, but I couldn't derive any rule from my empirical results. The larger scope of the project is inspecting
08:37:10 <tbagrel1> GHC's heap at runtime (which currently works well, except when encountering indirections)
08:37:56 ub joins (~Thunderbi@178.165.173.150.wireless.dyn.drei.com)
08:37:58 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
08:38:01 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 244 seconds)
08:38:37 ubert1 joins (~Thunderbi@178.165.173.150.wireless.dyn.drei.com)
08:39:42 × razetime quits (~quassel@117.193.5.53) (Ping timeout: 246 seconds)
08:39:57 × ubert quits (~Thunderbi@178.115.37.112.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
08:39:57 ubert1 is now known as ubert
08:44:51 mango joins (~finn@2001:861:5863:3d50:1ef0:ac25:6f3c:22c7)
08:57:19 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Remote host closed the connection)
08:57:35 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
08:57:55 razetime joins (~quassel@117.193.5.53)
08:58:51 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
09:02:49 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 244 seconds)
09:14:11 gugu256 joins (~gugu256@93.22.132.228)
09:14:46 <gugu256> Hi everybody
09:15:04 <gugu256> if i want to uninstall haskell, what folders should I remove (Windows)
09:15:36 <gugu256> uninstall GHCUP
09:15:43 <gugu256> uninstall Cabal & Stack
09:16:43 <gugu256> ???
09:17:09 × yangby quits (~secret@183.128.108.131) (Quit: Go out for a walk and buy a drink.)
09:18:37 yangby joins (~secret@183.128.108.131)
09:20:53 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) (Remote host closed the connection)
09:24:59 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
09:26:28 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
09:27:52 <danse-nr3> gugu256, ghcup has its uninstallation doc https://www.haskell.org/ghcup/install/#uninstallation. Not sure whether it uninstall also cabal and stack
09:30:31 mango_ joins (~finn@2001:861:5863:3d50:37ea:5881:7052:43c7)
09:31:08 dobblego joins (~dibblego@116.255.1.151)
09:31:08 × dobblego quits (~dibblego@116.255.1.151) (Changing host)
09:31:08 dobblego joins (~dibblego@haskell/developer/dibblego)
09:31:09 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
09:31:09 × mango quits (~finn@2001:861:5863:3d50:1ef0:ac25:6f3c:22c7) (Ping timeout: 246 seconds)
09:31:12 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
09:31:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:31:52 dobblego is now known as dibblego
09:42:22 × yangby quits (~secret@183.128.108.131) (Ping timeout: 252 seconds)
09:42:42 yangby joins (~secret@183.128.108.131)
09:42:51 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:42:52 <maerwald> gugu256: why
09:43:37 × mango_ quits (~finn@2001:861:5863:3d50:37ea:5881:7052:43c7) (Ping timeout: 246 seconds)
09:43:51 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
09:43:53 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
09:44:49 mango joins (~finn@2001:861:5863:3d50:d28b:7203:a2f5:ab43)
09:44:50 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
09:45:36 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:45:44 Lord_of_Life_ is now known as Lord_of_Life
09:48:30 <gugu256> maerwald: 6 GB
09:48:44 <maerwald> gugu256: how much you got
09:49:19 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 244 seconds)
09:49:34 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
09:50:29 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
09:53:33 <maerwald> gugu256: are you still counting?
09:53:41 gugu_ joins (~gugu256@219.134.22.93.rev.sfr.net)
09:53:56 × gugu_ quits (~gugu256@219.134.22.93.rev.sfr.net) (Remote host closed the connection)
09:54:11 <probie> maerwald: does that really matter? It seems like a non sequitur. Even if it's just 4KiB there should be instructions on how to get rid of it
09:54:13 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:54:13 gugu_ joins (~gugu256@219.134.22.93.rev.sfr.net)
09:54:20 <maerwald> probie: there is
09:54:23 <maerwald> ghcup nuke
09:54:46 gugu_ is now known as gugu265
09:54:47 <maerwald> just like in the oppenheimer movie
09:54:57 <gugu265> 6 GB of disk space is too much for just a compiler
09:55:07 <maerwald> hmm... you can reduce it by removing profiling libs
09:55:22 <maerwald> ghcup gc --help
09:55:30 <maerwald> it can go down to 1GB for just GHC
09:56:22 <gugu265> i removed everything
09:56:30 <maerwald> you nuked it?
09:56:35 <[exa]> cabal clean --oppenheimer
09:56:38 <maerwald> lol
09:56:41 × Guest8558 quits (~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 245 seconds)
09:56:46 × gugu256 quits (~gugu256@93.22.132.228) (Ping timeout: 250 seconds)
09:58:19 <maerwald> gugu265: also check ~/.cabal directory
09:58:36 × internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2)
09:58:43 <gugu265> yes i removed it too
09:58:50 internatetional joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f)
09:58:58 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:59:04 <maerwald> and now what?
09:59:33 driib joins (~driib@vmi931078.contaboserver.net)
10:01:11 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 264 seconds)
10:01:39 Maxdamantus joins (~Maxdamant@user/maxdamantus)
10:01:52 <gugu265> now, i'll re-install haskell with less shit and more gold
10:01:58 <maerwald> uhm... how?
10:02:12 <gugu265> i'll just download the GHC ?
10:02:19 <maerwald> that'll still be 2GB lol
10:02:35 <gugu265> that's 4GB less
10:02:40 <gugu265> what version should I use ?
10:02:47 <maerwald> I won't tell you
10:02:49 <gugu265> 9.6.2
10:02:49 <gugu265> 9.4.5
10:02:49 <gugu265> 9.2.8
10:02:54 <maerwald> but the other 4GB were due to HLS, not GHC
10:02:56 <[exa]> gugu265: tbh I'm doing the same, just get the binary ghc + binary cabal and put them into the system properly
10:02:58 <maerwald> you could have just uninstalled that
10:03:22 <maerwald> now you don't have an easy mechanism to remove profiling libs, for example
10:03:27 <maerwald> unless you know how to do it manually
10:03:34 <maerwald> seems like a step backwards
10:03:37 <gugu265> OK SO WHAT SHOULD I DO ?
10:03:43 <maerwald> first: panic
10:03:48 <gugu265> i don't have haskell installed on my computer, at all
10:03:48 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:03:52 <gugu265> what do I do
10:04:28 <maerwald> curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=yes sh
10:04:57 <gugu265> i'm on windows, u sure it'll work ?
10:05:01 <maerwald> ah
10:05:03 <maerwald> sec
10:05:30 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
10:05:34 <gugu265> I mean, i have MySys installed
10:05:49 × acro quits (~acro@user/acro) (Quit: Bye.)
10:05:49 × ouroboros quits (~ouroboros@user/ouroboros) (Quit: Bye.)
10:05:49 <maerwald> alright
10:06:05 seeg123456 parts (~seeg12345@64.176.64.83) ()
10:06:52 <maerwald> Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try { Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true, $true } catch { Write-Error $_ }
10:06:56 <maerwald> that should do
10:07:02 acro joins (~acro@user/acro)
10:07:45 <maerwald> [exa]: manual installation on windows is quite challenging
10:08:04 ouroboros joins (~ouroboros@user/ouroboros)
10:08:09 <gugu265> yes that's the command they told me to do in the beginning
10:08:19 <gugu265> ok so now my question is, what do i need to install
10:08:22 <maerwald> gugu265: but this one is different
10:08:30 <maerwald> it will not install GHC
10:08:31 <gugu265> like what's the point of cabal and stack ?
10:08:40 <maerwald> gugu265: ignore stack for now
10:08:44 <gugu265> "it will not install GHC" ???
10:08:50 <maerwald> yes, it's minimal
10:08:50 <gugu265> I want GHC, that's all i want actually
10:08:53 <maerwald> ok
10:09:07 <maerwald> then after it's done, you type: ghcup install ghc 9.4.5
10:09:07 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
10:09:17 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
10:09:20 <maerwald> it won't install HLS, stack or cabal
10:10:28 puke joins (~puke@user/puke)
10:10:50 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
10:11:22 <gugu265> extracting mysys archive...
10:11:31 <maerwald> you can tell it to use an existing msys2
10:11:35 <gugu265> I didnt install anything else than Mysys btw
10:11:44 <gugu265> yeah but i don't know where is it
10:11:50 <maerwald> I don't know either
10:12:26 <gugu265> will it install ghci
10:12:27 <gugu265> ?
10:12:58 <maerwald> `ghcup install ghc 9.4.5` will
10:13:09 <gugu265> ok
10:13:11 <gugu265> And btw
10:13:12 <maerwald> or rather
10:13:20 <maerwald> ghcup install ghc --set 9.4.5
10:13:23 <gugu265> Why do we need SOOO MUCH space just for 1 language ?
10:13:35 <maerwald> no idea
10:13:56 <gugu265> I'm gonna fckin raid the Glasgow University
10:14:07 <maerwald> maintaining compilers seems to be somewhat of a challenge is my guess
10:14:33 <maerwald> gugu265: uhm...
10:15:52 <gugu265> 262MB just for ghc/ghci
10:15:55 <gugu265> WHHYYYYY
10:16:01 <danse-nr3> is it not nice to get so much love from newcomers
10:16:04 <maerwald> gugu265: in US, these types of jokes are not that much appreciated (bc they actually happen)
10:16:15 <maerwald> so I'm guessing this is European humor
10:16:15 <danse-nr3> yeah that was quite bad
10:16:30 <danse-nr3> gugu265, you use windows anyways, why would you care about memory usage
10:16:43 <maerwald> lol
10:16:44 <gugu265> maerwald: Very European humor, my bad. And when i said raiding i kinda meant like a viking attack in my head
10:16:56 <maerwald> ok, viking attack with flowers? Makes sense
10:16:56 <gugu265> Cuz you know scotland
10:17:42 <gugu265> Merging file tree from "C:\ghcup\tmp\ghcup-61967fa73e18beb9\ghc-9.4.5-x86_64-unknown-mingw32" to "C:\ghcup\ghc\9.4.5"
10:17:50 <maerwald> yeah
10:17:53 <gugu265> it's been doing that for like 2 minutes
10:17:56 <maerwald> right
10:18:05 <maerwald> well... I know why
10:18:12 <maerwald> but I can't say whether we can fix it
10:18:21 <maerwald> it installs file by file for safety reasons
10:18:29 <maerwald> instead of moving entire directory
10:18:40 <maerwald> and apparently, those syscalls are SLOW on windows
10:18:44 <gugu265> it's so damn slow
10:19:07 <gugu265> maerwald: tried Linux once, almost destroyed my computer. never agin.
10:19:31 <maerwald> linux destroyed your computer or you did?
10:19:35 <gugu265> I did
10:19:52 <maerwald> well, I guess you are somewhat of a viking after all
10:20:00 <gugu265> i messed up when trying to go back to windows, and my computer couldn't boot up
10:20:10 <maerwald> I think destroying computers was a tradition in old times
10:20:17 <gugu265> Yess yes
10:20:21 <gugu265> my ancestors did that
10:20:28 <maerwald> excellent
10:20:36 <gugu265> OdinSH >>> other command line tools
10:20:44 <gugu265> [ Info ] GHC installation successful
10:20:48 <gugu265> Wooho
10:21:04 <[exa]> \o/
10:21:08 <maerwald> so... can you type `ghci`?
10:21:22 <gugu265> it's not in path, SHITT
10:21:23 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c)
10:21:29 <maerwald> did you run refreshenv?
10:21:32 <maerwald> in your powershell
10:21:38 <gugu265> will do
10:21:43 <[exa]> gugu265: btw few hundreds of megs are a normal minimum for any compiler nowadays, unfortunately
10:22:28 <gugu265> refreshenv doesn't exist
10:23:10 <gugu265> i mean, I have the paths of ghc and ghci
10:23:16 <gugu265> can't i just add it myself in path ?
10:23:45 <maerwald> gugu265: RefreshEnv.exe
10:23:51 <maerwald> use tab completion man
10:24:44 <gugu265> where do i find refreshenv.exe ?
10:25:04 <maerwald> in your powershell
10:25:09 <gugu265> it doesn't work
10:25:24 <gugu265> wdym use tab completion ?
10:25:29 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c) (Ping timeout: 244 seconds)
10:26:01 <maerwald> close powershell and open again
10:26:26 <gugu265> still doesn't work
10:26:50 <[exa]> ghci or RefreshEnv.exe ?
10:26:56 <gugu265> both lol
10:27:15 <gugu265> ok all good
10:27:20 <gugu265> i added it in my path
10:27:22 <gugu265> myself
10:27:29 <gugu265> like a big boy
10:27:32 <gugu265> and it works
10:27:40 <maerwald> now you have it twice
10:27:46 <gugu265> twice ?
10:27:49 <maerwald> yes
10:27:52 <maerwald> in your PATH
10:28:00 <maerwald> oh
10:28:04 <maerwald> it's RefreshEnv.cmd
10:28:06 <gugu265> it was not in my path
10:28:21 <maerwald> check your path settings, I'm positive there will be two entries that are the same
10:28:22 <gugu265> RefreshEnv.cmd doesn't work
10:28:25 <maerwald> lol
10:28:32 <maerwald> your windows is busted
10:28:49 <gugu265> ,ope
10:28:50 <gugu265> nope
10:29:00 <gugu265> there aren't 2 duplicate entries
10:29:05 <maerwald> yes, prolly too old powershell version or something else
10:29:39 <gugu265> Windows 11 :skull:
10:29:49 <maerwald> or too new lol
10:29:50 <maerwald> xD
10:30:21 <gugu265> OK
10:30:33 <gugu265> So now i have an actual question abt haskell
10:31:06 × CiaoSen quits (~Jura@2a05:5800:2a3:b400:664b:f0ff:fe37:9ef) (Ping timeout: 258 seconds)
10:31:06 <maerwald> I think you used up your support time already
10:31:09 <maerwald> jk :P
10:31:24 Guest8558 joins (~finn@176-151-21-224.abo.bbox.fr)
10:31:50 <gugu265> how come i cna write 3+3 in GHCI, and it works
10:32:04 <gugu265> but if i write 3+3 in a .hs file and then GHC this file, it says EROROROROR
10:32:16 <maerwald> ghci is an interactive repl
10:32:26 <maerwald> a proper source file is something different
10:32:30 <maerwald> you'll need bindings
10:32:38 <maerwald> you can't have free floating expressions
10:32:44 <maerwald> what they gonna do?
10:32:52 titiband1t joins (~titibandi@user/titibandit)
10:32:54 <maerwald> fall through your editor or what
10:33:00 <gugu265> ok
10:33:20 <[exa]> gugu265: try something like: main = print (3+3)
10:33:25 <gugu265> is this resource good : http://learnyouahaskell.com/
10:33:33 <gugu265> [exa]: oh thx!
10:33:52 <[exa]> gugu265: the LYAH book has a newer and much updated version here https://learnyouahaskell.github.io/
10:34:04 <[exa]> (still including the silly pictures)
10:34:20 <gugu265> oh thanks
10:35:18 <maerwald> gugu265: https://www.haskell.org/ghcup/steps/
10:35:20 <maerwald> here's a first steps guide
10:35:25 <[exa]> also good.
10:35:57 <gugu265> The Glorious Glasgow Haskell Compilation System, version 9.4.5 go brrr
10:36:27 × danse-nr3 quits (~francesco@151.37.208.115) (Remote host closed the connection)
10:36:49 danse-nr3 joins (~francesco@151.37.208.115)
10:38:33 × razetime quits (~quassel@117.193.5.53) (Remote host closed the connection)
10:38:55 × mango quits (~finn@2001:861:5863:3d50:d28b:7203:a2f5:ab43) (Ping timeout: 246 seconds)
10:43:43 <maerwald> gugu265: you can leave donations
10:43:52 <gugu265> what ?
10:43:59 <maerwald> look
10:44:06 <maerwald> you're enjoying Haskell... don't deny it
10:44:16 <maerwald> only fair to sponsor it
10:44:50 <gugu265> cabal update
10:44:50 <gugu265> Downloading the latest package list from hackage.haskell.org
10:44:55 <gugu265> why is this so long
10:44:58 <maerwald> that's gonna take a while yeah
10:45:01 <maerwald> 500mb I think
10:45:04 <teddyc> [exa]: ah and they removed the "you're fat lose some weight fatty" in the fork. good
10:45:34 <gugu265> ok i'll just ^C that then
10:45:38 <maerwald> what?
10:45:55 <maerwald> well... ^C doesn't always work on windows xD
10:46:01 <maerwald> oops
10:46:10 <maerwald> depends on your cabal version
10:46:45 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 245 seconds)
10:49:08 <[exa]> teddyc: whoa good
10:50:48 <maerwald> lyah is fat shaming?
10:51:16 <Rembane> Yeah, it was. Very meh.
10:53:52 mncheck joins (~mncheck@193.224.205.254)
10:54:27 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
10:54:47 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
10:54:47 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
10:54:47 dibblego joins (~dibblego@haskell/developer/dibblego)
10:55:49 × perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2)
10:59:46 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
11:01:18 × titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection)
11:03:00 perrierjouet1 joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca)
11:03:52 × gugu265 quits (~gugu256@219.134.22.93.rev.sfr.net) (Remote host closed the connection)
11:04:17 gugu265 joins (~gugu256@219.134.22.93.rev.sfr.net)
11:13:39 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
11:15:44 seeg123456 joins (~seeg12345@64.176.64.83)
11:17:40 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
11:18:03 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
11:19:05 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 246 seconds)
11:22:31 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
11:24:47 <maerwald> dunno why I'm thinking of fat vikings now
11:25:10 <Rembane> maerwald: Have you played Lost Vikings lately?
11:25:22 <maerwald> nope... I haven't played games in years
11:25:36 <maerwald> maybe I should get a game controller
11:25:50 <maerwald> (can't use mouse for long)
11:27:07 <Rembane> It's a real classic, dunno if it's actually good
11:27:24 <Rembane> https://en.wikipedia.org/wiki/The_Lost_Vikings
11:27:41 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
11:30:16 <danse-nr3> that was a great one
11:39:42 maulanazn joins (~maulanazn@103.144.170.135)
11:39:53 maulanazn parts (~maulanazn@103.144.170.135) ()
11:49:12 × hdggxin quits (~hdggxin@122.175.41.19) (Ping timeout: 240 seconds)
11:49:32 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
11:52:50 mima joins (~mmh@ppp-212-114-180-185.dynamic.mnet-online.de)
11:53:22 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
11:53:56 <kenran> I want to call https://hackage.haskell.org/package/sdl2-2.5.5.0/docs/SDL-Raw-Video.html#v:getWindowWMInfo, where SysWMInfo is a Ptr (), but the official SDL2 docs say that in order for that function to work, its info.version field needs to be filled in by another procedure call first. I haven't really done C FFI in Haskell, so I'm struggling with that part
11:55:04 × gugu265 quits (~gugu256@219.134.22.93.rev.sfr.net) (Ping timeout: 250 seconds)
11:56:26 <kenran> I need to (I think) call getVersion :: MonadIO m => Ptr Version -> m (), but that Ptr needs to point "into" the SysWMInfo struct. Is that even possible with it being Ptr ()?
11:57:14 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
11:57:14 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
11:57:14 dibblego joins (~dibblego@haskell/developer/dibblego)
11:57:35 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
11:57:48 <kenran> (the C code would be something like: SDL_SysWMInfo info; SDL_VERSION(&info.version); SDL_GetWindowWMInfo(&window, &info);
12:00:51 × perrierjouet1 quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 4.0.2)
12:03:40 perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca)
12:03:47 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
12:04:46 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection)
12:05:14 × AlexNoo quits (~AlexNoo@178.34.162.202) (Read error: Connection reset by peer)
12:05:16 lambdabot joins (~lambdabot@silicon.int-e.eu)
12:05:16 × lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host)
12:05:16 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
12:05:39 AlexNoo joins (~AlexNoo@178.34.162.202)
12:05:43 × Guest8558 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 246 seconds)
12:06:07 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
12:08:52 hdggxin joins (~hdggxin@122.175.41.19)
12:09:11 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 245 seconds)
12:09:44 <geekosaur> kenran, `plusPtr` is a thing
12:10:26 <geekosaur> the parameter to `Ptr` is meaningless except as a tag you can use to keep distinct `Ptr`s straight in Haskell (that is, it's phantom)
12:11:59 MajorBiscuit joins (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b)
12:12:46 <kenran> geekosaur: ahh thanks, that makes one thing clear for me! So.... in order to even get the initial SysWMInfo, I'd need to allocate manually? Or how else would I even get that initial info pointer?
12:13:21 <geekosaur> this might be easier using "CApi" calling convention (requires `CApiFFI` extension) because then you could call `SDL_VERSION(&info.version)` directly, assuming it's `Storable`
12:13:32 <geekosaur> that's what `alloca` is for
12:18:12 <kenran> sorry, I'm struggling to even clearly formulate my questions :) thanks for all the advice! (probably) last question: in order to use alloca, I'd need a Haskell type for the `a`, which in my case doesn't exist yet. Is that correct?
12:18:45 <kenran> (I'll just read up on C FFI from scratch now)
12:18:57 <geekosaur> here's where you want `Storable`
12:19:18 <geekosaur> which lets you describe a mapping between a C `struct` and a Haskell type
12:19:35 × danse-nr3 quits (~francesco@151.37.208.115) (Read error: Connection reset by peer)
12:19:50 danse-nr3 joins (~francesco@151.35.133.32)
12:20:50 <geekosaur> and `hsc2hs` is one of several tools that helps you build `Storable` instances (`c2hs` is another, somewhat more automated but can make mistakes or need extra help because in C there's no difference between `foo *x` and `foo x[n]`)
12:21:13 gugu265 joins (~gugu256@219.134.22.93.rev.sfr.net)
12:25:39 gurkenglas joins (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de)
12:26:33 dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
12:26:33 × dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
12:26:34 dobblego joins (~dibblego@haskell/developer/dibblego)
12:26:41 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
12:27:17 dobblego is now known as dibblego
12:27:21 <chiselfuse> what's wrong with this? f :: a -> a f 1 = 1
12:27:40 <chiselfuse> • No instance for (Eq a) arising from the literal ‘1’
12:30:36 <geekosaur> you specified "any type `a`" then used one that requires `Eq` for a pattern match
12:31:07 <kenran> cool, I seem to begin to grasp it :) so in my case I could create an .hsc file, containing my MySysWMInfo definition (where I use the existing Version type) and mapping, then use alloca to get a pointer, call getVersion
12:31:13 <kenran> I'll try that later on, thanks again geekosaur
12:31:48 <chiselfuse> geekosaur: by pattern match you mean when haskell runs and tries to match the query `f 1` to the definition?
12:31:53 <geekosaur> yes
12:32:06 × Inst quits (~Inst@c-76-101-10-131.hsd1.fl.comcast.net) (Ping timeout: 245 seconds)
12:32:16 <geekosaur> pattern matches on instances of `Num` get translated into guards using `Eq`
12:32:40 <chiselfuse> ok, i specified that a should be of Eq and now i'm getting • Could not deduce (Num a) arising from the literal ‘1’
12:33:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:33:43 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
12:34:21 <geekosaur> right, that's the other `1` which requires `Num`
12:34:42 × kenran quits (~user@user/kenran) (Remote host closed the connection)
12:34:51 <chiselfuse> but what if i want to have `f 2 = True`
12:35:24 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Quit: Leaving)
12:38:05 <ncf> functions can't return different types based on the value of their argument, at least in haskell
12:40:12 <geekosaur> I take it you're used to something like Java where you can use `java.lang.Object` of which everything is an instance?
12:40:37 <geekosaur> we don't have any equivalent to that, and in particular there is no subtyping
12:41:12 × jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
12:42:14 Inst joins (~Inst@c-76-101-10-131.hsd1.fl.comcast.net)
12:45:43 hugo- joins (znc@verdigris.lysator.liu.se)
12:46:45 × acidjnk quits (~acidjnk@p200300d6e7072f09b522d1b3cfe8e851.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
12:55:06 <chiselfuse> how can i define a function that returns a function of its own type?
12:55:59 <chiselfuse> it takes say an Int, and returns a function that takes an Int that returns a function that takes an Int... and so on
12:57:23 × MajorBiscuit quits (~MajorBisc@2001:1c00:31c:8400:f184:4168:559b:d91b) (Ping timeout: 244 seconds)
12:57:55 × Inst quits (~Inst@c-76-101-10-131.hsd1.fl.comcast.net) (Ping timeout: 258 seconds)
12:57:55 <danse-nr3> how would such function even return anything?
12:58:27 <danse-nr3> *ever
12:59:00 <chiselfuse> hmm good point, guess i'll need a helper
12:59:16 MajorBiscuit joins (~MajorBisc@c-001-019-004.client.tudelft.eduvpn.nl)
12:59:19 <chiselfuse> wait no
12:59:27 barcisz joins (~barcisz@83.6.202.49.ipv4.supernova.orange.pl)
12:59:34 <chiselfuse> don't know actually
12:59:46 <chiselfuse> i'm trying to use currying to implement a variadic function
12:59:53 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds)
12:59:55 <chiselfuse> without using other haskell features
13:00:32 <chiselfuse> so i was thinking of returning the function over and over so it'd apply itself again and again on all functions until it reaches a delimiter
13:00:46 <danse-nr3> i guess a list does not give you the flexibility you are looking for
13:00:53 <chiselfuse> s/on all functions/on all arguments/
13:01:00 Cale joins (~cale@cpe80d04ade0a03-cm80d04ade0a01.cpe.net.cable.rogers.com)
13:01:03 <geekosaur> you need a way to match a delimiter, which gets you into the realm of typeclasses
13:01:03 <chiselfuse> danse-nr3: i don't want to use that either
13:01:08 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:01:14 <geekosaur> e.g. PrintfType
13:01:17 <chiselfuse> i want f 1 2 3 4 5 ... delimiter
13:02:13 acidjnk joins (~acidjnk@p200300d6e7072f09a8b60c3f1e99feab.dip0.t-ipconnect.de)
13:02:21 <danse-nr3> like `f (Just 1) (Just 2) (Just 3) Nothing`
13:02:31 <chiselfuse> danse-nr3: yes
13:03:17 dobblego joins (~dibblego@116.255.1.151)
13:03:18 × dobblego quits (~dibblego@116.255.1.151) (Changing host)
13:03:18 dobblego joins (~dibblego@haskell/developer/dibblego)
13:03:28 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
13:03:28 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:03:41 <chiselfuse> uh, how did you say i'd achieve that again?
13:03:46 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
13:04:00 dobblego is now known as dibblego
13:04:07 <ncf> typeclasses (but your delimiter wouldn't be Nothing, it would be an element of another type)
13:04:12 <danse-nr3> geekosaur, i am scared of looking into that, printf seemed hacky and unsafe the last time i looked into it
13:05:16 <geekosaur> it's not, really. and while I think the current version uses more stuff, the basic trick is Haskell98
13:05:44 <chiselfuse> ncf: what's "typeclasses", it's stuff like Eq, how would i use that?
13:05:59 <geekosaur> granting that any way to do this is "hacky" in some sense, because Haskell doesn't really do variadic functions
13:08:38 <danse-nr3> yeah, not easily though. chiselfuse's question is interesting though, although i find it hard to apply my brain on something that seems more easily achievable with lists
13:08:57 <danse-nr3> *not easily at least
13:12:02 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
13:12:06 <danse-nr3> i cannot think of a function that could call itself with that interface. Maybe an helper, but then it would feed another function that takes lists. Would it still be worth anything for you chiselfuse?
13:13:26 <chiselfuse> danse-nr3: that'd be fine
13:15:47 <danse-nr3> now i am in trouble ... maybe you know that it is theoretically impossible and are just testing us :D ... i will give this a try shortly
13:17:51 <chiselfuse> i am not testing anyone lol, someone implied it was possible that's all i know
13:18:21 azimut joins (~azimut@gateway/tor-sasl/azimut)
13:21:56 <danse-nr3> `f (Just 1) (Just 2) (Just 3) Nothing (Just 4)` should throw a compiler error. So at compiler time we would need to know the result of applying `f` ... that sounds like going against some principles of computer science
13:23:27 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:25:59 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:26:38 <danse-nr3> nope, i think it is not possible. Maybe ncf knows a way with typeclasses
13:26:53 <ncf> i just said that was not possible
13:28:39 <ncf> for the typeclass trick, see https://hackage.haskell.org/package/base-4.18.0.0/docs/Text-Printf.html#t:PrintfType
13:29:17 <ncf> that has no delimiter, but you can add one if you want to by adding an arrow in the base case
13:37:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:37:49 masterbuilder joins (~masterbui@user/masterbuilder)
13:39:19 sm[i] joins (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54)
13:43:15 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:43:46 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:44:07 × sm[i] quits (~sm@2601:196:4b80:3a40:210c:477a:6863:3d54) (Client Quit)
13:48:55 seeg123456 parts (~seeg12345@64.176.64.83) ()
13:54:08 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:59:52 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
14:03:35 × mei quits (~mei@user/mei) (Read error: Connection reset by peer)
14:05:24 ystael joins (~ystael@user/ystael)
14:06:01 mei joins (~mei@user/mei)
14:07:26 × puke quits (~puke@user/puke) (Ping timeout: 246 seconds)
14:08:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:14:24 × internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2)
14:19:42 internatetional joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f)
14:19:44 × ub quits (~Thunderbi@178.165.173.150.wireless.dyn.drei.com) (Quit: ub)
14:20:48 mango joins (~finn@2001:861:5863:3d50:4d58:d5db:5cbe:9ed8)
14:21:08 thegeekinside joins (~thegeekin@189.217.90.138)
14:26:55 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
14:28:22 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
14:29:45 <EvanR> danse-nr3, a funny application of dependent types, which obeys computer science, is having the type of printf depend on the format string passed in
14:30:13 ec joins (~ec@gateway/tor-sasl/ec)
14:31:04 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 250 seconds)
14:31:15 <EvanR> which is an extreme roundabout way to achieve something that's ultimately a bad idea probably xD
14:34:58 × perrierjouet quits (~perrierjo@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 250 seconds)
14:35:55 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
14:37:53 sm[i] joins (~sm@172.56.113.55)
14:38:50 <danse-nr3> well, that does not seem too bad, provides type safety
14:39:40 <[exa]> type safety against a string
14:39:50 <[exa]> pls don't
14:40:33 <danse-nr3> uh? Given a formatting string you get a type safe function to consume values that fit there
14:41:03 <[exa]> it sounds like a good idea right?
14:41:21 <danse-nr3> no, you are right. Better ignore everything and explode at runtime
14:41:23 <geekosaur> now you just need a way to make sure that string is a constant
14:42:19 <[exa]> danse-nr3: or have an actual correct formatter/prettyprinter in place
14:43:36 <[exa]> btw if the string is compiletime constant you could use TH to convert it to correctly typed formatting function, which is IMO much less of an atrocity
14:44:48 <danse-nr3> i see what you mean ... yeah i guess that the ergonomy of passing a string that affects the type is similar to pass a typed value that would not require dependent types
14:45:34 <geekosaur> I think there's at least one printf impl that does that on hackage?
14:45:35 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
14:45:42 <geekosaur> although it may be a proof of concept
14:47:58 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
14:48:22 shriekingnoise joins (~shrieking@186.137.175.87)
14:48:39 Lycurgus joins (~juan@user/Lycurgus)
14:50:10 perrierjouet joins (~perrierjo@modemcable048.127-56-74.mc.videotron.ca)
14:50:26 <[exa]> I somehow guessed it's gonna be named printf-th and voila
14:50:40 × Lycurgus quits (~juan@user/Lycurgus) (Client Quit)
14:51:42 ec joins (~ec@gateway/tor-sasl/ec)
14:52:09 × mango quits (~finn@2001:861:5863:3d50:4d58:d5db:5cbe:9ed8) (Ping timeout: 258 seconds)
14:52:46 × sm[i] quits (~sm@172.56.113.55) (Quit: sm[i])
14:54:55 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
14:55:05 sm[i] joins (~sm@2607:fb90:3c9a:6cc7:e920:67c0:23ad:80fa)
15:00:38 Inst joins (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0)
15:01:11 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
15:04:33 × gugu265 quits (~gugu256@219.134.22.93.rev.sfr.net) (Read error: Connection reset by peer)
15:05:35 × sm[i] quits (~sm@2607:fb90:3c9a:6cc7:e920:67c0:23ad:80fa) (Quit: sm[i])
15:06:40 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
15:06:48 Sgeo joins (~Sgeo@user/sgeo)
15:07:55 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
15:08:03 seeg123456 joins (~seeg12345@64.176.64.83)
15:11:37 × MajorBiscuit quits (~MajorBisc@c-001-019-004.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.6)
15:14:41 Inst_ joins (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0)
15:16:23 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
15:18:04 × Inst quits (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0) (Ping timeout: 260 seconds)
15:18:12 Inst__ joins (~Inst@2601:6c4:4081:2fc0:b8e3:e527:5654:3c93)
15:19:09 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
15:19:12 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:20:23 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:dcd5:b807:d9d7:f4a0) (Ping timeout: 264 seconds)
15:20:47 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
15:23:59 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:d004:e151:c029:6b7c)
15:24:35 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
15:26:06 × masterbuilder quits (~masterbui@user/masterbuilder) (Quit: Lost terminal)
15:29:39 <danse-nr3> is there a compiler feature to make the performance of `map f . filter g` equal to mapMaybe, iterating a list only once?
15:31:27 <danse-nr3> list fusion, i guess https://wiki.haskell.org/GHC_optimisations#Fusion
15:32:06 <geekosaur> right, but then you have to see if using that fires any appropriate RULES
15:32:09 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
15:32:31 <geekosaur> list fusion requires that someone predefine the fusion rules
15:34:46 <danse-nr3> i guess i will use mapMaybe then. Cheers
15:35:02 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 260 seconds)
15:36:41 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
15:37:31 × tbagrel1 quits (~thomas@2a01:e0a:1ef:6520:c532:105d:de51:605) (Quit: WeeChat 3.5)
15:38:20 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
15:39:08 <geekosaur> looks to me like map and filter are both FB rules, see Note [Inline FB functions] in GHC.List
15:39:29 <geekosaur> so it should optimize, not to mapMaybe but to something morally equivalent
15:39:47 <geekosaur> and perhaps faster
15:40:15 <geekosaur> (single pass, no Maybe involved)
15:41:04 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
15:41:49 × dfg quits (~dfg@user/dfg) (Remote host closed the connection)
15:42:15 dfg joins (~dfg@dfg.rocks)
15:42:15 × dfg quits (~dfg@dfg.rocks) (Changing host)
15:42:15 dfg joins (~dfg@user/dfg)
15:45:11 <geekosaur> so instead of mapMaybe it should filterFB and mapFB in the same list operation, either dropping the filtered element or mapping it
15:46:02 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
15:46:37 <danse-nr3> thanks, but seems a bit opaque, i think i will stick to mapMaybe for now
15:46:59 <geekosaur> it is a bit opaque, but it's suitably clever
15:47:08 <geekosaur> ghc is pretty good at this stuff
15:47:11 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
15:47:59 arahael_ joins (~arahael@115-64-199-191.tpgi.com.au)
15:48:06 <danse-nr3> yep, it will be handy for the times where we did not notice, and maybe with time i will learn the rules
15:48:53 <danse-nr3> is there a table to look up for them?
15:49:17 <geekosaur> as a practical matter, the rules are "write the obvious code and worry about optimization if and when it's shown to be necessary"
15:49:44 razetime joins (~quassel@117.193.5.53)
15:49:59 <geekosaur> also you may be left pretty embarrassed if your mapMaybe ends up slower than ghc's FB optimizations
15:50:20 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:50:28 <danse-nr3> you told me "you have to see if using that fires any appropriate rules", so i thought there was some reference somewhere
15:50:50 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
15:50:59 <geekosaur> the reference is the source code. I probably should not have said that since this seems like a "premature optimization" situation
15:51:42 <danse-nr3> yeah i am not dying for bits on this, just general good practice in writing
15:51:44 <geekosaur> if you insist on premature optimization then yes, you either look around for `RULE`s or you inspect GHC Core
15:52:02 shapr joins (~user@2600:1700:c640:3100:54fd:7954:acad:5050)
15:52:05 <geekosaur> good practice is to write for the reader unless profiling a hot path shows otherwise
15:52:22 × arahael_ quits (~arahael@115-64-199-191.tpgi.com.au) (Ping timeout: 252 seconds)
15:52:54 <danse-nr3> well i also had stumbled upon list fusion before and was looking for an easy way to conceptualise it
15:53:31 <geekosaur> conceptually, list operations get split up into pieces that can be combined into a single fold
15:53:56 <geekosaur> so map becomes "call a function", filter becomes "select or reject an item", etc.
15:55:47 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Quit: Leaving)
15:56:08 <danse-nr3> yeah, but i have no elements to say which list passes will be optimised or not unless i look at the source. To put it simple this is not that simple, will study it a bit more the next time i feel it could help
15:56:12 <geekosaur> and ghc does a lot of work to turn obvious code into these optimized folds for you, and you should generally report a bug if it fails
15:59:21 <[Leary]> danse-nr3: If you want to understand list fusion, implement operations for `newtype List a = List (forall r. r -> (a -> r) -> r)` and observe that they fuse. Data.List RULES basically just map into this alternate representation.
16:00:12 × highvoltage quits (~highvolt@bcdcac82.skybroadband.com) (Ping timeout: 240 seconds)
16:01:03 ft joins (~ft@p3e9bc61e.dip0.t-ipconnect.de)
16:01:14 <int-e> :t flip foldr
16:01:15 <lambdabot> Foldable t => b -> (a -> b -> b) -> t a -> b
16:01:31 <int-e> [Leary]: you're missing an `r`
16:01:38 <[Leary]> Oh, I missed a tyvar or two. Yeah, oops.
16:02:30 × mima quits (~mmh@ppp-212-114-180-185.dynamic.mnet-online.de) (Ping timeout: 250 seconds)
16:03:02 highvoltage joins (~highvolt@bcdcac82.skybroadband.com)
16:03:03 × ft quits (~ft@p3e9bc61e.dip0.t-ipconnect.de) (Remote host closed the connection)
16:04:59 seeg123456 parts (~seeg12345@64.176.64.83) ()
16:05:22 × acidjnk quits (~acidjnk@p200300d6e7072f09a8b60c3f1e99feab.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
16:05:31 × mei quits (~mei@user/mei) (Remote host closed the connection)
16:07:19 <danse-nr3> not sure what you mean. I should implement `flip foldr`, and then? How do i observe that it fuses?
16:07:57 mei joins (~mei@user/mei)
16:08:14 flounders joins (~flounders@24.246.133.1)
16:08:50 <int-e> :t \xs nil cons -> foldr cons nil xs
16:08:51 <lambdabot> Foldable t => t a -> b -> (a -> b -> b) -> b
16:10:25 <int-e> danse-nr3: The idea is that `forall r. r -> (a -> r -> r) -> r` is isomorphic to [a], and `foldr`, after shuffling arguments is one direction of the isomorphism.
16:10:43 <[Leary]> danse-nr3: Rearranging the arguments of `foldr`, we have `[a] -> (forall b. b -> (a -> b -> b) -> b)`. You can also write the other direction; this type is another way to represent lists. If you write operations like `map` and `filter` on this representation, you'll be able to see intuitively (or by algebraic substitution) that they fuse.
16:10:53 <int-e> And the other direction can be derived from `foldr (:) [] xs = xs`.
16:11:27 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
16:11:52 <int-e> So if you understand `foldr`, understanding `forall r. r -> (a -> r -> r) -> r` should be fairly easy.
16:12:51 acidjnk joins (~acidjnk@p200300d6e7072f09e09871481cfbcb71.dip0.t-ipconnect.de)
16:17:56 thegeekinside joins (~thegeekin@189.217.90.138)
16:18:12 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
16:19:52 danse-nr3_ joins (~francesco@151.37.218.65)
16:20:20 <danse-nr3_> i think we are sidetracking ... but i will try to learn this thing. How can `forall r. r -> (a -> r -> r) -> r` be isomorphic to `[a]`?
16:20:29 <danse-nr3_> so "abc" would correspond to?
16:20:31 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:20:57 <[Leary]> \nil cons -> cons 'a' (cons 'b' (cons 'c' nil))
16:21:16 × danse-nr3 quits (~francesco@151.35.133.32) (Read error: Connection reset by peer)
16:21:37 <danse-nr3_> :t \nil cons -> cons 'a' (cons 'b' (cons 'c' nil))
16:21:38 <lambdabot> t -> (Char -> t -> t) -> t
16:22:28 <danse-nr3_> cool stuff :)
16:22:45 × barcisz quits (~barcisz@83.6.202.49.ipv4.supernova.orange.pl) (Quit: Connection closed)
16:22:49 Drew[m]1 joins (~drewefenw@2001:470:69fc:105::c8c4)
16:22:58 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
16:27:39 <danse-nr3_> well looks like i have got some exercise do to in my spare time. Thanks geekosaur [Leary] int-e
16:29:58 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:31:06 ec joins (~ec@gateway/tor-sasl/ec)
16:32:04 × nick4 quits (~nick@2600:8807:9084:7800:504a:bdb:1c92:8eb1) (Ping timeout: 246 seconds)
16:36:41 ft joins (~ft@p3e9bc61e.dip0.t-ipconnect.de)
16:38:25 × ddellacosta quits (~ddellacos@146.70.185.168) (Ping timeout: 245 seconds)
16:38:54 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:38:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:41:47 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
16:42:01 × billchenchina quits (~billchenc@103.152.35.21) (Remote host closed the connection)
16:42:10 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:42:29 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 246 seconds)
16:49:36 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 245 seconds)
16:51:29 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:52:14 mango joins (~finn@2001:861:5863:3d50:dac7:1c9e:d3d9:d11b)
16:52:28 × son0p quits (~ff@181.136.122.143) (Ping timeout: 244 seconds)
16:52:42 tomboy64 joins (~tomboy64@user/tomboy64)
17:01:48 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
17:02:44 ddellacosta joins (~ddellacos@146.70.168.156)
17:09:00 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:10:17 × flounders quits (~flounders@24.246.133.1) (Ping timeout: 246 seconds)
17:15:23 × Alex_test quits (~al_test@178.34.162.202) (Ping timeout: 246 seconds)
17:15:28 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
17:16:05 × AlexZenon quits (~alzenon@178.34.162.202) (Ping timeout: 246 seconds)
17:17:14 × hook54321 quits (sid149355@id-149355.ilkley.irccloud.com) (Changing host)
17:17:14 hook54321 joins (sid149355@user/hook54321)
17:19:28 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Remote host closed the connection)
17:20:30 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 250 seconds)
17:23:41 Alex_test joins (~al_test@178.34.162.202)
17:23:50 × fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection)
17:25:47 <EvanR> danse-nr3_, to show isomorphism between A and B you need maps between them that cancel each other
17:26:01 notzmv joins (~zmv@user/notzmv)
17:27:21 <EvanR> encode decode where decode can't fail
17:30:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:32:01 AlexZenon joins (~alzenon@178.34.162.202)
17:33:14 <danse-nr3_> yeah i think i understand that, thanks
17:37:17 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:43:18 <Inst__> seems unfortunately accurate
17:43:19 <Inst__> https://github.com/vrom911/haskeller-answers/blob/master/src/HaskellerAnswers.hs
17:45:36 <yushyin> no
17:49:44 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
17:51:08 <Inst__> in the sense that many haskellers are guilty of the satirized behavior in the list at one time or another
17:56:04 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds)
17:57:03 <ddellacosta> I feel like most of these are jokes, but yeah "just use nix" does get said a bit much (saying this as a nix user myself)
17:59:57 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds)
18:02:48 billchenchina joins (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a)
18:03:11 titibandit joins (~titibandi@user/titibandit)
18:03:18 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
18:03:48 merijn joins (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl)
18:05:12 × talismanick quits (~user@76.133.152.122) (Remote host closed the connection)
18:05:25 <yushyin> seems to me to be more of a trend, at some point it was also 'just use stack'
18:05:56 <dolio> Some of these I've never heard, I think.
18:06:44 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
18:08:08 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
18:08:21 × merijn quits (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
18:09:03 <yushyin> many of these statements are actually rather poorly received and also rejected by the regulars here
18:09:28 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 250 seconds)
18:16:27 bratwurst joins (~dfadsva@2604:3d09:207f:f650::c680)
18:16:58 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
18:17:30 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:21:09 titibandit joins (~titibandi@user/titibandit)
18:21:32 × razetime quits (~quassel@117.193.5.53) (Remote host closed the connection)
18:21:54 Guest8558 joins (~finn@176-151-21-224.abo.bbox.fr)
18:22:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:25:53 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds)
18:26:37 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
18:33:17 × mango quits (~finn@2001:861:5863:3d50:dac7:1c9e:d3d9:d11b) (Ping timeout: 245 seconds)
18:35:43 mango joins (~finn@2001:861:5863:3d50:8912:5927:5eae:b7b)
18:36:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:36:56 <cheater> dolio: like which one
18:38:36 × czy quits (~user@host-140-26.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
18:43:36 <dolio> "Types are IDE"
18:44:48 <dolio> Also, two of them look like garbage that is the output of @pl which are like texbook examples of why "only write pointfree code" is a bad idea.
18:46:45 <int-e> Though to be fair to @pl, it would never use (<$>) for (.)
18:48:43 × mango quits (~finn@2001:861:5863:3d50:8912:5927:5eae:b7b) (Ping timeout: 244 seconds)
18:51:01 <dolio> Yeah, it's possible someone figured that one out by hand.
18:51:19 × trev quits (~trev@user/trev) (Quit: trev)
18:52:58 × h2t_ quits (~h2t@user/h2t) (Quit: ZNC - https://znc.in)
18:53:17 h2t joins (~h2t@user/h2t)
18:53:24 <dolio> If it was, something like that is clearly goofing around. So I'm not sure why it's, "unfortunately accurate," that people like to do things like that that are clearly a bad idea just on a goof.
18:56:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:01:35 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 246 seconds)
19:04:06 son0p joins (~ff@181.136.122.143)
19:05:51 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:09:22 pavonia joins (~user@user/siracusa)
19:09:56 mixfix41 joins (~sdeny9ee@user/mixfix41)
19:10:45 <monochrom> Parametricity can prove the difficult direction of why [a] is isomorphic to forall r. r -> (a -> r -> r) -> r.
19:11:26 <monochrom> Actually some of you saw that I put that difficult direction on my assignment, using a=Int. :)
19:12:09 <monochrom> Today I'm thinking how to be more abstract and, assuming that an initial algebra is already known to exist, how to use Yoneda's lemma to replace parametricity.
19:13:21 <mauke> r -> (a -> w -> r) -> x -> d
19:13:51 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:16:16 misterfish joins (~misterfis@178.228.71.213)
19:16:30 <int-e> mauke: still friendlier than stabby lenses
19:17:29 <monochrom> I think this is on the right track. (Given a functor F for us to make F-algebras. Assume it has an intial algebra.) Use the forgetful functor U from F-algebras to carriers in Set. Then by Yoneda, (forall a. (homomorphism from initial algebra to algebra a) -> U (algebra a)) is isomorphic to U (initial algebra).
19:17:32 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:17:50 <monochrom> And "(homomorphism from initial algebra to algebra a)" can be simplified to F a -> a.
19:20:40 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
19:23:00 <ncf> so, forall r. r → (a → r → r) → r ≃ forall r. (Maybe (a, r) → r) → r ≃ forall r. (ListF a r → r) → r ≃ forall r. (Fix (ListF a) → r) → r ≃ Fix (ListF a) ≃ [a]
19:23:51 × misterfish quits (~misterfis@178.228.71.213) (Ping timeout: 244 seconds)
19:24:17 <ncf> well, this is not typed enough :)
19:25:24 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
19:27:57 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
19:27:57 <monochrom> If you attempt a parametricity proof, it is simpler to stick to r -> (a -> r -> r) -> r. Don't pack it up into ListF. :)
19:28:17 thegeekinside joins (~thegeekin@189.217.90.138)
19:28:23 <monochrom> But if you want a general proof that works for all algebraic types, then yeah.
19:28:43 × forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in)
19:29:58 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
19:33:03 <dolio> I think it's a lot less clear how to get this to work with categories, if you want to make literal sense of the quantified type.
19:35:22 <dolio> You have to know the right tricks to make mixed variance stuff work out.
19:36:12 <ncf> smells like the end
19:36:24 <monochrom> I literally try to shoehorn "natural transformation" into it whenever I see forall. So I prefer shoehorning category theory into it. :)
19:37:12 <monochrom> And in this case, yeah for 5 minutes I didn't know what to to with the variance of "F a -> a". Then I tried "wait, it's an F-algebra, let me switch to another category".
19:37:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
19:37:22 <dolio> Right, but in this case it can't be natural. So if you know a little, you might have heard about 'dinatural' transformations, and think you have to do that.
19:37:38 forell joins (~forell@user/forell)
19:37:54 <dolio> But I think that's a mistake. They don't actually work. That led some people to come up with 'strong dinatural,' which as far as I can tell was invented only for this purpose.
19:37:55 <monochrom> And so the natural transformation is from Hom(initial algebra, -) to U. (where Hom is for the category of F algebras.)
19:38:21 dom0 joins (~u0_a242@79.116.108.247)
19:38:52 <dolio> But then category theorists have another trick called 'extranatural,' which behaves better, and covers almost everything people want to do. So I think you'd want to try to massage things into that form first.
19:39:32 <ncf> just jump straight to using an end imo
19:43:44 <monochrom> Why can't it be natural? Alternatively, I may be proving a much weaker claim, and just focusing on what's given to be natural.
19:44:23 <monochrom> And also weak in terms of presuming somehow we already have an initial algebra in some other form in the first place.
19:45:02 <monochrom> And my conclusion at the moment is only "isomorphic in Set" so it's still an unstructured bijection.
19:45:26 <dolio> monochrom: Because r occurs in both covariant and contravariant positions.
19:45:38 <dolio> No matter how you split it up.
19:46:58 <monochrom> But I'm using Hom(initial algebra, -).
19:47:17 <ncf> so you're not formalising the whole thing
19:47:48 <monochrom> The fact that it simplifies to "/\r. F r -> r" is afterwards.
19:48:00 <dolio> Yeah, I mean if you want to make sense of a formula like `forall r. r -> (a -> r -> r) -> r`
19:49:11 L29Ah joins (~L29Ah@wikipedia/L29Ah)
19:50:27 × nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Changing host)
19:50:27 nyc joins (~nyc@user/nyc)
19:51:44 × danse-nr3_ quits (~francesco@151.37.218.65) (Ping timeout: 250 seconds)
19:53:38 <monochrom> OK I see. I still don't know whether "forall r. (F r -> r) -> r" is the same as "forall algebra a. a -> U a".
19:57:08 <dolio> No, should be `forall algebra a. U a`, I think.
19:57:25 justsomeguy joins (~justsomeg@user/justsomeguy)
19:58:01 <dolio> The type of values that all algebras are required to have.
19:58:19 <monochrom> I began with "forall algebra a. Hom(initial, a) -> U a". Initiality allows simplifying Hom(initial, a) to a.
19:59:22 <dolio> No, there is a unique homomorphism from the initial algebra to each other algebra.
19:59:40 <dolio> So Hom(initial, a) is the unit type.
20:00:06 <monochrom> Oh darn, right.
20:02:51 <monochrom> Thanks. My excuse is I didn't have tea today!
20:03:00 <monochrom> And didn't have wine last night!
20:05:35 <mauke> https://www.youtube.com/watch?v=u_776fo3XHc
20:08:22 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
20:13:50 × internatetional quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Quit: WeeChat 4.0.2)
20:32:06 <Inst__> yushyin: that's why it's satire
20:34:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:37:03 Pickchea joins (~private@user/pickchea)
20:41:42 fendor joins (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932)
20:44:07 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
20:47:50 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:49:44 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
20:55:46 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:57:01 nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa)
21:01:29 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::c680) (Ping timeout: 246 seconds)
21:04:13 × kimiamania60 quits (~681cf57f@user/kimiamania) (Quit: PegeLinux)
21:04:39 kimiamania60 joins (~681cf57f@user/kimiamania)
21:04:58 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:07:05 × nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 246 seconds)
21:10:18 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
21:11:00 × dom0 quits (~u0_a242@79.116.108.247) (Quit: WeeChat 4.0.1)
21:15:27 <justsomeguy> Hi #haskell. I've been learning Haskell, with some help here and there, from haskellbook.com and this IRC channel. I got through the basics, recursion/folding/ADTs/how to define type classes, as well as Functor and Monad. But now I feel a little burnt out on that book. What do you think I should do from here to continue learning?
21:16:32 <jade[m]> find something you find interesting and create a project or contribute to an existing project!!
21:16:48 <jade[m]> no amount of learning will be as valuable as actually using what you learnt
21:16:49 <justsomeguy> I was considering doing a bunch of small projects, like a website link health checker, a command-line todo app, etc, but to be honest I always get stuck. Maybe I'm just dumb.
21:17:31 <monochrom> burnt out => don't continue?
21:17:32 <jade[m]> You're not, it's normal to get stuck once you get to bigger projects, that's expected even
21:18:01 <jade[m]> also yeah, burnt out means you should probably take a break and get some breathing room
21:18:02 mima joins (~mmh@ppp-212-114-180-85.dynamic.mnet-online.de)
21:18:48 hololeap_ joins (~quassel@user/hololeap)
21:19:27 <monochrom> burnt out /\ looking for more => addiction >:)
21:19:39 <justsomeguy> lol, that sounds right
21:19:42 reach__ joins (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca)
21:19:48 <jade[m]> haha
21:20:47 × acidjnk quits (~acidjnk@p200300d6e7072f09e09871481cfbcb71.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
21:21:21 <justsomeguy> I think I'm going to try the tutorial for IHP, and see how that goes. I could use a simple personal website, and at least I have a pretty good idea what goes into making one from the sysadmin side.
21:21:44 sm[i] joins (~sm@2601:196:4b80:3a40:65:7c1f:38cd:576)
21:22:00 × hololeap quits (~quassel@user/hololeap) (Ping timeout: 246 seconds)
21:22:11 nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa)
21:23:13 × ncf quits (~n@monade.li) (Quit: Fairfarren.)
21:24:02 × reach__ quits (~reach@bras-base-toroon2643w-grc-02-142-198-51-47.dsl.bell.ca) (Ping timeout: 250 seconds)
21:24:29 ncf joins (~n@monade.li)
21:25:26 <sm> not sure how "simple" that will be
21:25:45 <justsomeguy> I mean, it looks super complex! But also probably very guided.
21:26:13 <monochrom> simple personal website => html. what's haskell doing there?
21:26:24 <sm> step 1. be a nix user ?
21:26:41 <justsomeguy> Hmm, ok, scratch that idea.
21:27:06 <monochrom> But you can s/simple/Goldberg machine/
21:27:07 <sm> I'm making a simple personal website myself, with shake and pandoc
21:27:50 <sm> "simple"
21:27:51 <sm> right
21:28:16 <monochrom> You can do some of my assignments at http://www.cs.utoronto.ca/~trebla/CSCC24-2023-Summer/
21:28:39 × hololeap_ quits (~quassel@user/hololeap) (Quit: Bye)
21:28:55 hololeap joins (~quassel@user/hololeap)
21:29:12 <justsomeguy> Thanks for sharing. If I do I'll send you a link to my attempts, monochrom.
21:29:58 mango joins (~finn@2001:861:5863:3d50:38dd:bfcb:d7f1:6ae4)
21:30:31 <justsomeguy> Battery is running out. Thanks for the advice, everyone.
21:30:37 <sm> there are some complete guided haskell projects out there.. I think https://haskell-via-sokoban.nomeata.de is one
21:30:49 <sm> good luck
21:31:05 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
21:31:43 <sm> clash of code is also fun! hard at first but you start fresh every few minutes
21:39:49 acidjnk joins (~acidjnk@p200300d6e7072f7488c486b520f19958.dip0.t-ipconnect.de)
21:45:31 × fendor quits (~fendor@2a02:8388:1640:be00:1f28:32b1:54ac:a932) (Remote host closed the connection)
21:46:02 × forell quits (~forell@user/forell) (Ping timeout: 260 seconds)
21:46:47 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
21:51:19 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
21:54:12 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:59:57 wroathe joins (~wroathe@user/wroathe)
22:06:29 × lyxia quits (~lyxia@poisson.chat) (Quit: WeeChat 3.7)
22:07:05 × gurkenglas quits (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
22:07:18 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
22:08:23 × Guest8558 quits (~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 264 seconds)
22:13:01 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:14:44 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
22:16:21 × mango quits (~finn@2001:861:5863:3d50:38dd:bfcb:d7f1:6ae4) (Ping timeout: 260 seconds)
22:17:48 forell joins (~forell@user/forell)
22:18:10 × phma quits (~phma@2001:5b0:210f:78d8:de61:1bc2:fcbd:591a) (Read error: Connection reset by peer)
22:19:16 phma joins (phma@2001:5b0:211c:f748:3478:76f9:d3a9:cc0a)
22:22:52 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
22:24:32 × nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 245 seconds)
22:27:52 × acidjnk quits (~acidjnk@p200300d6e7072f7488c486b520f19958.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
22:29:36 × mei quits (~mei@user/mei) (Remote host closed the connection)
22:30:26 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:32:02 mei joins (~mei@user/mei)
22:35:56 <hololeap> I've got a broad question of how to parse a text file with a parser combinator library
22:36:40 <hololeap> say there are 3 types of lines, 1) header lines which have some obvious structure 2) relevant lines that we want to gather 3) irrelevant lines that we want to ignore
22:37:19 nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa)
22:37:24 <hololeap> when a header line is reached, it should scan the lines below it until it reaches another header line. of the lines scanned, it makes a list of the relevant lines and stores them in some data structure under the header
22:37:44 <hololeap> what's the best/most obvious way to structure a parser like this?
22:38:18 <jade[m]> that sounds fairly straightforward - how are header lines indicated?
22:38:41 <hololeap> let's just say that the header lines look like: - header
22:38:49 <hololeap> (that is a '-', a space, then a title)
22:39:11 <hololeap> relevant lines start with 'http'
22:41:16 <jade[m]> mhm, so you want a parser that uses many over another parser that first reads a header line and then accepts lines starting with http
22:41:35 × nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 246 seconds)
22:41:37 <jade[m]> what library are you using specifically?
22:41:55 <hololeap> megaparsec
22:42:22 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
22:44:16 <hololeap> I guess this kind of loosely translates into converting [Either HeaderName (Maybe URL)] to (Map HeaderName [URL])
22:45:45 <geekosaur> (anyone else feel an urge to write it in awk?)
22:45:47 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 245 seconds)
22:46:29 <hololeap> so it would have to store the HeaderName somewhere temporary and gather the URLs until a new HeaderName is reached, at which point it writes the previous mess to the Map
22:46:42 <hololeap> but I feel like that's a imperative way of thinking about it
22:46:53 <jade[m]> it is indeed
22:47:31 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
22:48:29 <jade[m]> with a parser combinator you would rather parse a list of headers paired with a list of lines (via a record for example) and then put those in a map using one of the smart constructors for a Map
22:48:57 <jade[m]> basically makeMap (many paragraph)
22:49:32 <jade[m]> eh, you'd probably fmap that, sorry
22:49:48 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
22:50:19 <hololeap> ok, even more absract: convert [Either a b] to [(a, [b])] so that each pair consists of an 'a' and a list of consecutive 'b's that follow it
22:50:31 gurkenglas joins (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de)
22:51:33 <hololeap> sorry, it seems like I start thinking about problems like these more clearly after I ask in irc :3
22:51:41 <ncf> what do you do if the list starts with Right?
22:52:02 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
22:52:02 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
22:52:02 dibblego joins (~dibblego@haskell/developer/dibblego)
22:52:09 <ncf> (answer: you raise a parse error. so this should happen in the parser)
22:52:27 <hololeap> I was going to say, ignore the entries until the first Left
22:55:57 × dibblego quits (~dibblego@haskell/developer/dibblego) (Excess Flood)
22:57:33 arahael_ joins (~arahael@115-64-199-191.tpgi.com.au)
22:58:44 × Xe quits (~cadey@tailscale/xe) (Ping timeout: 246 seconds)
23:04:20 × arahael_ quits (~arahael@115-64-199-191.tpgi.com.au) (Ping timeout: 246 seconds)
23:09:59 × forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in)
23:13:18 forell joins (~forell@user/forell)
23:17:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
23:17:34 × wroathe quits (~wroathe@user/wroathe) (Quit: Lost terminal)
23:19:10 wroathe joins (~wroathe@user/wroathe)
23:19:15 lyxia joins (~lyxia@poisson.chat)
23:21:31 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:22:09 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
23:24:05 × byte quits (~byte@user/byte) (Quit: Quitting...)
23:24:51 mauke_ joins (~mauke@user/mauke)
23:25:40 byte joins (~byte@user/byte)
23:26:28 × mauke quits (~mauke@user/mauke) (Ping timeout: 246 seconds)
23:26:28 mauke_ is now known as mauke
23:26:41 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
23:27:27 nick4 joins (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa)
23:29:16 × gurkenglas quits (~gurkengla@dynamic-046-114-089-015.46.114.pool.telefonica.de) (Ping timeout: 258 seconds)
23:30:01 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
23:31:51 bratwurst joins (~dfadsva@2604:3d09:207f:f650::c3b)
23:32:07 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
23:32:47 × nick4 quits (~nick@2600:8807:9084:7800:d53:c5f4:7789:80aa) (Ping timeout: 260 seconds)
23:38:02 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
23:43:09 arahael_ joins (~arahael@115-64-199-191.tpgi.com.au)
23:43:41 mvk joins (~mvk@2607:fea8:5c9a:a600::1c6d)
23:48:54 × arahael_ quits (~arahael@115-64-199-191.tpgi.com.au) (Ping timeout: 244 seconds)
23:57:09 Xe joins (~cadey@tailscale/xe)

All times are in UTC on 2023-07-28.