2021/08/23

2021-08-23 00:00:13 +0200 <_bin> Where is the best source to learn about using monads to store information in the environment? Stuff like global config variables, logging stuff, etc.?
2021-08-23 00:00:46 +0200adamflott(~adamflott@c-73-60-249-202.hsd1.ma.comcast.net) (Quit: Connection closed)
2021-08-23 00:01:31 +0200schuelermine(~anselmsch@user/schuelermine)
2021-08-23 00:03:10 +0200vysn(~vysn@user/vysn) (Ping timeout: 240 seconds)
2021-08-23 00:03:18 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-23 00:03:38 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-23 00:05:05 +0200 <maerwald> that sounds like you want a parameter to your functions
2021-08-23 00:05:17 +0200schuelermine(~anselmsch@user/schuelermine) (Client Quit)
2021-08-23 00:05:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-23 00:05:56 +0200 <_bin> If I'm supplying some logging stuff to most of my functions then that would get rather cumbersome.
2021-08-23 00:06:03 +0200 <_bin> Is there a better way to do such things?
2021-08-23 00:06:09 +0200 <maerwald> that's where ppl use Reader monad
2021-08-23 00:06:22 +0200 <maerwald> which is basically just hiding a function argument
2021-08-23 00:07:37 +0200 <_bin> That sounds helpful. What's the best resource to learn about using that for this purpose?
2021-08-23 00:07:45 +0200talismanick(~user@2601:644:8500:8350::e26b)
2021-08-23 00:08:13 +0200 <talismanick> Has anyone encoded smooth infinitesimal analysis in Haskell?
2021-08-23 00:08:23 +0200 <sm> you can do it in just IO too, if you're already in that
2021-08-23 00:08:58 +0200 <_bin> sm: How would I do that
2021-08-23 00:09:35 +0200 <talismanick> or, more generally, nilpotent infintesimals more "sophisticated" than dual numbers?
2021-08-23 00:10:03 +0200 <talismanick> Because I remember seeing those used to explain forward-mode automatic differentiation somewhere
2021-08-23 00:10:39 +0200 <talismanick> Although I don't remember if it was with Haskell (I might be confusing it with the "geometric algebra in Haskell" blogpost)
2021-08-23 00:12:57 +0200 <sm> _bin: https://hackage.haskell.org/package/io-storage is one way. More generally there's https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-Reader.html
2021-08-23 00:15:54 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-08-23 00:16:24 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 00:20:14 +0200hseg(~gesh@IGLD-84-228-238-79.inter.net.il) (Quit: WeeChat 3.2)
2021-08-23 00:20:49 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 248 seconds)
2021-08-23 00:21:34 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 250 seconds)
2021-08-23 00:25:07 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 00:25:37 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-08-23 00:27:50 +0200hendursaga(~weechat@user/hendursaga)
2021-08-23 00:27:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fc6b:7277:c769:1dab) (Remote host closed the connection)
2021-08-23 00:32:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 00:33:53 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 244 seconds)
2021-08-23 00:34:21 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2021-08-23 00:38:19 +0200cjb(~cjb@user/cjb)
2021-08-23 00:42:06 +0200lotuseater(~user@p200300e7871bf00038fb8d6cf7d8260d.dip0.t-ipconnect.de)
2021-08-23 00:43:40 +0200acidjnk(~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-23 00:46:48 +0200 <koz> Can someone suggest a good infix ASCII approximation to the radix symbol?
2021-08-23 00:46:54 +0200 <koz> (like, the square root symbol)
2021-08-23 00:55:09 +0200 <lotuseater> in APL this can be performed with the operator (*รท) :)
2021-08-23 00:55:36 +0200 <hpc> (-/) perhaps
2021-08-23 00:56:02 +0200 <hpc> @let b -/ n = n ** (1/b)
2021-08-23 00:56:03 +0200 <lambdabot> Defined.
2021-08-23 00:56:05 +0200 <hpc> 3 -/ 8
2021-08-23 00:56:09 +0200 <hpc> > 3 -/ 8
2021-08-23 00:56:11 +0200 <lambdabot> 2.0
2021-08-23 00:57:08 +0200 <koz> -/ is pretty good actually, thanks hpc!
2021-08-23 00:57:18 +0200 <koz> You are both intelligent and unusually attractive.
2021-08-23 00:57:45 +0200 <hpc> lol
2021-08-23 00:57:52 +0200acidjnk(~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de)
2021-08-23 00:59:16 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fc6b:7277:c769:1dab)
2021-08-23 01:00:16 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 01:01:34 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 01:02:06 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 01:02:56 +0200Guest554(~chris@81.96.113.213) (Remote host closed the connection)
2021-08-23 01:04:39 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 01:06:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 01:07:46 +0200chris(~chris@81.96.113.213)
2021-08-23 01:07:50 +0200chrisGuest7041
2021-08-23 01:09:19 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-08-23 01:10:06 +0200acidjnk(~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-23 01:11:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:fc6b:7277:c769:1dab) (Remote host closed the connection)
2021-08-23 01:11:50 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-08-23 01:12:10 +0200Guest7041(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2021-08-23 01:12:16 +0200slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 250 seconds)
2021-08-23 01:12:16 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-08-23 01:15:24 +0200chris(~chris@81.96.113.213)
2021-08-23 01:15:29 +0200chrisGuest8337
2021-08-23 01:18:45 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-23 01:19:38 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
2021-08-23 01:24:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-08-23 01:28:20 +0200V(~v@anomalous.eu) (Ping timeout: 256 seconds)
2021-08-23 01:29:37 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 248 seconds)
2021-08-23 01:33:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654)
2021-08-23 01:35:40 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Ping timeout: 250 seconds)
2021-08-23 01:36:08 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 01:37:51 +0200 <koz> hpc: What would be a good fixity for (-/)?
2021-08-23 01:38:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 240 seconds)
2021-08-23 01:39:48 +0200 <hpc> hmm
2021-08-23 01:41:16 +0200euouae(~euouae@user/euouae)
2021-08-23 01:41:55 +0200Topsi(~Tobias@dyndsl-095-033-019-235.ewe-ip-backbone.de)
2021-08-23 01:41:56 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-08-23 01:42:32 +0200 <hpc> (a -/ b -/ c) is definitely (a -/ (b -/ c)) imo
2021-08-23 01:42:49 +0200 <koz> So that's... infixr?
2021-08-23 01:43:20 +0200euouae(~euouae@user/euouae) ()
2021-08-23 01:43:53 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-08-23 01:44:18 +0200 <hpc> it's tempting to make it the same as (**)
2021-08-23 01:44:30 +0200 <koz> That would make sense.
2021-08-23 01:44:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 01:44:43 +0200 <hpc> infixr 8 **
2021-08-23 01:44:47 +0200 <hpc> so maybe that?
2021-08-23 01:44:59 +0200dajoer(~david@user/gvx)
2021-08-23 01:45:00 +0200 <koz> Yeah, seems like a reasonable choice.
2021-08-23 01:45:01 +0200 <koz> Thanks!
2021-08-23 01:51:38 +0200machinedgod(~machinedg@24.105.81.50)
2021-08-23 01:54:25 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-08-23 01:56:02 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-08-23 01:56:28 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-08-23 02:00:16 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:01:34 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 02:02:06 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:02:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 02:05:03 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 02:05:16 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:06:34 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 02:07:06 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:11:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 02:16:00 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:26:27 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 02:27:04 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:28:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 02:28:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 02:28:08 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 02:31:10 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 02:32:52 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-08-23 02:33:01 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
2021-08-23 02:33:27 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 02:34:01 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-08-23 02:35:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 02:35:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 02:35:07 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 02:36:00 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-23 02:36:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-23 02:37:21 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
2021-08-23 02:39:00 +0200thornAvery(~thorn@137.147.64.16)
2021-08-23 02:39:20 +0200 <thornAvery> whats the best way to get a version number for a --version flag+
2021-08-23 02:41:03 +0200 <Axma47030> In the past I have used https://hackage.haskell.org/package/configuration-tools which provides a few really nice things by default - version of the app and all its libraries and their licences
2021-08-23 02:41:19 +0200 <Axma47030> licenses*
2021-08-23 02:41:27 +0200Axma47030Axman6
2021-08-23 02:41:32 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds)
2021-08-23 02:42:50 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-23 02:43:08 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-23 02:48:33 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 248 seconds)
2021-08-23 02:56:36 +0200ikex1(ash@user/ikex)
2021-08-23 02:57:07 +0200ikex(~ash@user/ikex) (Ping timeout: 245 seconds)
2021-08-23 02:57:22 +0200ikex1ikex
2021-08-23 02:58:08 +0200meinside_(uid24933@id-24933.brockwell.irccloud.com)
2021-08-23 02:58:33 +0200 <thornAvery> Axman6: thanks ill have a look at it
2021-08-23 03:11:19 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-08-23 03:12:25 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-08-23 03:16:12 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 03:16:14 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-23 03:16:14 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-23 03:16:17 +0200allbery_bgeekosaur
2021-08-23 03:17:35 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 03:18:22 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 03:21:15 +0200abrantesasf(~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f) (Quit: Leaving)
2021-08-23 03:22:46 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 258 seconds)
2021-08-23 03:25:49 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-23 03:29:09 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-23 03:32:57 +0200Kaiepi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-08-23 03:33:06 +0200Kaiepi(~Kaiepi@156.34.44.192)
2021-08-23 03:35:00 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654)
2021-08-23 03:37:08 +0200kimjetwav(~user@2607:fea8:235f:9730:b47e:9266:a80c:4549)
2021-08-23 03:39:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 250 seconds)
2021-08-23 03:43:40 +0200xff0x(~xff0x@2001:1a81:52ba:f800:f347:6f1f:6209:b9ad) (Ping timeout: 240 seconds)
2021-08-23 03:45:41 +0200xff0x(~xff0x@2001:1a81:52f9:3300:ba09:60b5:ba3:60da)
2021-08-23 03:48:05 +0200Kaiepi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-08-23 03:48:12 +0200Kaipi(~Kaiepi@156.34.44.192)
2021-08-23 03:49:24 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654)
2021-08-23 03:51:51 +0200Kaipi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-08-23 03:51:54 +0200Merfont(~Kaiepi@156.34.44.192)
2021-08-23 03:54:29 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 03:54:49 +0200cjb(~cjb@user/cjb) (Ping timeout: 256 seconds)
2021-08-23 03:56:56 +0200Merfont(~Kaiepi@156.34.44.192) (Ping timeout: 250 seconds)
2021-08-23 03:58:33 +0200Kaiepi(~Kaiepi@156.34.44.192)
2021-08-23 04:03:00 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds)
2021-08-23 04:08:41 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-08-23 04:12:15 +0200Kaipi(~Kaiepi@156.34.44.192)
2021-08-23 04:12:20 +0200Kaiepi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-08-23 04:13:34 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-08-23 04:14:40 +0200 <glguy> thornAvery, This is what I do to get my version information: https://github.com/glguy/irc-core/blob/v2/src/Client/Options.hs#L135-L176
2021-08-23 04:15:53 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 04:18:27 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-08-23 04:18:27 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (cadmium.libera.chat (Nickname regained by services)))
2021-08-23 04:18:27 +0200finn_elijaFinnElija
2021-08-23 04:19:46 +0200cjb(~cjb@user/cjb)
2021-08-23 04:25:40 +0200ikex(ash@user/ikex) (Ping timeout: 252 seconds)
2021-08-23 04:25:46 +0200ikex1(~ash@user/ikex)
2021-08-23 04:26:26 +0200ikex1ikex
2021-08-23 04:33:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 04:38:19 +0200td_(~td@muedsl-82-207-238-124.citykom.de) (Ping timeout: 252 seconds)
2021-08-23 04:40:05 +0200td_(~td@94.134.91.226)
2021-08-23 04:43:32 +0200alx741(~alx741@181.196.68.94) (Quit: alx741)
2021-08-23 04:45:15 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 04:46:34 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 04:47:33 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 04:48:13 +0200Kaipi(~Kaiepi@156.34.44.192) (Remote host closed the connection)
2021-08-23 04:50:02 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-08-23 04:51:58 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 250 seconds)
2021-08-23 04:52:24 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
2021-08-23 04:56:51 +0200[_](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-08-23 04:57:33 +0200neo(~neo3@cpe-292712.ip.primehome.com) (Quit: Leaving)
2021-08-23 05:00:15 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 05:01:04 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Remote host closed the connection)
2021-08-23 05:02:03 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 05:06:10 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 05:07:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-23 05:14:19 +0200travv0(sid293381@user/travv0) ()
2021-08-23 05:19:16 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-23 05:22:03 +0200ham(~ham4@user/ham) (Ping timeout: 276 seconds)
2021-08-23 05:22:44 +0200otto_s(~user@p4ff27b55.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-23 05:24:35 +0200otto_s(~user@p4ff270c5.dip0.t-ipconnect.de)
2021-08-23 05:34:07 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84)
2021-08-23 05:36:11 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 05:39:38 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 250 seconds)
2021-08-23 05:41:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:2d0e:8bc:c41d:5a84) (Ping timeout: 240 seconds)
2021-08-23 06:01:58 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-08-23 06:07:21 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-08-23 06:17:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 06:19:44 +0200dschrempf(~dominik@2a01-036d-0118-46d4-79db-0a5e-b5da-2db0.pool6.digikabel.hu)
2021-08-23 06:21:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-08-23 06:25:54 +0200 <sm> glguy, is that using https://hackage.haskell.org/package/githash ?
2021-08-23 06:26:20 +0200 <glguy> glirc --full-version | grep git
2021-08-23 06:26:20 +0200 <glguy> gitrev-1.3.1
2021-08-23 06:26:33 +0200 <sm> ah
2021-08-23 06:26:59 +0200 <sm> I think githash is just newer version of that
2021-08-23 06:27:09 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686)
2021-08-23 06:27:42 +0200Topsi(~Tobias@dyndsl-095-033-019-235.ewe-ip-backbone.de) (Quit: Leaving.)
2021-08-23 06:27:52 +0200 <glguy> oh, maybe I need to update
2021-08-23 06:27:57 +0200lotuseater(~user@p200300e7871bf00038fb8d6cf7d8260d.dip0.t-ipconnect.de) (ERC (IRC client for Emacs 27.2))
2021-08-23 06:30:24 +0200safe(~safe@cpe-74-64-165-24.nj.res.rr.com)
2021-08-23 06:31:25 +0200 <sm> Axma47030: does that package let you print the version of all deps the program was built with ?
2021-08-23 06:35:10 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Ping timeout: 240 seconds)
2021-08-23 06:35:44 +0200vysn(~vysn@user/vysn)
2021-08-23 06:36:16 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-08-23 06:42:28 +0200dschrempf(~dominik@2a01-036d-0118-46d4-79db-0a5e-b5da-2db0.pool6.digikabel.hu) (Ping timeout: 250 seconds)
2021-08-23 06:44:37 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu)
2021-08-23 06:45:27 +0200LambdaDu1k(~anka@ksit.fixme.fi)
2021-08-23 06:45:28 +0200Hecate_(~mariposa@163.172.211.189)
2021-08-23 06:45:29 +0200alinab_(sid468903@id-468903.brockwell.irccloud.com)
2021-08-23 06:45:30 +0200peutri_(~peutri@ns317027.ip-94-23-46.eu)
2021-08-23 06:45:37 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split)
2021-08-23 06:45:37 +0200m4lvin_(~m4lvin@w4eg.de) (*.net *.split)
2021-08-23 06:45:37 +0200codedmart(codedmart@2600:3c01::f03c:92ff:fefe:8511) (*.net *.split)
2021-08-23 06:45:37 +0200a1paca_(~a1paca@user/a1paca) (*.net *.split)
2021-08-23 06:45:37 +0200nerdypepper(~nerdypepp@user/nerdypepper) (*.net *.split)
2021-08-23 06:45:37 +0200ouroboros(~ouroboros@user/ouroboros) (*.net *.split)
2021-08-23 06:45:37 +0200glider(~glider@user/glider) (*.net *.split)
2021-08-23 06:45:37 +0200tolt(~weechat-h@li219-154.members.linode.com) (*.net *.split)
2021-08-23 06:45:37 +0200orzo(joe@lasker.childrenofmay.org) (*.net *.split)
2021-08-23 06:45:37 +0200damien3(~damien@248.ip-149-56-13.net) (*.net *.split)
2021-08-23 06:45:37 +0200LambdaDuck(~anka@ksit.fixme.fi) (*.net *.split)
2021-08-23 06:45:37 +0200choucavalier(~choucaval@user/choucavalier) (*.net *.split)
2021-08-23 06:45:37 +0200wrunt(~ajc@vmx14030.hosting24.com.au) (*.net *.split)
2021-08-23 06:45:37 +0200yahb(xsbot@user/mniip/bot/yahb) (*.net *.split)
2021-08-23 06:45:37 +0200peutri(~peutri@ns317027.ip-94-23-46.eu) (*.net *.split)
2021-08-23 06:45:37 +0200Hecate(~mariposa@user/hecate) (*.net *.split)
2021-08-23 06:45:37 +0200alinab(sid468903@id-468903.brockwell.irccloud.com) (*.net *.split)
2021-08-23 06:45:37 +0200defanor(~defanor@tart.uberspace.net) (*.net *.split)
2021-08-23 06:45:37 +0200defanor_(~defanor@tart.uberspace.net)
2021-08-23 06:45:38 +0200orzo_(joe@lasker.childrenofmay.org)
2021-08-23 06:45:38 +0200codedmart_(codedmart@2600:3c01::f03c:92ff:fefe:8511)
2021-08-23 06:45:38 +0200alinab_alinab
2021-08-23 06:45:43 +0200m4lvin(~m4lvin@w4eg.de)
2021-08-23 06:45:44 +0200choucavalier_(~choucaval@peanutbuttervibes.com)
2021-08-23 06:45:44 +0200damien3(~damien@248.ip-149-56-13.net)
2021-08-23 06:45:45 +0200glider_(~glider@user/glider)
2021-08-23 06:45:47 +0200wrunt(~ajc@vmx14030.hosting24.com.au)
2021-08-23 06:45:48 +0200nshepper1(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2021-08-23 06:45:50 +0200uroboros(~ouroboros@user/ouroboros)
2021-08-23 06:46:14 +0200uroborosouroboros
2021-08-23 06:46:27 +0200aegon(~mike@174.127.249.180)
2021-08-23 06:46:37 +0200yahb(xsbot@user/mniip/bot/yahb)
2021-08-23 06:46:40 +0200a1paca(~a1paca@user/a1paca)
2021-08-23 06:47:04 +0200tolt(~weechat-h@li219-154.members.linode.com)
2021-08-23 06:47:43 +0200nerdypepper(~nerdypepp@user/nerdypepper)
2021-08-23 06:48:50 +0200lechner(~lechner@debian/lechner) (*.net *.split)
2021-08-23 06:48:50 +0200awth13(~awth13@user/awth13) (*.net *.split)
2021-08-23 06:48:50 +0200dminuoso(~dminuoso@user/dminuoso) (*.net *.split)
2021-08-23 06:48:50 +0200frobnicator(~frobnicat@185-227-75-147.dsl.cambrium.nl) (*.net *.split)
2021-08-23 06:48:50 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu) (*.net *.split)
2021-08-23 06:48:50 +0200Techcable_(~Techcable@168.235.93.147) (*.net *.split)
2021-08-23 06:48:50 +0200polux(~polux@51.15.169.172) (*.net *.split)
2021-08-23 06:48:50 +0200mniip(mniip@libera/staff/mniip) (*.net *.split)
2021-08-23 06:48:50 +0200koala_man(~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split)
2021-08-23 06:48:50 +0200ent(entgod@kapsi.fi) (*.net *.split)
2021-08-23 06:48:50 +0200megaTherion(~therion@unix.io) (*.net *.split)
2021-08-23 06:48:50 +0200Sqaure(~a@178.62.91.8) (*.net *.split)
2021-08-23 06:48:50 +0200arkeet(arkeet@moriya.ca) (*.net *.split)
2021-08-23 06:48:50 +0200laman(laman@2600:3c02::f03c:92ff:fe3e:c08d) (*.net *.split)
2021-08-23 06:48:50 +0200mrus(~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae) (*.net *.split)
2021-08-23 06:48:50 +0200bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org) (*.net *.split)
2021-08-23 06:48:50 +0200mstruebing(~maex@2001:41d0:8:93c7::1) (*.net *.split)
2021-08-23 06:48:50 +0200meridion(~meridion@punt.hetgrotebos.org) (*.net *.split)
2021-08-23 06:48:50 +0200drewolson(~drewolson@user/drewolson) (*.net *.split)
2021-08-23 06:48:50 +0200meejah(~meejah@rutas.meejah.ca) (*.net *.split)
2021-08-23 06:48:50 +0200enikar(~enikar@user/enikar) (*.net *.split)
2021-08-23 06:48:50 +0200Dykam(Dykam@dykam.nl) (*.net *.split)
2021-08-23 06:48:54 +0200panda_man(~vidar@157.146.251.23.bc.googleusercontent.com)
2021-08-23 06:48:54 +0200meridion_(~meridion@punt.hetgrotebos.org)
2021-08-23 06:48:55 +0200ent-(entgod@kapsi.fi)
2021-08-23 06:48:58 +0200arkeet`(arkeet@moriya.ca)
2021-08-23 06:49:00 +0200meejah_(~meejah@rutas.meejah.ca)
2021-08-23 06:49:02 +0200mniip(mniip@libera/staff/mniip)
2021-08-23 06:49:03 +0200drewolson1(~drewolson@user/drewolson)
2021-08-23 06:49:04 +0200mstruebing(~maex@2001:41d0:8:93c7::1)
2021-08-23 06:49:18 +0200Eoco(~ian@x-160-94-179-157.acm.umn.edu)
2021-08-23 06:49:18 +0200laman(laman@2600:3c02::f03c:92ff:fe3e:c08d)
2021-08-23 06:49:19 +0200bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org)
2021-08-23 06:49:22 +0200arkeet`arkeet
2021-08-23 06:49:23 +0200frobnicator(~frobnicat@185-227-75-147.dsl.cambrium.nl)
2021-08-23 06:49:25 +0200polux(~polux@51.15.169.172)
2021-08-23 06:49:25 +0200lechner(~lechner@letbox-vps.us-core.com)
2021-08-23 06:49:36 +0200Dykam(Dykam@dykam.nl)
2021-08-23 06:49:36 +0200lechner(~lechner@letbox-vps.us-core.com) (Changing host)
2021-08-23 06:49:36 +0200lechner(~lechner@debian/lechner)
2021-08-23 06:49:43 +0200mrus(~mrus@2001:19f0:5:1535:5400:3ff:fe7d:10ae)
2021-08-23 06:49:47 +0200Techcable(~Techcable@168.235.93.147)
2021-08-23 06:50:07 +0200awth13(~awth13@user/awth13)
2021-08-23 06:50:17 +0200enikar(~enikar@user/enikar)
2021-08-23 06:50:47 +0200nshepper1nshepperd
2021-08-23 06:50:59 +0200 <aegon> when using things like --dump-simpl or profiling with haskell stack, where should i be looking for the core files?
2021-08-23 06:51:04 +0200dminuoso(~dminuoso@user/dminuoso)
2021-08-23 06:52:51 +0200Square(~a@178.62.91.8)
2021-08-23 07:06:53 +0200xsperry(~as@user/xsperry) ()
2021-08-23 07:09:42 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-08-23 07:09:44 +0200 <fresheyeball> ok, so I have a quandry
2021-08-23 07:09:51 +0200 <fresheyeball> and it's going deeper than I would like
2021-08-23 07:09:59 +0200 <fresheyeball> but, what is the right way to code a login form?
2021-08-23 07:10:11 +0200 <fresheyeball> the server should set cookies I believe
2021-08-23 07:10:21 +0200 <fresheyeball> but that means a redirect on each form submission
2021-08-23 07:10:26 +0200 <fresheyeball> which is bad ux
2021-08-23 07:10:38 +0200 <fresheyeball> So far the best I can think of is to have 2 login endpoints
2021-08-23 07:10:53 +0200 <fresheyeball> one the checks creds and can give an error via AJAX
2021-08-23 07:11:08 +0200 <fresheyeball> and the other that actually sets cookies, via redirect after the first endpoint approves
2021-08-23 07:11:38 +0200mei(~mei@user/mei)
2021-08-23 07:11:55 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Client Quit)
2021-08-23 07:12:35 +0200keutoi(~keutoi@157.48.197.78)
2021-08-23 07:15:06 +0200cjb(~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50)
2021-08-23 07:22:26 +0200ham(~ham4@user/ham)
2021-08-23 07:25:22 +0200stefan-_(~cri@42dots.de) (Ping timeout: 250 seconds)
2021-08-23 07:30:10 +0200stefan-_(~cri@42dots.de)
2021-08-23 07:37:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686)
2021-08-23 07:42:40 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Ping timeout: 240 seconds)
2021-08-23 07:45:40 +0200xff0x(~xff0x@2001:1a81:52f9:3300:ba09:60b5:ba3:60da) (Ping timeout: 240 seconds)
2021-08-23 07:46:43 +0200xff0x(~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13)
2021-08-23 07:51:28 +0200defanor_defanor
2021-08-23 07:52:11 +0200 <edwardk> dumb q: as someone just now tuning into how icfp is running this year, uh, where are the chat rooms and the like that there have been in years past? did they do away with them entirely?
2021-08-23 07:57:06 +0200PinealGlandOptic(~PinealGla@37.115.210.35)
2021-08-23 08:00:21 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686)
2021-08-23 08:00:52 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:6dae:281c:ef98:c686) (Client Quit)
2021-08-23 08:00:59 +0200reumeth(~reumeth@user/reumeth)
2021-08-23 08:01:58 +0200PinealGlandOptic(~PinealGla@37.115.210.35) ()
2021-08-23 08:05:28 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-08-23 08:05:38 +0200dsrt^(~dsrt@12.16.129.111)
2021-08-23 08:06:43 +0200xsperry(~as@user/xsperry)
2021-08-23 08:09:44 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56)
2021-08-23 08:11:54 +0200mnrmnaugh(~mnrmnaugh@68.162.206.56) (Client Quit)
2021-08-23 08:15:38 +0200Vajb(~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
2021-08-23 08:15:57 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-08-23 08:16:40 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds)
2021-08-23 08:17:32 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 08:22:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-23 08:24:13 +0200sagax(~sagax@213.138.71.146) (Remote host closed the connection)
2021-08-23 08:25:24 +0200timCF(~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving)
2021-08-23 08:27:09 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-08-23 08:30:22 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 250 seconds)
2021-08-23 08:30:35 +0200favonia(~favonia@user/favonia) (Ping timeout: 258 seconds)
2021-08-23 08:35:23 +0200 <Axman6> sm: I thhink so, but I don't remember - pretty sure it prints versions along with the license
2021-08-23 08:35:49 +0200fef(~thedawn@user/thedawn)
2021-08-23 08:45:44 +0200aegon(~mike@174.127.249.180) (Quit: leaving)
2021-08-23 08:50:44 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-08-23 08:51:10 +0200Hecate_Hecate
2021-08-23 08:51:12 +0200Hecate(~mariposa@163.172.211.189) (Changing host)
2021-08-23 08:51:12 +0200Hecate(~mariposa@user/hecate)
2021-08-23 08:54:45 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu)
2021-08-23 08:55:56 +0200Sgeo(~Sgeo@user/sgeo) (Ping timeout: 268 seconds)
2021-08-23 08:57:52 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-08-23 09:02:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-23 09:02:40 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 240 seconds)
2021-08-23 09:04:57 +0200cfricke(~cfricke@user/cfricke)
2021-08-23 09:05:17 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-08-23 09:08:35 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-23 09:08:36 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-08-23 09:08:56 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-08-23 09:09:03 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
2021-08-23 09:10:23 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-08-23 09:11:53 +0200fendor(~fendor@91.141.64.241.wireless.dyn.drei.com)
2021-08-23 09:12:40 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2021-08-23 09:13:39 +0200bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org) (Quit: WeeChat 3.2)
2021-08-23 09:13:48 +0200bastelfreak(~bastelfre@basteles-bastelknecht.bastelfreak.org)
2021-08-23 09:16:19 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-08-23 09:24:39 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-23 09:25:28 +0200safe(~safe@cpe-74-64-165-24.nj.res.rr.com) (Quit: Leaving)
2021-08-23 09:28:13 +0200gehmehgeh(~user@user/gehmehgeh)
2021-08-23 09:31:13 +0200kuribas(~user@ptr-25vy0iajat4u154jc6g.18120a2.ip6.access.telenet.be)
2021-08-23 09:31:38 +0200acidjnk(~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de)
2021-08-23 09:32:49 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-08-23 09:33:37 +0200fef(~thedawn@user/thedawn)
2021-08-23 09:34:34 +0200megaTherion(~therion@unix.io)
2021-08-23 09:39:59 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-08-23 09:40:05 +0200fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-08-23 09:43:36 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-08-23 09:44:52 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-23 09:45:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 09:47:06 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-08-23 09:51:46 +0200sagax(~sagax@213.138.71.146)
2021-08-23 09:52:25 +0200ubert(~Thunderbi@178.165.179.240.wireless.dyn.drei.com)
2021-08-23 09:54:01 +0200d0ku(~d0ku@178.43.19.40.ipv4.supernova.orange.pl)
2021-08-23 09:56:41 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-23 09:57:23 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 09:57:41 +0200 <kuribas> I removed more type families from my mysql library. Now only one type family left.
2021-08-23 09:58:03 +0200 <kuribas> Not much fancy haskell left now. Unless you count light usage of DataKinds as phantom types...
2021-08-23 09:58:24 +0200 <kuribas> And generics...
2021-08-23 09:59:28 +0200 <Hecate> kuribas: hurray for improved compilation times :D
2021-08-23 09:59:44 +0200 <kuribas> Hecate: oh, and template haskell :)
2021-08-23 09:59:48 +0200 <kuribas> but it's optional.
2021-08-23 10:01:11 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2021-08-23 10:02:14 +0200mc47(~mc47@xmonad/TheMC47)
2021-08-23 10:03:40 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 240 seconds)
2021-08-23 10:03:48 +0200 <Hecate> kuribas: you should make a companion library with -th if you really have that many optional features implemented in TH :)
2021-08-23 10:03:57 +0200 <Hecate> helps with portability as well
2021-08-23 10:04:04 +0200 <kuribas> why?
2021-08-23 10:04:08 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 10:04:15 +0200 <kuribas> you don't need to use it...
2021-08-23 10:05:46 +0200jgeerds(~jgeerds@55d4b311.access.ecotel.net)
2021-08-23 10:05:46 +0200hendursa1(~weechat@user/hendursaga)
2021-08-23 10:07:32 +0200 <kuribas> If you are using the typed layer, the TH is very recommended...
2021-08-23 10:07:54 +0200 <kuribas> I could however split the package into hasqlator-mysql and hasqlator-typed-mysql...
2021-08-23 10:08:56 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-08-23 10:11:11 +0200__monty__(~toonn@user/toonn)
2021-08-23 10:12:05 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-08-23 10:12:33 +0200oxide(~lambda@user/oxide)
2021-08-23 10:14:04 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 10:17:39 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-08-23 10:17:39 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-08-23 10:17:42 +0200allbery_bgeekosaur
2021-08-23 10:18:58 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-08-23 10:21:55 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-23 10:24:16 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-08-23 10:24:28 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu)
2021-08-23 10:33:26 +0200cpape``(~user@2a01:4f9:c010:632d::1) (Quit: ERC (IRC client for Emacs 25.2.2))
2021-08-23 10:33:48 +0200cpape(~user@2a01:4f9:c010:632d::1)
2021-08-23 10:34:27 +0200 <merijn> !!!
2021-08-23 10:34:37 +0200 <merijn> Breaking news that dramatically improves my life further!
2021-08-23 10:34:45 +0200 <merijn> SQLite now supports strong typing!
2021-08-23 10:34:48 +0200 <merijn> \o/
2021-08-23 10:35:25 +0200 <dminuoso> merijn: Source?
2021-08-23 10:36:43 +0200 <merijn> dminuoso: https://www.sqlite.org/draft/stricttables.html
2021-08-23 10:37:19 +0200 <dminuoso> Neat. :)
2021-08-23 10:37:30 +0200 <merijn> Now I can shill SQLite *even harder*
2021-08-23 10:41:41 +0200notzmv(~zmv@user/notzmv)
2021-08-23 10:45:13 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Remote host closed the connection)
2021-08-23 10:46:05 +0200 <Rembane_> Sweet!
2021-08-23 10:46:17 +0200 <Rembane_> SQLite be like: *flex!*
2021-08-23 10:47:34 +0200lavaman(~lavaman@98.38.249.169) (Read error: Connection reset by peer)
2021-08-23 10:47:34 +0200awschnap(~lavaman@98.38.249.169)
2021-08-23 10:48:05 +0200gustik(~gustik@2a01:c844:2410:9020:63ab:4bb6:83d2:e11b) (Quit: Leaving)
2021-08-23 10:50:36 +0200 <wz1000> merijn: which version will this show up in?
2021-08-23 10:52:09 +0200 <tdammers> "As far as we know, SQLite is the only SQL database engine that supports this advanced capability."
2021-08-23 10:52:12 +0200 <tdammers> talk about flexing
2021-08-23 10:58:31 +0200Gurkenglas(~Gurkengla@dslb-088-064-053-140.088.064.pools.vodafone-ip.de)
2021-08-23 10:59:18 +0200 <merijn> wz1000: Planned for 3.37
2021-08-23 10:59:21 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-08-23 10:59:36 +0200meridion_meridion
2021-08-23 11:02:57 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
2021-08-23 11:05:36 +0200amirouche(~amirouche@user/amirouche) (Quit: WeeChat 2.8)
2021-08-23 11:05:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654)
2021-08-23 11:05:48 +0200amirouche(~amirouche@user/amirouche)
2021-08-23 11:10:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:6515:9257:f76:9654) (Ping timeout: 240 seconds)
2021-08-23 11:12:03 +0200amirouchebabelbot
2021-08-23 11:13:37 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds)
2021-08-23 11:13:54 +0200azeem(~azeem@176.201.15.223)
2021-08-23 11:14:23 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-23 11:16:05 +0200babelbotamirouche
2021-08-23 11:18:39 +0200 <merijn> On an entirely different topic, given a (simple, if that helps) numerical function of N inputs. Which algorithms/techniques do I want to find the inputs with maximum output?
2021-08-23 11:19:16 +0200amk(~amk@109.255.169.126) (Ping timeout: 252 seconds)
2021-08-23 11:21:26 +0200 <kuribas> merijn: multivariate optimization algorithm?
2021-08-23 11:22:50 +0200 <kuribas> oh neat, I can use recordWildCards with other assignments :)
2021-08-23 11:23:11 +0200 <kuribas> this works: Foo { foo = foo + 1, bar = bar <> "bar", ..}
2021-08-23 11:23:16 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 11:23:30 +0200 <merijn> kuribas: Yes, but machine learning feels overkill the equations I'm dealing with
2021-08-23 11:23:43 +0200 <kuribas> merijn: I wasn't talking about machine learning :)
2021-08-23 11:24:06 +0200 <merijn> kuribas: Most results for multivariate optimisation return a billion ML things :p
2021-08-23 11:24:17 +0200 <Rembane_> merijn: Is N big enough that a maximum [arg_1, ... arg_N] isn't feasible?
2021-08-23 11:24:24 +0200 <kuribas> https://hackage.haskell.org/package/hmatrix-0.15.2.0/docs/Numeric-GSL-Minimization.html
2021-08-23 11:24:32 +0200 <kuribas> merijn: because it's the same problem?
2021-08-23 11:25:11 +0200 <merijn> Rembane_: number of values isn't super big, but the values are continuous
2021-08-23 11:26:25 +0200amk(~amk@109.255.169.126)
2021-08-23 11:26:29 +0200 <merijn> kuribas: Incidentally, that doesn't appear to be in recent hmatrix releases anymore
2021-08-23 11:27:11 +0200 <merijn> But I guess I want hmatrix-gsl
2021-08-23 11:27:50 +0200 <Rembane_> merijn: Oh, okay.
2021-08-23 11:28:20 +0200 <dminuoso> tdammers: My software also has this advanced capability of putting out smileys if you ask it nicely enough.
2021-08-23 11:28:25 +0200 <dminuoso> It's the only known software that does this.
2021-08-23 11:28:36 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 11:29:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b41a:667a:d6f9:5ad8)
2021-08-23 11:30:36 +0200 <merijn> dminuoso: I've seen lots of software do that :p
2021-08-23 11:30:39 +0200daeng(~daeng@2401:3c00:18e:e603:bec7:e31f:ee15:3296)
2021-08-23 11:30:56 +0200 <merijn> Hell, entire Discord bots seem to function by smiley reactions to messages, so... :p
2021-08-23 11:31:01 +0200 <dminuoso> But one does it as well as mine does.
2021-08-23 11:31:05 +0200 <dminuoso> none, even.
2021-08-23 11:32:38 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 244 seconds)
2021-08-23 11:33:10 +0200jippiedoe(~david@2a02-a44c-e14e-1-bfe4-3f38-b8a5-8c39.fixed6.kpn.net)
2021-08-23 11:33:24 +0200 <int-e> @botsnack
2021-08-23 11:33:24 +0200 <lambdabot> :)
2021-08-23 11:33:25 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-08-23 11:34:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:b41a:667a:d6f9:5ad8) (Ping timeout: 250 seconds)
2021-08-23 11:34:22 +0200 <int-e> merijn: see, it's just continuing a trend started on #haskell ;-)
2021-08-23 11:35:04 +0200awschnap(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-23 11:43:18 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-08-23 11:44:04 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 250 seconds)
2021-08-23 11:49:08 +0200azeem(~azeem@176.201.15.223)
2021-08-23 11:50:09 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2021-08-23 11:58:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3051:894e:a7f0:13fc)
2021-08-23 11:59:55 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 12:00:07 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 240 seconds)
2021-08-23 12:02:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:3051:894e:a7f0:13fc) (Ping timeout: 240 seconds)
2021-08-23 12:03:42 +0200rosariopulella[m(~rosariopu@2001:470:69fc:105::a57)
2021-08-23 12:04:10 +0200eggplant_(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 240 seconds)
2021-08-23 12:05:37 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 12:05:53 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 12:06:25 +0200azeem(~azeem@176.201.15.223)
2021-08-23 12:06:48 +0200keutoi_(~keutoi@106.208.52.176)
2021-08-23 12:07:21 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 12:07:33 +0200keutoi(~keutoi@157.48.197.78) (Ping timeout: 258 seconds)
2021-08-23 12:07:57 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-23 12:08:10 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 12:08:17 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-08-23 12:13:10 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 240 seconds)
2021-08-23 12:13:26 +0200azeem(~azeem@176.201.15.223)
2021-08-23 12:16:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
2021-08-23 12:16:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 12:21:46 +0200LambdaDu1k(~anka@ksit.fixme.fi) (Ping timeout: 250 seconds)
2021-08-23 12:22:05 +0200LambdaDuck(~anka@ksit.fixme.fi)
2021-08-23 12:22:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-23 12:22:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 12:22:50 +0200opqdonut(opqdonut@pseudo.fixme.fi) (Ping timeout: 256 seconds)
2021-08-23 12:22:57 +0200opqdonut(opqdonut@pseudo.fixme.fi)
2021-08-23 12:23:25 +0200aguapesada(~aguapesad@191.177.175.57)
2021-08-23 12:25:43 +0200 <tdammers> frankly, I would love a bot that actively eradicates all smileys and other emoji nonsense from the face of the earth
2021-08-23 12:27:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-23 12:28:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 12:33:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-23 12:34:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 12:35:27 +0200nvmd(~nvmd@user/nvmd) (Ping timeout: 268 seconds)
2021-08-23 12:35:37 +0200zaquest(~notzaques@5.128.210.178)
2021-08-23 12:39:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-23 12:40:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 12:41:05 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 248 seconds)
2021-08-23 12:42:49 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 12:44:28 +0200azeem(~azeem@176.201.15.223)
2021-08-23 12:45:37 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-08-23 12:46:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 12:55:54 +0200acidjnk_new(~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de)
2021-08-23 12:57:10 +0200acidjnk(~acidjnk@p200300d0c72b9558d9d86757fde39a6c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-08-23 12:57:18 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 250 seconds)
2021-08-23 12:58:00 +0200azeem(~azeem@176.201.15.223)
2021-08-23 12:58:21 +0200dminuoso[m](~dminuosom@2001:470:69fc:105::33bb) ()
2021-08-23 12:58:57 +0200timCF(~timCF@m91-129-108-244.cust.tele2.ee)
2021-08-23 12:59:34 +0200 <timCF> Hello! Does anybody know how to remove imports/definitions/aliases from ghci session?
2021-08-23 13:01:00 +0200alx741(~alx741@181.196.68.94)
2021-08-23 13:01:51 +0200 <timCF> Just to clear current scope from defined things
2021-08-23 13:02:15 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 13:03:20 +0200 <merijn> Not even sure that's possible, tbh
2021-08-23 13:03:32 +0200 <dminuoso> You can remove imports
2021-08-23 13:03:44 +0200 <merijn> Sure, but not definitions inside ghci, I think?
2021-08-23 13:03:49 +0200 <merijn> Or does :reload reset thos?
2021-08-23 13:03:59 +0200 <dminuoso> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html#controlling-what-is-in-sโ€ฆ
2021-08-23 13:04:15 +0200 <dminuoso> timCF: ^-
2021-08-23 13:07:42 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-23 13:07:55 +0200 <timCF> merijn: dminuoso: thanks!
2021-08-23 13:08:43 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 252 seconds)
2021-08-23 13:10:37 +0200azeem(~azeem@176.201.15.223)
2021-08-23 13:12:17 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 13:12:31 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 13:12:59 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 13:17:31 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-08-23 13:19:37 +0200keutoi_keutoi
2021-08-23 13:27:10 +0200 <timCF> I do have some "noob" problems with `microlens`. I'm using this library as consequence of usage of `proto-lens` which is the best protobuf library for Haskell I guess. Problem with `microlens` in my team is that for not very experienced Haskell programmers they are very confusing. For example there are 2 different access operators `^.` and `^?` and intuitevly second should be used for `Maybe` values. But
2021-08-23 13:27:16 +0200 <timCF> it's not working as expected without `_Just` prism. For example `x ^? Msg.maybe'ok` will produce `Just Nothing` which will always return True with isJust (case where we just checking that response is ok or not). To make it work as expected, we should use `x ^? Msg.maybe'ok . _Just` or `x ^. Msg.maybe'ok`. And type system is not helping that much in case of this kind of errors. I thought maybe I can solve
2021-08-23 13:27:22 +0200 <timCF> the issue if `^?` is not imported, then developers are forced to use `^.` but seems like it's not working with nested fields, for example `x ^. Msg.maybe'ok . _Just . Msg.maybe'user` will fail to compile with some strange error about Monoid instances. I don'
2021-08-23 13:27:36 +0200 <timCF> I don't like solution like "triple check what you are actually writing" and prefer type system to help
2021-08-23 13:27:54 +0200 <dminuoso> timCF: Switch to `optics` then.
2021-08-23 13:27:58 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 252 seconds)
2021-08-23 13:27:58 +0200 <timCF> Are there any suggestions how to fix this kind of issue?
2021-08-23 13:28:04 +0200 <dminuoso> The underlying problem is roughly this:
2021-08-23 13:28:58 +0200 <dminuoso> % :t view
2021-08-23 13:28:59 +0200 <yahb> dminuoso: MonadReader s m => Getting a s a -> m a
2021-08-23 13:29:01 +0200 <dminuoso> % :i Getting
2021-08-23 13:29:02 +0200 <yahb> dminuoso: type Getting :: * -> * -> * -> *; type Getting r s a = (a -> Const r a) -> s -> Const r s; -- Defined in `Control.Lens.Getter'
2021-08-23 13:29:09 +0200azeem(~azeem@176.201.15.223)
2021-08-23 13:29:34 +0200 <dminuoso> % :t _Just . _1
2021-08-23 13:29:34 +0200 <yahb> dminuoso: (Applicative f, Field1 a1 b1 a2 b2) => (a2 -> f b2) -> Maybe a1 -> f (Maybe b1)
2021-08-23 13:30:14 +0200 <dminuoso> timCF: Notice how we have this `Applicative` constraint?
2021-08-23 13:30:30 +0200 <dminuoso> Essentially what this all ends up doing is:
2021-08-23 13:30:47 +0200 <dminuoso> In `lens` we can `view` through a Fold, and it will just `mappend` all targets together
2021-08-23 13:30:52 +0200 <dminuoso> If no target exist, you get `mempty` back
2021-08-23 13:30:57 +0200 <dminuoso> e.g.:
2021-08-23 13:31:12 +0200 <dminuoso> % view folded [Product 1, Product 2, Product 3, Product 4]
2021-08-23 13:31:13 +0200 <yahb> dminuoso: Product {getProduct = 24}
2021-08-23 13:31:34 +0200 <dminuoso> This may not be what you intended, and its one of those things why I dont like `lens` either.
2021-08-23 13:31:47 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
2021-08-23 13:32:23 +0200 <dibblego> timCF: a lens composed with a prism gives you a traversal
2021-08-23 13:33:08 +0200 <timCF> dminuoso: I see. Does `optics` "solves" it somehow? Not sure is it bug or feature)
2021-08-23 13:33:14 +0200 <dminuoso> Yes.
2021-08-23 13:33:29 +0200 <dminuoso> Let me quickly give you the output
2021-08-23 13:34:18 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2021-08-23 13:34:25 +0200 <dminuoso> timCF: https://gist.github.com/dminuoso/58f816500a5cd9fa4affff440e301af6
2021-08-23 13:34:49 +0200 <dminuoso> So if you wanted the behavior of `lens`, you'd have to explicitly use `foldOf`
2021-08-23 13:35:03 +0200 <dminuoso> Otherwise you get very well written customed type errors
2021-08-23 13:36:08 +0200 <dminuoso> Or perhaps, as a comparable example:
2021-08-23 13:36:23 +0200 <dminuoso> % view (_Just . _1) (Just ("foo", bar))
2021-08-23 13:36:25 +0200 <yahb> dminuoso: ; <interactive>:13:33: error:; * Variable not in scope: bar; * Perhaps you meant `Sym.var' (imported from Data.Number.Symbolic)
2021-08-23 13:36:28 +0200 <dminuoso> % view (_Just . _1) (Just ("foo", 1))
2021-08-23 13:36:29 +0200 <yahb> dminuoso: "foo"
2021-08-23 13:37:00 +0200 <dminuoso> https://gist.github.com/dminuoso/4195934615b775b3ef7514f97b63dcc7
2021-08-23 13:37:07 +0200 <dminuoso> The output you'd get in optics
2021-08-23 13:37:40 +0200 <dminuoso> (The output here means, that the composition of `_Just % _1` is an AffineTraversal, but `view` demands a Getter
2021-08-23 13:37:40 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu) (Ping timeout: 240 seconds)
2021-08-23 13:37:50 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 13:38:57 +0200 <timCF> dminuoso: Thanks! I'll try this! I hope `optics` will be compatible with `proto-lens`
2021-08-23 13:39:25 +0200 <dminuoso> timCF: Mmm not directly.
2021-08-23 13:40:02 +0200 <dminuoso> I mean you can trivially convert between lens-style and optics-style optics, but its additional work
2021-08-23 13:40:18 +0200 <Jack> Anyone ever taken a look at C++'s "functional" library?
2021-08-23 13:42:22 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-23 13:44:17 +0200 <[exa]> Jack: yes
2021-08-23 13:46:37 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-23 13:47:23 +0200cheater1__(~Username@user/cheater)
2021-08-23 13:47:36 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-08-23 13:47:37 +0200cheater1__cheater
2021-08-23 13:49:55 +0200 <Jack> It's kind of adorable, isn't it
2021-08-23 13:51:49 +0200doyougnu(~user@c-73-25-202-122.hsd1.or.comcast.net)
2021-08-23 13:51:57 +0200 <[exa]> depends on the kind of adorable you're after
2021-08-23 13:52:07 +0200 <[exa]> std::bind is often a lifesaver
2021-08-23 13:52:47 +0200 <Rembane_> [exa]: Is std::bind like $ in Haskell?
2021-08-23 13:53:09 +0200 <[exa]> literally like ' ', yea
2021-08-23 13:53:18 +0200favonia(~favonia@user/favonia)
2021-08-23 13:53:52 +0200 <[exa]> afaik it implements a pretty good static representation of the closure
2021-08-23 13:54:32 +0200 <Rembane_> Do you get that sweet lisp scoping when you use std::bind?
2021-08-23 13:54:58 +0200 <[exa]> lisp scope is structural or lexical?
2021-08-23 13:55:03 +0200 <[exa]> (I can never remember)
2021-08-23 13:55:14 +0200 <Rembane_> Me neither, so I guess we're stuck now. :)
2021-08-23 13:55:25 +0200 <[exa]> anyway the scope is perfectly c++ish
2021-08-23 13:55:41 +0200 <Rembane_> If everything works as expected it's fine imo
2021-08-23 13:56:08 +0200 <[exa]> yeah it really works, if you want to do a partial application std::bind is the way
2021-08-23 13:57:03 +0200 <[exa]> or a std::thunk <-- fiction
2021-08-23 13:57:06 +0200haskl(~haskl@user/haskl) (Remote host closed the connection)
2021-08-23 13:59:05 +0200haskl(~haskl@98.37.78.63)
2021-08-23 13:59:09 +0200 <Rembane_> It's a good thunk.
2021-08-23 14:00:35 +0200azeem(~azeem@176.201.15.223) (Read error: Connection reset by peer)
2021-08-23 14:00:54 +0200haskl(~haskl@98.37.78.63) (Changing host)
2021-08-23 14:00:54 +0200haskl(~haskl@user/haskl)
2021-08-23 14:01:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 14:01:54 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
2021-08-23 14:03:51 +0200 <timCF> dminuoso: I also thought maybe I can avoid `^?` using monadic nature of maybe, so `x ^? maybe'foo . _Just . maybe'bar . _Just` can be rewritten as `x ^. maybe'foo >>= (^. maybe'bar)` but I'm afraid it's even more confusing. But maybe not :)
2021-08-23 14:04:29 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se)
2021-08-23 14:05:46 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 250 seconds)
2021-08-23 14:07:27 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-08-23 14:11:49 +0200pbrisbin(~patrick@174-081-116-011.res.spectrum.com)
2021-08-23 14:13:54 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1)
2021-08-23 14:14:08 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se)
2021-08-23 14:20:32 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu)
2021-08-23 14:31:24 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 244 seconds)
2021-08-23 14:35:43 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-23 14:36:04 +0200urdh(~urdh@user/urdh) (Quit: Boom!)
2021-08-23 14:36:50 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-08-23 14:37:04 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 14:38:16 +0200jacks2(~bc8167eb@217.29.117.252)
2021-08-23 14:38:49 +0200 <jacks2> hi. given parsec's someParser :: Parser a, is it possible to get current line number in someParser?
2021-08-23 14:42:07 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-23 14:42:11 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-08-23 14:42:27 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-23 14:42:51 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-08-23 14:44:17 +0200keutoi(~keutoi@106.208.52.176) (Ping timeout: 248 seconds)
2021-08-23 14:44:57 +0200markpythonicbtc(~textual@2601:647:5a00:35:d936:f2de:ef6:f0f4) (Quit: My MacBook has gone to sleep. ZZZzzzโ€ฆ)
2021-08-23 14:45:13 +0200urdh(~urdh@user/urdh)
2021-08-23 14:47:29 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-08-23 14:49:40 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-08-23 14:50:18 +0200hendursaga(~weechat@user/hendursaga)
2021-08-23 14:52:16 +0200 <[exa]> Jack: not sure about parsec but megaparsec has `getSourcePos`
2021-08-23 14:52:33 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-08-23 14:53:54 +0200 <[exa]> ha, parsec has equivalent `getPosition`
2021-08-23 14:55:56 +0200keutoi(~keutoi@157.48.226.59)
2021-08-23 14:59:12 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-08-23 15:00:37 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-08-23 15:01:53 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 15:07:46 +0200tremon_(~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Ping timeout: 240 seconds)
2021-08-23 15:09:17 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-23 15:10:58 +0200markpythonicbtc(~textual@50.228.44.6)
2021-08-23 15:11:10 +0200 <ggVGc> isn't it about time Haskell gets one officially standard parsing library
2021-08-23 15:12:14 +0200 <tdammers> "official" by whose authority?
2021-08-23 15:12:57 +0200 <merijn> We already have an official standard parsing library in base :p
2021-08-23 15:13:03 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-08-23 15:13:11 +0200 <merijn> Actually, two, I think
2021-08-23 15:13:15 +0200 <merijn> And they suck :p
2021-08-23 15:13:25 +0200 <tdammers> readP?
2021-08-23 15:13:34 +0200 <merijn> and readS
2021-08-23 15:13:40 +0200 <tdammers> ah yes
2021-08-23 15:15:10 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se) (Ping timeout: 240 seconds)
2021-08-23 15:22:02 +0200acidjnk_new(~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-08-23 15:22:35 +0200 <[exa]> ggVGc: y tho
2021-08-23 15:22:38 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se)
2021-08-23 15:25:55 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-23 15:27:00 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-08-23 15:27:09 +0200 <merijn> If I've learned anything from my time in python, it's that "officially blessed and in the standard library" has a 100% fatality rate on libraries :p
2021-08-23 15:28:06 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se) (Ping timeout: 250 seconds)
2021-08-23 15:28:07 +0200byorgey(~byorgey@155.138.238.211)
2021-08-23 15:31:23 +0200 <ggVGc> I just wish that wasn't the case
2021-08-23 15:31:45 +0200 <ggVGc> imagine if we could collectively stop writing and rewriting 20 versions of the same things all the time
2021-08-23 15:35:08 +0200 <[exa]> producing quality packages requires training on other ones
2021-08-23 15:35:49 +0200 <maerwald> yeah, I will support streamly based parsers in base
2021-08-23 15:35:52 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 15:35:59 +0200keutoi_(~keutoi@223.238.95.231)
2021-08-23 15:36:29 +0200 <merijn> ggVGc: That seems an orthogonal issue
2021-08-23 15:36:33 +0200keutoi(~keutoi@157.48.226.59) (Killed (lithium.libera.chat (Nickname regained by services)))
2021-08-23 15:36:33 +0200keutoi_keutoi
2021-08-23 15:36:43 +0200 <merijn> ggVGc: If there is a good and adequate parser library, what's stopping you from using it
2021-08-23 15:37:11 +0200 <merijn> Like, how would an "officially blessed and in base" version of megaparsec be better than, just megaparsec?
2021-08-23 15:37:42 +0200 <[exa]> also I guess we can kinda agree that almost all SI-prefixed variants of parsec have their own place
2021-08-23 15:37:46 +0200 <maerwald> well... haskell is really bad at composition
2021-08-23 15:37:47 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 15:37:53 +0200 <maerwald> more stuff in base can improve that
2021-08-23 15:37:54 +0200 <ggVGc> I believe the possible positive outcomes are always more focused efforts, and better documentation
2021-08-23 15:37:55 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-08-23 15:38:02 +0200 <merijn> maerwald: So is pretty much every mainstream language :p
2021-08-23 15:38:06 +0200 <maerwald> merijn: no
2021-08-23 15:38:20 +0200 <maerwald> the weaker the types, the easier the composition, sometimes
2021-08-23 15:38:32 +0200 <maerwald> since haskells API is all very type heavy, you can't easily exchange implementations
2021-08-23 15:38:53 +0200 <maerwald> that's often less of an issue in, say, Go
2021-08-23 15:39:10 +0200 <maerwald> because the few types they use are everywhere
2021-08-23 15:39:13 +0200 <[exa]> can we count in the debugging time? :D
2021-08-23 15:39:26 +0200 <merijn> maerwald: Depends how you define "easier", sure you can combine more things, but I assumed we only cared about *bugfree* combinations :p
2021-08-23 15:40:05 +0200 <maerwald> merijn: you don't have bugfree anywhere
2021-08-23 15:40:19 +0200 <merijn> maerwald: I also disagree that's an inherent flaw in Haskell, it's just a flaw in Haskell *programmers* to make their API's types inconvenient
2021-08-23 15:40:45 +0200 <maerwald> sure, it's an ecosystem effect, but the language is more convenient for it
2021-08-23 15:40:48 +0200 <maerwald> so it's both sides
2021-08-23 15:40:49 +0200jgeerds(~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 248 seconds)
2021-08-23 15:41:04 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 252 seconds)
2021-08-23 15:42:02 +0200 <maerwald> people thought backpack might solve this, but lol
2021-08-23 15:42:14 +0200azeem(~azeem@176.201.15.223)
2021-08-23 15:42:22 +0200 <merijn> I blame pytorch hijacking ezyang
2021-08-23 15:42:24 +0200 <maerwald> you still have to agree on an API, like... what's parsing, what's streaming etc
2021-08-23 15:44:06 +0200 <maerwald> and looking at conduit and streamly, the APIs are already incompatible
2021-08-23 15:44:07 +0200 <maerwald> inherently
2021-08-23 15:44:25 +0200 <maerwald> so backpack is not the solution
2021-08-23 15:45:22 +0200 <maerwald> if we had an actual functioning CLC that is working on base actively, I don't think it would be an issue to broaden the scope
2021-08-23 15:45:29 +0200acidjnk_new(~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de)
2021-08-23 15:45:50 +0200 <[exa]> ...write a grant?
2021-08-23 15:46:10 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
2021-08-23 15:46:23 +0200 <maerwald> money solves it?
2021-08-23 15:46:27 +0200 <[exa]> honestly I think e.g. MS research would not think twice about this precise ecosystem improvement
2021-08-23 15:46:32 +0200 <[exa]> well, you need people to do that
2021-08-23 15:46:37 +0200 <maerwald> HF has money
2021-08-23 15:46:47 +0200 <merijn> I mean, base's problem is that it can't move fast without breaking *everything*
2021-08-23 15:46:58 +0200 <merijn> Not to mention, significant parts are in the report
2021-08-23 15:47:31 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-23 15:47:58 +0200 <[exa]> maerwald: still it somehow chooses to work on other stuff
2021-08-23 15:48:02 +0200 <maerwald> yes
2021-08-23 15:48:15 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 15:48:27 +0200 <[exa]> maerwald: anyway the issue might just be more problematic, driven by actual programming deficiency than just people being lazy
2021-08-23 15:48:35 +0200 <maerwald> they're more concerned with broadening Haskell adoption in industry I think... at least that's what I gather from their mission statement discussion
2021-08-23 15:49:11 +0200 <[exa]> writing super-compatible stuff that still has types and not just "FromResult a => IO a" takes insane amounts of abstraction
2021-08-23 15:49:18 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 15:49:27 +0200 <maerwald> broadening adoption is more about building a brand/an image, providing consulting services, etc etc
2021-08-23 15:49:31 +0200 <maerwald> less about improving ecosystem
2021-08-23 15:49:36 +0200 <[exa]> monkeypatching stuff together (python/ruby way yay) certainly works but that's one thing we wanted to prevent right?
2021-08-23 15:50:07 +0200 <[exa]> adoption broads itself with killer apps
2021-08-23 15:51:22 +0200 <[exa]> anyway I'd certainly vote for having the internals of the packages exposed a bit more, having some way of recombining them in a little different way/with different glue types in case it's needed
2021-08-23 15:51:51 +0200 <[exa]> the problem is that there's no such now, except for 1] having 100x more type variables 2] backpack, kinda
2021-08-23 15:52:07 +0200 <[exa]> *no such standardized way to do that
2021-08-23 15:52:36 +0200 <[exa]> not standardized -- not even available
2021-08-23 15:55:28 +0200 <[exa]> hm now that's a research topic, assurance of some api compatibility without standardization
2021-08-23 15:55:33 +0200 <[exa]> ...let's write a grant?
2021-08-23 15:56:49 +0200aguapesada(~aguapesad@191.177.175.57) (Ping timeout: 248 seconds)
2021-08-23 15:57:15 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 15:59:46 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-08-23 16:00:37 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 16:01:55 +0200 <jacks2> [exa], nice, thanks!
2021-08-23 16:02:37 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 16:02:42 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
2021-08-23 16:02:47 +0200xff0x(~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) (Ping timeout: 240 seconds)
2021-08-23 16:03:10 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-23 16:05:21 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2021-08-23 16:05:36 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 16:06:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Ping timeout: 240 seconds)
2021-08-23 16:07:27 +0200azeem(~azeem@176.201.15.223) (Ping timeout: 240 seconds)
2021-08-23 16:07:42 +0200azeem(~azeem@176.201.15.223)
2021-08-23 16:10:04 +0200xff0x(~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13)
2021-08-23 16:16:22 +0200neo(~neo3@cpe-292712.ip.primehome.com)
2021-08-23 16:17:04 +0200Guest8337(~chris@81.96.113.213) (Ping timeout: 250 seconds)
2021-08-23 16:18:43 +0200codedmart_codedmart
2021-08-23 16:18:59 +0200Sgeo(~Sgeo@user/sgeo)
2021-08-23 16:20:04 +0200chris(~chris@81.96.113.213)
2021-08-23 16:20:07 +0200chrisGuest5712
2021-08-23 16:20:33 +0200azeem(~azeem@176.201.15.223) (Read error: Connection reset by peer)
2021-08-23 16:20:46 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
2021-08-23 16:21:54 +0200chris(~chris@81.96.113.213)
2021-08-23 16:21:54 +0200Guest5712(~chris@81.96.113.213) (Read error: Connection reset by peer)
2021-08-23 16:21:58 +0200chrisGuest2290
2021-08-23 16:22:10 +0200acidjnk_new(~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-08-23 16:25:18 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-08-23 16:26:26 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host)
2021-08-23 16:26:26 +0200zfnmxt(~zfnmxtzfn@user/zfnmxt)
2021-08-23 16:26:37 +0200zfnmxt(~zfnmxtzfn@user/zfnmxt) (Quit: Reconnecting)
2021-08-23 16:26:53 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32)
2021-08-23 16:27:42 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Changing host)
2021-08-23 16:27:42 +0200zfnmxt(~zfnmxtzfn@user/zfnmxt)
2021-08-23 16:28:09 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-08-23 16:28:10 +0200reumeth(~reumeth@user/reumeth) (Ping timeout: 240 seconds)
2021-08-23 16:28:39 +0200MoC(~moc@user/moc)
2021-08-23 16:28:50 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 16:29:46 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 16:30:33 +0200mal1lieven
2021-08-23 16:30:36 +0200timCF(~timCF@m91-129-108-244.cust.tele2.ee) (Quit: leaving)
2021-08-23 16:33:10 +0200pgib(~textual@173.38.117.86) (Ping timeout: 240 seconds)
2021-08-23 16:36:23 +0200VoidNoir0(~VoidNoir0@72.80.203.52)
2021-08-23 16:36:44 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-08-23 16:40:51 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 16:42:52 +0200markpythonicbtc(~textual@50.228.44.6) (Quit: My MacBook has gone to sleep. ZZZzzzโ€ฆ)
2021-08-23 16:43:10 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 16:43:28 +0200markpythonicbtc(~textual@50.228.44.6)
2021-08-23 16:43:58 +0200markpythonicbtc(~textual@50.228.44.6) (Client Quit)
2021-08-23 16:43:59 +0200dschrempf(~dominik@92-249-199-97.pool.digikabel.hu) (Quit: WeeChat 3.2)
2021-08-23 16:44:07 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2021-08-23 16:44:42 +0200cheater(~Username@user/cheater)
2021-08-23 16:45:42 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 16:45:58 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds)
2021-08-23 16:49:01 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se)
2021-08-23 16:50:51 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 16:52:15 +0200zmt01(~zmt00@user/zmt00)
2021-08-23 16:53:07 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 16:54:23 +0200jgeerds(~jgeerds@55d4b311.access.ecotel.net)
2021-08-23 16:55:25 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-08-23 17:02:28 +0200SquareSqaure
2021-08-23 17:03:52 +0200jose03(~a@p200300ef9702383b45b8de8f8152bf35.dip0.t-ipconnect.de)
2021-08-23 17:04:16 +0200Ariakenom(~patrik@c83-255-154-140.bredband.tele2.se) (Quit: WeeChat 3.1)
2021-08-23 17:05:57 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 17:06:21 +0200 <jose03> ghcup has nice terminal user interface. Does anybody know which haskell library they used for the UI? Or is it a C program?
2021-08-23 17:07:10 +0200daeng(~daeng@2401:3c00:18e:e603:bec7:e31f:ee15:3296) (Quit: Leaving)
2021-08-23 17:08:29 +0200 <[exa]> jose03: apparently Options.Applicative and Brick
2021-08-23 17:08:36 +0200 <[exa]> see code https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/app/ghcup/Main.hs
2021-08-23 17:09:07 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 240 seconds)
2021-08-23 17:09:16 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 17:12:49 +0200azeem(~azeem@176.201.15.223)
2021-08-23 17:13:02 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 17:14:46 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 17:15:13 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk)
2021-08-23 17:16:04 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2)
2021-08-23 17:17:31 +0200burnsidesLlama(~burnsides@client-8-88.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-08-23 17:17:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 17:17:31 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 17:17:31 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 17:19:22 +0200 <maerwald> jose03: brick
2021-08-23 17:20:27 +0200 <maerwald> https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/app/ghcup/BrickMain.hs
2021-08-23 17:20:47 +0200 <maerwald> barely 500 LOC
2021-08-23 17:20:58 +0200rmo(~rmo@user/msr) (Read error: Connection reset by peer)
2021-08-23 17:20:59 +0200 <maerwald> only downside is it doesn't support windows
2021-08-23 17:21:46 +0200hexfive(~eric@50.35.83.177)
2021-08-23 17:22:30 +0200markpythonicbtc(~textual@2601:647:5a00:35:f45e:90a7:31f1:d8ef)
2021-08-23 17:23:27 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-08-23 17:23:28 +0200azeem(~azeem@176.201.15.223) (Read error: Connection reset by peer)
2021-08-23 17:23:48 +0200 <merijn> optparse-applicative for commandline arguments/flags
2021-08-23 17:23:55 +0200 <merijn> brick for anything TUI like
2021-08-23 17:23:59 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-08-23 17:24:14 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-08-23 17:25:10 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
2021-08-23 17:26:56 +0200 <jose03> [exa]: maerwald: merijn: thank you
2021-08-23 17:29:22 +0200nvmd(~nvmd@user/nvmd)
2021-08-23 17:39:18 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-08-23 17:43:35 +0200jippiedoe(~david@2a02-a44c-e14e-1-bfe4-3f38-b8a5-8c39.fixed6.kpn.net) (Quit: Leaving)
2021-08-23 17:44:01 +0200dsrt^(~dsrt@12.16.129.111) (Remote host closed the connection)
2021-08-23 17:45:18 +0200epolanski(uid312403@id-312403.brockwell.irccloud.com)
2021-08-23 17:45:47 +0200xff0x(~xff0x@2001:1a81:52f9:3300:b5f:b00c:7918:3d13) (Ping timeout: 240 seconds)
2021-08-23 17:46:01 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-08-23 17:46:07 +0200chexum_(~quassel@gateway/tor-sasl/chexum)
2021-08-23 17:46:46 +0200xff0x(~xff0x@2001:1a81:52f9:3300:b601:7649:8935:742b)
2021-08-23 17:50:19 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-08-23 17:51:26 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
2021-08-23 17:55:09 +0200ubert(~Thunderbi@178.165.179.240.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-08-23 17:55:32 +0200ubert(~Thunderbi@178.165.179.240.wireless.dyn.drei.com)
2021-08-23 17:56:52 +0200frtdlteo^(~frtdlteo@12.16.129.111)
2021-08-23 17:56:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 18:02:53 +0200chexum_chexum
2021-08-23 18:03:35 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 18:08:07 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2021-08-23 18:08:51 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-08-23 18:09:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-08-23 18:09:40 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2021-08-23 18:12:41 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 18:17:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-23 18:19:33 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 268 seconds)
2021-08-23 18:22:18 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 250 seconds)
2021-08-23 18:25:56 +0200hrnz(~ulli@irc.plumbing) (Quit: das ist mir zu bld hier; bb)
2021-08-23 18:26:19 +0200hrnz(~ulli@irc.plumbing)
2021-08-23 18:26:26 +0200hrnz(~ulli@irc.plumbing) (Client Quit)
2021-08-23 18:26:51 +0200hrnz(~ulli@irc.plumbing)
2021-08-23 18:27:19 +0200hrnz(~ulli@irc.plumbing) (Client Quit)
2021-08-23 18:27:31 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
2021-08-23 18:27:45 +0200hrnz(~ulli@irc.plumbing)
2021-08-23 18:29:04 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-08-23 18:29:35 +0200hyiltiz(~quassel@31.220.5.250)
2021-08-23 18:38:05 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 18:40:26 +0200 <siers> I'm trying to understand the difference between {,G}ADTs. They both inductively create more elements in the set from old elements, but with GADTs you can restrict which elements you may use to to construct the next one, if you wish?
2021-08-23 18:41:59 +0200 <Lycurgus> what does {,G} signify over what G does?
2021-08-23 18:42:01 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-08-23 18:42:35 +0200 <siers> ah, that is a stupid shellism
2021-08-23 18:42:43 +0200 <siers> echo {,G}ADTs
2021-08-23 18:42:45 +0200 <siers> ADTs GADTs
2021-08-23 18:42:49 +0200 <Lycurgus> i c
2021-08-23 18:43:27 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-08-23 18:43:56 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-08-23 18:44:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 18:45:29 +0200jess(~jess@libera/staff/jess)
2021-08-23 18:49:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-23 18:50:28 +0200jgeerds(~jgeerds@55d4b311.access.ecotel.net) (Ping timeout: 250 seconds)
2021-08-23 18:51:47 +0200neo(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 240 seconds)
2021-08-23 18:52:02 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-08-23 18:53:18 +0200ubert1(~Thunderbi@178.165.201.23.wireless.dyn.drei.com)
2021-08-23 18:53:56 +0200 <Drew[m]> siers: This may be an oversimplification but my understanding is that GADTs let you define datatypes with type parameters, where what fills the parameter is decided by which constructor you constructed the datatype with.
2021-08-23 18:53:58 +0200 <Drew[m]> If the constructor you use fixes a type parameter in a type then the reverse is also true: fixing the type parameter also fixes what data constructor you can construct a value in that type with.
2021-08-23 18:54:44 +0200 <Lycurgus> like extra virgin olive oil, in this case extra abstact
2021-08-23 18:54:47 +0200ubert(~Thunderbi@178.165.179.240.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-08-23 18:54:47 +0200ubert1ubert
2021-08-23 18:56:26 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-23 18:58:26 +0200 <monochrom> The GHC User's Guide has an example in its GADT section.
2021-08-23 18:59:00 +0200 <monochrom> Generally 99% of the time the GHC User's Guide should be your first go-to source for this kind of consultations.
2021-08-23 18:59:23 +0200 <monochrom> Has examples. Pinpointing. Cuts to the mustard.
2021-08-23 19:02:15 +0200zebrag(~chris@user/zebrag)
2021-08-23 19:02:17 +0200obs\(~obscur1ty@156.192.129.164)
2021-08-23 19:02:17 +0200obs\(~obscur1ty@156.192.129.164) (Changing host)
2021-08-23 19:02:17 +0200obs\(~obscur1ty@user/obs/x-5924898)
2021-08-23 19:02:57 +0200kuribas(~user@ptr-25vy0iajat4u154jc6g.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-08-23 19:07:13 +0200 <Lycurgus> *abstract
2021-08-23 19:08:24 +0200econo(uid147250@user/econo)
2021-08-23 19:12:01 +0200pbrisbin(~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 248 seconds)
2021-08-23 19:13:55 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-08-23 19:14:01 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection)
2021-08-23 19:14:10 +0200pbrisbin(~patrick@199.66.179.206)
2021-08-23 19:18:59 +0200pavonia(~user@user/siracusa)
2021-08-23 19:19:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 19:19:52 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-08-23 19:20:27 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-23 19:22:39 +0200ubert(~Thunderbi@178.165.201.23.wireless.dyn.drei.com) (Ping timeout: 250 seconds)
2021-08-23 19:23:08 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 19:29:51 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-23 19:30:26 +0200Kaiepi(~Kaiepi@156.34.44.192)
2021-08-23 19:33:50 +0200ubert(~Thunderbi@178.165.201.23.wireless.dyn.drei.com)
2021-08-23 19:34:15 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 19:35:15 +0200 <maerwald[m]> GHC user guide is often better than haskell wiki
2021-08-23 19:37:27 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
2021-08-23 19:38:27 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-08-23 19:38:37 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-08-23 19:39:02 +0200defanor(~defanor@tart.uberspace.net) (Quit: .)
2021-08-23 19:39:13 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Ping timeout: 248 seconds)
2021-08-23 19:41:33 +0200fendor_(~fendor@77.119.197.208.wireless.dyn.drei.com)
2021-08-23 19:43:47 +0200fendor(~fendor@91.141.64.241.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2021-08-23 19:45:09 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
2021-08-23 19:46:01 +0200azeem(~azeem@176.201.15.223)
2021-08-23 19:46:37 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-08-23 19:47:01 +0200 <siers> monochrom, I am trying to describe it with my own words differently after reading the user guide already.
2021-08-23 19:47:14 +0200 <fresheyeball> is there a way to use CPP to special case code for test suites?
2021-08-23 19:47:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-08-23 19:48:07 +0200 <fresheyeball> basically I want Arbitrary instances to be local to the type, not orphans, but not to have a dependency on QuickCheck in the exe
2021-08-23 19:50:13 +0200 <monochrom> I think no.
2021-08-23 19:50:41 +0200 <tomsmeding> fresheyeball: see also: https://www.michaelpj.com/blog/2020/10/29/your-orphans-are-fine.html
2021-08-23 19:51:00 +0200 <tomsmeding> for some nuance regarding orphans
2021-08-23 19:51:06 +0200jose03(~a@p200300ef9702383b45b8de8f8152bf35.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-08-23 19:51:18 +0200 <sm> sure ? you can define a cpp var in the test component ?
2021-08-23 19:52:02 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 19:52:06 +0200 <sm> should you ? maybe not ?
2021-08-23 19:53:03 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Remote host closed the connection)
2021-08-23 19:53:09 +0200 <fresheyeball> tomsmeding: I have more problems than just orphans to be fair
2021-08-23 19:53:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-23 19:54:50 +0200trcc(~trcc@130.225.0.251)
2021-08-23 19:55:03 +0200panda_mankoala_man
2021-08-23 19:55:30 +0200aegon(~mike@174.127.249.180)
2021-08-23 19:56:12 +0200 <aegon> I see how the ffi works with basic characters, is there a way to use it to marshell haskell types into structs or structs into haskell types or keep a reference to an opaque type exposed by a c lib / what does that look like?
2021-08-23 19:57:02 +0200pbrisbin(~patrick@199.66.179.206) (Read error: Connection reset by peer)
2021-08-23 19:58:16 +0200 <fresheyeball> I figured out a solution
2021-08-23 19:58:31 +0200 <fresheyeball> cpp-options: -DTEST
2021-08-23 19:58:36 +0200 <fresheyeball> in the suite is all that is needed
2021-08-23 19:58:41 +0200 <fresheyeball> but I wish it was built in
2021-08-23 20:00:20 +0200 <aegon> https://stackoverflow.com/questions/30026843/haskell-data-instance-for-opaque-data-type found this for opaque types but having trouble finding things on passing / parsing structs across the ffi
2021-08-23 20:02:29 +0200pbrisbin(~patrick@174-081-116-011.res.spectrum.com)
2021-08-23 20:02:30 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-08-23 20:03:28 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-23 20:04:06 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 20:04:07 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 20:04:07 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 20:05:16 +0200 <pavonia> aegon: Have you read the wiki page on the FFI? https://wiki.haskell.org/Foreign_Function_Interface#Marshalling_data
2021-08-23 20:05:52 +0200 <aegon> pavonia: nope, and that looks like it has everything i'm pondering spelled out
2021-08-23 20:06:23 +0200neo(~neo3@cpe-292712.ip.primehome.com)
2021-08-23 20:07:04 +0200fendor_fendor
2021-08-23 20:08:17 +0200Adran(adran@botters/adran) (Quit: Este รฉ o fim.)
2021-08-23 20:08:28 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-08-23 20:10:38 +0200Adran(~adran@botters/adran)
2021-08-23 20:10:47 +0200defanor(~defanor@tart.uberspace.net)
2021-08-23 20:14:22 +0200keutoi(~keutoi@223.238.95.231) (Quit: leaving)
2021-08-23 20:15:27 +0200 <maerwald> do we have some fuzzy function/class to determine if a list is null-ish? like ["", ""]
2021-08-23 20:15:31 +0200drd(~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds)
2021-08-23 20:15:57 +0200 <maerwald> I'm not striving for clear semantics, since the input isn't
2021-08-23 20:16:16 +0200 <monochrom> I think no one has thought of it before.
2021-08-23 20:16:51 +0200azeem(~azeem@176.201.15.223) (Read error: Connection reset by peer)
2021-08-23 20:17:28 +0200 <monochrom> My understanding is that this is a job more suitable for humans, in particular some of my weaker students who conflate 0, the empty set, the empty list, and the non-empty list that contains the non-empty set that contains the empty list.
2021-08-23 20:18:15 +0200vysn(~vysn@user/vysn)
2021-08-23 20:18:52 +0200azeem(~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
2021-08-23 20:19:07 +0200 <monochrom> s/weaker/very weak/
2021-08-23 20:19:36 +0200 <maerwald> I can imagine this working with a class that just gets called recursively. As with `Default`, of course it's subject to heavy abuse
2021-08-23 20:20:27 +0200 <monochrom> If you ever codify something into code, then unless there is non-determinism, you will end up with one clear semantics.
2021-08-23 20:20:51 +0200 <monochrom> This is why for fuzzy things I would refer to weak humans.
2021-08-23 20:21:51 +0200 <maerwald> you mean plug in your students neural network into my binary?
2021-08-23 20:22:09 +0200 <aegon> maerwald: imo that type of problem points to bad data parsing / sanitizing, I'm trying to think of a place where this would be benificial to do in the middle of a computation as apposed to during injestion. If it's happening in the middle of a computation couldn't you use Maybe to signify possible failure or some other thing to be more explicit about the meaning of "nullish"
2021-08-23 20:22:33 +0200 <maerwald> aegon: yes, I don't control the data
2021-08-23 20:22:35 +0200 <monochrom> For example I wouldn't be against a simple recursive algorithm "is_nullish xs = every element of xs is_nullish". At the same time, I have zero confidence that this agrees with your user's expectation.
2021-08-23 20:23:16 +0200 <aegon> maerwald: can you sanity check it at the IO layer where your consuming it? in that case you could write the sanity check into the parser
2021-08-23 20:23:38 +0200 <maerwald> aegon: why would I sanity check? I want to accept as much junk as possible
2021-08-23 20:23:54 +0200 <aegon> why do you want junk?
2021-08-23 20:23:58 +0200 <maerwald> this is about supporting as many curl versions as possible and their funky output
2021-08-23 20:24:33 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-08-23 20:24:49 +0200 <maerwald> so I'm doing half-assed parsing, not proper parsing
2021-08-23 20:26:38 +0200 <maerwald> the real fix would have been to use `--suppress-connect-headers`, but of course, not all versions have it
2021-08-23 20:29:21 +0200 <[exa]> maerwald: what about `not . any isAlphaNum . show` ? (might save time)
2021-08-23 20:30:04 +0200 <[exa]> (counter-example: `map (flip replicate "" . ord) "oh hello there"`)
2021-08-23 20:30:22 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk)
2021-08-23 20:30:54 +0200 <maerwald> yeah, for my use case T.stripEnd is enough with a later filter on `not . null`
2021-08-23 20:32:23 +0200juri_(~juri@178.63.35.222) (Remote host closed the connection)
2021-08-23 20:33:12 +0200 <maerwald> until a new curl version does something new :p
2021-08-23 20:33:25 +0200 <[exa]> \o/
2021-08-23 20:33:41 +0200 <maerwald> wget seems much more stable
2021-08-23 20:33:44 +0200 <maerwald> although a lot slower too
2021-08-23 20:34:05 +0200 <[exa]> wget's got some internal machinery to make stuff faster, you can pipe URLs to it
2021-08-23 20:34:39 +0200 <maerwald> wget performs REALLY bad with etags
2021-08-23 20:34:46 +0200 <[exa]> whats etags
2021-08-23 20:35:07 +0200 <maerwald> https://en.wikipedia.org/wiki/HTTP_ETag
2021-08-23 20:35:27 +0200burnsidesLlama(~burnsides@dhcp168-023.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2021-08-23 20:36:07 +0200 <maerwald> compare: wget -q -S --header 'If-None-Match: "612388b3-1bc72"' https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml
2021-08-23 20:36:17 +0200 <maerwald> curl -H 'If-None-Match: "612388b3-1bc72"' https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml
2021-08-23 20:36:25 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-08-23 20:36:27 +0200 <maerwald> curl is twice as fast
2021-08-23 20:36:32 +0200 <maerwald> at least here
2021-08-23 20:37:56 +0200 <[exa]> hm interesting, right ~600ms curl vs ~800 for wget here
2021-08-23 20:38:08 +0200 <maerwald> curl is 480ms here
2021-08-23 20:38:24 +0200 <[exa]> +- a lot, ฯƒ~=100ms I'd say
2021-08-23 20:38:32 +0200 <maerwald> but noticable
2021-08-23 20:38:43 +0200 <[exa]> what does Dr. Strace say?
2021-08-23 20:39:23 +0200 <maerwald> he's too chatty :p
2021-08-23 20:41:29 +0200 <[exa]> well let's see actually, I'm interested
2021-08-23 20:41:50 +0200 <[exa]> chances are that wget is doing something for free for some vaguely userfriendly reason
2021-08-23 20:43:27 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
2021-08-23 20:44:28 +0200 <maerwald> wouldn't be surprised if it makes a full download and then decides to show 304
2021-08-23 20:44:51 +0200 <maerwald> but that's quick to test
2021-08-23 20:45:57 +0200derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-08-23 20:46:45 +0200 <maerwald> doesn't seem so... I'm also having vastly different timings to downloads.haskell.org compared to www.haskell.org
2021-08-23 20:46:56 +0200frtdlteo^(~frtdlteo@12.16.129.111) (Remote host closed the connection)
2021-08-23 20:47:04 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 20:48:03 +0200 <[exa]> so, wget loads faster by like 20ms here
2021-08-23 20:49:40 +0200 <maerwald> comparsion: wget -q -S --header 'If-None-Match: "61140ad8-3cbea20"' https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2
2021-08-23 20:49:43 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-08-23 20:49:45 +0200 <maerwald> this finishes in 200ms here
2021-08-23 20:49:59 +0200 <maerwald> seems like a configuration issue
2021-08-23 20:50:12 +0200 <maerwald> both should be cached
2021-08-23 20:54:29 +0200 <[exa]> strace says the difference is really just in waiting for the replies from the server, guess there's something ugly in the headers
2021-08-23 20:57:19 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-08-23 20:57:37 +0200hrdl(~hrdl@mail.hrdl.eu) (Ping timeout: 248 seconds)
2021-08-23 20:57:46 +0200maerwald(~maerwald@user/maerwald) (Quit: gone)
2021-08-23 20:57:51 +0200hrdl(~hrdl@mail.hrdl.eu)
2021-08-23 20:58:02 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-08-23 20:58:04 +0200maerwald(~maerwald@mail.hasufell.de)
2021-08-23 20:58:21 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-08-23 20:58:32 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2021-08-23 20:58:36 +0200lisq(~quassel@lis.moe) (Remote host closed the connection)
2021-08-23 20:58:54 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 244 seconds)
2021-08-23 20:59:18 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2021-08-23 20:59:18 +0200maerwald(~maerwald@user/maerwald)
2021-08-23 20:59:32 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-08-23 20:59:44 +0200 <maerwald> [exa]: odd
2021-08-23 20:59:45 +0200lisq(~quassel@lis.moe)
2021-08-23 21:00:38 +0200 <[exa]> maerwald: curl uses http/2
2021-08-23 21:02:10 +0200jacks2(~bc8167eb@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2021-08-23 21:03:38 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-08-23 21:04:12 +0200 <[exa]> hm got it, for me it's gnutls vs openssl
2021-08-23 21:04:21 +0200 <[exa]> gnutls's got a bit more aggressive crypto in place by default
2021-08-23 21:05:00 +0200teo(~teo@137.220.120.222)
2021-08-23 21:05:11 +0200 <[exa]> timing of `gnutls-cli` vs `openssl s_client` is consistent with what you see there
2021-08-23 21:05:41 +0200 <[exa]> roughly the 800 vs 600 ms
2021-08-23 21:06:11 +0200 <maerwald> hm, I should try curl linked against polarssl
2021-08-23 21:06:44 +0200 <[exa]> there's also gnutls curl somewhere
2021-08-23 21:06:47 +0200 <[exa]> at least debian has some
2021-08-23 21:08:46 +0200jakalx(~jakalx@base.jakalx.net)
2021-08-23 21:11:22 +0200jtomas_(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
2021-08-23 21:12:32 +0200trcc(~trcc@130.225.0.251) ()
2021-08-23 21:13:47 +0200jtomas(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2021-08-23 21:14:45 +0200peutri_peutri
2021-08-23 21:18:51 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:5b4:1bf2:3392:8995)
2021-08-23 21:19:41 +0200 <carter> i've been having fun figuruing out what monad transformer helpers are best for writing a snazzy interpreter / compiler lately
2021-08-23 21:23:34 +0200 <[exa]> "snazzy"? :D
2021-08-23 21:24:07 +0200juri_(~juri@178.63.35.222)
2021-08-23 21:25:28 +0200 <[exa]> (I learned a new word)
2021-08-23 21:27:53 +0200 <maerwald> carter: MonadChronicle?
2021-08-23 21:28:08 +0200 <carter> maerwald: ooo, that sounds fun
2021-08-23 21:28:10 +0200 <[exa]> maerwald: I can't dig what's openssl using for KEX but not expecting problems there; changing gnutls ciphersuites didn't help much. I guess it's dark magicks
2021-08-23 21:28:20 +0200 <carter> maerwald: what would that do
2021-08-23 21:28:23 +0200 <carter> [exa]: glad i could help
2021-08-23 21:28:27 +0200 <carter> not a native speaker?
2021-08-23 21:28:27 +0200 <maerwald> carter: express warnings and failure
2021-08-23 21:28:44 +0200 <maerwald> it's like These
2021-08-23 21:28:55 +0200 <maerwald> would probably be fun if you make it an open sum type, heh
2021-08-23 21:29:10 +0200 <carter> oh that looks fun
2021-08-23 21:29:27 +0200 <carter> thats probably the right thing for type checking a sect of SCC's
2021-08-23 21:29:53 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2021-08-23 21:30:05 +0200teo(~teo@137.220.120.222) (Quit: Lost terminal)
2021-08-23 21:30:16 +0200 <maerwald> I think I'm a believer of cabal-docspec now
2021-08-23 21:30:53 +0200 <carter> oh
2021-08-23 21:31:53 +0200 <maerwald> no need to have a doctest target
2021-08-23 21:31:55 +0200 <carter> is that in cabal 3.6 yet?
2021-08-23 21:31:58 +0200 <maerwald> no
2021-08-23 21:32:05 +0200 <maerwald> one of phadejs hidden projects
2021-08-23 21:32:14 +0200 <carter> https://github.com/phadej/cabal-extras/tree/master/cabal-docspec this one?
2021-08-23 21:32:21 +0200 <maerwald> ya
2021-08-23 21:32:42 +0200 <maerwald> I can run it without a doctest target, without a Main, just over my codebase
2021-08-23 21:33:02 +0200derelict(~derelict@user/derelict)
2021-08-23 21:33:14 +0200 <maerwald> it just needs the project to be built before, probably needs plan.json etc
2021-08-23 21:33:42 +0200 <maerwald> but can change comments without recompiling and it will still pick them up
2021-08-23 21:34:58 +0200bgamari(~bgamari@2001:470:e438::1) (Quit: ZNC 1.8.1 - https://znc.in)
2021-08-23 21:35:18 +0200bgamari(~bgamari@2001:470:e438::1)
2021-08-23 21:35:25 +0200 <carter> oh thats nice
2021-08-23 21:35:35 +0200 <carter> how do you script it in?
2021-08-23 21:35:47 +0200neo(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 240 seconds)
2021-08-23 21:36:12 +0200 <carter> hrmm
2021-08-23 21:36:15 +0200 <maerwald> carter: https://github.com/hasufell/shortbytestring/blob/219b6f0f48bb29ec20015a36db5ad97eab072e64/.github/โ€ฆ
2021-08-23 21:36:18 +0200 <carter> would be nice if it was cabal-ized
2021-08-23 21:36:41 +0200 <carter> oh nice
2021-08-23 21:37:16 +0200 <maerwald> carter: I whined about it here https://github.com/haskell/cabal/issues/2327
2021-08-23 21:43:16 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-08-23 21:44:14 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2021-08-23 21:44:33 +0200Lord_of_Life_Lord_of_Life
2021-08-23 21:48:23 +0200venue(~venue@user/venue) (Quit: was tired)
2021-08-23 21:49:07 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-08-23 21:49:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 21:51:22 +0200mei(~mei@user/mei) (Ping timeout: 258 seconds)
2021-08-23 21:52:23 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2021-08-23 21:59:29 +0200 <maerwald> ,
2021-08-23 21:59:36 +0200 <tomsmeding> !
2021-08-23 22:03:08 +0200 <maerwald> `traverseFold f = foldl (\mb a -> (<>) <$> mb <*> f a) (pure mempty)` -- I don't remember why I wrote this function
2021-08-23 22:03:11 +0200 <maerwald> and it's confusing
2021-08-23 22:03:31 +0200 <maerwald> try `traverseFold (:[]) ["1","2","3","4","5"]` vs `traverseFold (:[","]) ["1","2","3","4","5"]` lol
2021-08-23 22:04:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 22:04:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 22:04:09 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 22:05:31 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 252 seconds)
2021-08-23 22:07:33 +0200juhp(~juhp@128.106.188.220)
2021-08-23 22:08:11 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-08-23 22:09:27 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
2021-08-23 22:09:33 +0200ent-ent
2021-08-23 22:11:21 +0200 <maerwald> don't use list monad :p
2021-08-23 22:11:41 +0200Erutuon(~Erutuon@user/erutuon)
2021-08-23 22:15:41 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection)
2021-08-23 22:16:46 +0200chisui(~chisui@200116b868b0580051414fea9b4eac83.dip.versatel-1u1.de)
2021-08-23 22:18:24 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2021-08-23 22:18:41 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2021-08-23 22:18:53 +0200 <fresheyeball> can I set cpp-options in hie.yaml?
2021-08-23 22:20:09 +0200jgeerds(~jgeerds@55d4b311.access.ecotel.net)
2021-08-23 22:21:27 +0200 <maerwald> fresheyeball: why?
2021-08-23 22:21:39 +0200 <fresheyeball> well I set it in the cabal file
2021-08-23 22:21:43 +0200 <fresheyeball> and everything compiles fine
2021-08-23 22:21:56 +0200 <fresheyeball> but hls is acting like those options are not set for the target
2021-08-23 22:22:10 +0200 <maerwald> cabal.project?
2021-08-23 22:22:21 +0200 <fresheyeball> I don't have one of those
2021-08-23 22:22:28 +0200 <maerwald> create one
2021-08-23 22:22:44 +0200tommd(~tommd@75-164-130-101.ptld.qwest.net)
2021-08-23 22:23:32 +0200 <fresheyeball> ok done
2021-08-23 22:23:39 +0200 <fresheyeball> I enumerate my three exes
2021-08-23 22:23:42 +0200 <fresheyeball> and set tests: True
2021-08-23 22:23:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-23 22:24:17 +0200 <fresheyeball> now hls just crashes
2021-08-23 22:24:27 +0200 <tommd> I've been wanting to get into haskell.nix for a while now (for build time improvements on large projects) but quickly run into issues such as `error: attribute 'cabal-to-nix' missing, at ...`. How should I learn up on Nix?
2021-08-23 22:24:48 +0200 <tommd> That is, nix + Haskell to be quite clear. Less learning nix and more applying to improve my Haskell experience.
2021-08-23 22:24:58 +0200chisui(~chisui@200116b868b0580051414fea9b4eac83.dip.versatel-1u1.de) (Quit: Client closed)
2021-08-23 22:25:27 +0200 <fresheyeball> maerwald: actually what would it even be in my case? I just have 1 cabal file
2021-08-23 22:25:45 +0200 <maerwald> fresheyeball: package foo\n\tghc-options: -optPFOO
2021-08-23 22:25:48 +0200 <maerwald> or sth?
2021-08-23 22:25:53 +0200 <maerwald> you also need `packages: ./`
2021-08-23 22:26:44 +0200chisui(~chisui@200116b868b05800c65627e740591fd3.dip.versatel-1u1.de)
2021-08-23 22:26:45 +0200 <fresheyeball> ok so now cabal is not building it
2021-08-23 22:26:53 +0200 <fresheyeball> now cabal is not seeing that I set this in the cabal file
2021-08-23 22:26:57 +0200 <fresheyeball> it was before cabal.project
2021-08-23 22:27:00 +0200 <fresheyeball> I am confused
2021-08-23 22:27:04 +0200 <maerwald> too vague, links
2021-08-23 22:29:14 +0200 <geekosaur> -optP-DFOO perhaps? although I thinkk ghc itself accepts -DFOO
2021-08-23 22:29:59 +0200 <maerwald> yeah
2021-08-23 22:30:16 +0200 <maerwald> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/phases.html#ghc-flag--D%E2%9F%A8symbol%E2%9F%A9[=%E2%9F%A8value%E2%9F%A9]
2021-08-23 22:31:32 +0200 <fresheyeball> ok so sorta a red hering
2021-08-23 22:31:44 +0200 <fresheyeball> the cabal.project file actually has no effect on hls
2021-08-23 22:31:57 +0200 <fresheyeball> I figured out what was wrong with cabal, I just didn't import something
2021-08-23 22:32:16 +0200 <fresheyeball> but still hls is not picking up that I have cpp-options set in the cabal file
2021-08-23 22:32:43 +0200 <fresheyeball> http://ix.io/3wLR
2021-08-23 22:32:46 +0200 <fresheyeball> here is the cabal file
2021-08-23 22:33:39 +0200 <fresheyeball> here is the hie.yml http://ix.io/3wLT
2021-08-23 22:33:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 22:34:03 +0200 <fresheyeball> cabal.project http://ix.io/3wLS
2021-08-23 22:35:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 22:35:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 22:35:25 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 22:37:17 +0200abrantesasf(~abrantesa@2804:14d:b086:4b3c:2e56:dcff:fedb:62f)
2021-08-23 22:40:10 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-08-23 22:40:58 +0200immae(~immae@2a01:4f8:141:53e7::) (Ping timeout: 240 seconds)
2021-08-23 22:40:58 +0200JeHugawa(~jehugawa@2a01:4f9:c010:4649::1) (Ping timeout: 240 seconds)
2021-08-23 22:42:11 +0200JeHugawa(~jehugawa@2a01:4f9:c010:4649::1)
2021-08-23 22:42:23 +0200immae(~immae@2a01:4f8:141:53e7::)
2021-08-23 22:44:36 +0200 <maerwald> try to set it in cabal.project
2021-08-23 22:46:33 +0200 <fresheyeball> maerwald: how?
2021-08-23 22:46:40 +0200 <fresheyeball> https://cabal.readthedocs.io/en/latest/cabal-projectindex.html#cap-cabal.project%20fields
2021-08-23 22:46:45 +0200 <fresheyeball> I don't see it as an option
2021-08-23 22:47:04 +0200 <maerwald> fresheyeball: we described it earlier
2021-08-23 22:47:28 +0200 <maerwald> https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=ghc-options#package-configurationโ€ฆ
2021-08-23 22:47:46 +0200hseg(~gesh@IGLD-84-228-238-79.inter.net.il)
2021-08-23 22:49:23 +0200 <hseg> hi. have a type (of multisets) that can be given a Num instance, except that (*) requirs some constraints on tyvars. which forces me to constrain the entire instance. which locks me out of using linear operations on the type at types failing the constraint. advice?
2021-08-23 22:49:57 +0200 <hseg> (in particular, need (*) :: Monoid a => MSet a -> MSet a -> MSet a, but would like (+) :: MSet a -> MSet a -> MSet a)
2021-08-23 22:50:20 +0200 <glguy> You can use a different class/operator for the unconstrained + operation
2021-08-23 22:50:46 +0200 <fresheyeball> yay!
2021-08-23 22:50:48 +0200 <fresheyeball> that worked
2021-08-23 22:51:17 +0200 <hseg> yeah, but that's ugly and duplicates names
2021-08-23 22:51:29 +0200 <fresheyeball> http://ix.io/3wLY
2021-08-23 22:51:31 +0200 <fresheyeball> this did the trick
2021-08-23 22:51:36 +0200 <fresheyeball> now hls is working for test suites
2021-08-23 22:51:43 +0200 <fresheyeball> maerwald:++
2021-08-23 22:52:19 +0200 <glguy> hseg: perhaps, but you can't have different constraints for the different methods of Num, so you'll need a solution that isn't Num for that
2021-08-23 22:52:29 +0200 <hseg> shame
2021-08-23 22:52:56 +0200 <hseg> current solution is to just fmap (fromJust . getFirst) . ... . fmap (First . Just)
2021-08-23 22:53:41 +0200 <hseg> which is annoying, and since my underlying implementation uses Data.Map, cannot be turned into coercions
2021-08-23 22:54:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-08-23 22:56:16 +0200 <hseg> not to mention that this doesn't generalize well -- if I need to tag all the parameters to a function, lift a retagging, etc I need a new combinator
2021-08-23 22:56:24 +0200dsrt^(~dsrt@12.16.129.111)
2021-08-23 22:56:38 +0200 <hseg> unlike coerce, which I can fit to the usecase with judicious tyapps
2021-08-23 22:58:47 +0200 <dminuoso> hseg: By the way, did you make any progress with your tyfam errors last night?
2021-08-23 22:59:56 +0200 <hseg> y, reported, mpickering suggested it might be due to ANN interacting with binding groups https://gitlab.haskell.org/ghc/ghc/-/issues/20265
2021-08-23 23:02:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-08-23 23:02:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-08-23 23:02:17 +0200wroathe(~wroathe@user/wroathe)
2021-08-23 23:03:10 +0200elf_fortrez(~elf_fortr@adsl-72-50-4-39.prtc.net)
2021-08-23 23:03:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-08-23 23:03:29 +0200 <hseg> hm. could live with the retagging if I could write sth like retag @(MSet :.: MSet) @MSet :: (forall f. Monoid (f l) => MSet (MSet (f k)) -> MSet (f l)) -> MSet (MSet k) -> MSet l
2021-08-23 23:05:05 +0200d0ku(~d0ku@178.43.19.40.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds)
2021-08-23 23:05:27 +0200 <hseg> ... iow, want retag @f1 @f2 @f3 ... :: (forall f. Monoid (f r) => f1 (f x1) -> f2 (f x2) -> ... -> fn (f r)) -> f1 x1 -> f2 x2 -> ... fn r
2021-08-23 23:05:41 +0200acidjnk_new(~acidjnk@p200300d0c72b9556a59b812708dd2de4.dip0.t-ipconnect.de)
2021-08-23 23:06:08 +0200 <hseg> ... which might be doable with a combination of the van laarhoven trick, the printf trick, and a fundep
2021-08-23 23:06:17 +0200 <dminuoso> Interesting
2021-08-23 23:06:29 +0200retroid_(~retro@5ec19a54.skybroadband.com)
2021-08-23 23:09:11 +0200retro_(~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds)
2021-08-23 23:09:54 +0200 <hseg> ... actually printf=van laarhoven here
2021-08-23 23:11:14 +0200Hobbyboy(Hobbyboy@hobbyboy.co.uk) (Quit: The BNC has broken!)
2021-08-23 23:11:26 +0200Hobbyboy(Hobbyboy@hobbyboy.co.uk)
2021-08-23 23:12:10 +0200megaTherion(~therion@unix.io) (Ping timeout: 240 seconds)
2021-08-23 23:12:34 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 240 seconds)
2021-08-23 23:12:34 +0200kawzeg(kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (Ping timeout: 240 seconds)
2021-08-23 23:12:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f) (Remote host closed the connection)
2021-08-23 23:12:58 +0200jocke-l(jocke-l@a.x0.is) (Ping timeout: 240 seconds)
2021-08-23 23:13:45 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2021-08-23 23:13:49 +0200kawzeg(kawzeg@2a01:7e01::f03c:92ff:fee2:ec34)
2021-08-23 23:15:03 +0200jocke-l(jocke-l@a.x0.is)
2021-08-23 23:18:55 +0200batch12(~user@192.152.118.97)
2021-08-23 23:20:17 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-08-23 23:23:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:71e9:72b:1860:cb0f)
2021-08-23 23:23:42 +0200Guest86(~Guest86@68.233.176.29)
2021-08-23 23:23:58 +0200 <Guest86> is this the correct place to get support for haskell vscode extension?
2021-08-23 23:25:04 +0200 <batch12> How do I put a constraint on a type-level list?
2021-08-23 23:25:04 +0200 <batch12> I have: class Thing a
2021-08-23 23:25:04 +0200 <batch12> and a GADT: data Carrier (is :: [i])
2021-08-23 23:25:04 +0200 <batch12> I know I can say: data Carrier (is :: [Nat])
2021-08-23 23:25:07 +0200 <batch12> But I want to say that any i that is allowed to be in that type-level list, must have a Thing instance.
2021-08-23 23:25:11 +0200 <batch12> Something like: data Carrier (is :: [forall i => Thing i])
2021-08-23 23:25:14 +0200 <batch12> Any idea about how to do this?
2021-08-23 23:26:19 +0200 <dminuoso> batch12: newtype it
2021-08-23 23:26:34 +0200jtomas_(~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-08-23 23:26:36 +0200 <dminuoso> Or use a GADT
2021-08-23 23:27:06 +0200 <dminuoso> % data IsShow where Show a => a -> IsShow
2021-08-23 23:27:06 +0200 <yahb> dminuoso: ; <interactive>:15:24: error: parse error on input `a'
2021-08-23 23:27:13 +0200 <dminuoso> % data IsShow where MkShow :: Show a => a -> IsShow
2021-08-23 23:27:14 +0200 <yahb> dminuoso:
2021-08-23 23:27:47 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 240 seconds)
2021-08-23 23:28:53 +0200 <batch12> So I can do that, and that's what I would do at the value level. But why do I need to do that here? It's already a list of types holding any type of kind * (so a heterogeneous list)
2021-08-23 23:29:14 +0200megaTherion(~therion@coruscant.unix.io)
2021-08-23 23:29:44 +0200 <batch12> It feels like an existential type is solving an entirely different problem
2021-08-23 23:30:05 +0200ubert(~Thunderbi@178.165.201.23.wireless.dyn.drei.com) (Ping timeout: 250 seconds)
2021-08-23 23:31:28 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
2021-08-23 23:32:39 +0200 <dminuoso> mmm
2021-08-23 23:33:02 +0200 <dminuoso> % type T = '[Show i => i]
2021-08-23 23:33:02 +0200 <yahb> dminuoso: ; <interactive>:17:17: error: Not in scope: type variable `i'; <interactive>:17:22: error: Not in scope: type variable `i'
2021-08-23 23:33:06 +0200 <dminuoso> % type T = '[forall i. Show i => i]
2021-08-23 23:33:07 +0200 <yahb> dminuoso: ; <interactive>:18:1: error:; * Illegal polymorphic type: forall i. Show i => i; GHC doesn't yet support impredicative polymorphism; * In the type synonym declaration for `T'
2021-08-23 23:33:16 +0200 <dminuoso> batch12: ^- here. impredicativity is the issue
2021-08-23 23:33:41 +0200 <dminuoso> being in a type list doesnt help, as under the hood its all TypeInType
2021-08-23 23:33:54 +0200 <hseg> btw, ghci has stopped listing loaded modules recently. anyone know what's up with that?
2021-08-23 23:34:43 +0200 <dminuoso> hseg: http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/9.0.1-notes.html#ghci
2021-08-23 23:34:56 +0200 <sm> a long awaited ux fix
2021-08-23 23:35:29 +0200 <tomsmeding> hseg: :set prompt "%s> "
2021-08-23 23:35:45 +0200 <dminuoso> batch12: With quick look (9.2?), you should be able to use that in the future.
2021-08-23 23:35:52 +0200 <dminuoso> batch12: and mind you, an existential is just an encoding of the same fact.
2021-08-23 23:35:54 +0200 <hseg> ok, fair, has annoyed me in the past
2021-08-23 23:36:11 +0200 <hseg> but is there a way to list all loaded modules, then?
2021-08-23 23:37:17 +0200 <dminuoso> % :show imports -- hseg
2021-08-23 23:37:18 +0200 <yahb> dminuoso: syntax: :show [args | prog | editor | stop | imports | modules | bindings | linker | breaks | context | packages | paths | language | targets]
2021-08-23 23:37:20 +0200 <dminuoso> % :show imports
2021-08-23 23:37:21 +0200 <yahb> dminuoso: import Control.Applicative; import Control.Arrow; import Control.Concurrent; import Control.Concurrent.Chan; import Control.Concurrent.MVar; import Control.Concurrent.STM; import Control.Concurrent.STM.TChan; import Control.Concurrent.STM.TVar; import Control.Comonad.Store; import Control.Exception; import Control.Exception.Lens; import Control.Monad; import Control.Monad.Cont; import Control.Monad.Except; impo
2021-08-23 23:37:32 +0200 <hseg> awesome, thanks
2021-08-23 23:37:44 +0200 <dminuoso> hseg: Try using the GHC manual more! It's superb :)
2021-08-23 23:37:57 +0200 <dminuoso> One of the few manuals that are really well maintained
2021-08-23 23:38:03 +0200 <batch12> @dminuoso Thanks. Yeah, the variant with the constraint there leads to impredicative types. But this problem doesn't have anything to do with impredicativity. Given that you can write '[Nat] there, which is a kind of constraint already, I don't see why having a type class constraint would be any different?
2021-08-23 23:38:03 +0200 <lambdabot> Unknown command, try @list
2021-08-23 23:38:12 +0200 <hseg> usually do! didn't find this one though
2021-08-23 23:38:28 +0200 <dminuoso> batch12: The problem has nothing to do with the constraint, it has to do with the quantification.
2021-08-23 23:38:37 +0200 <dminuoso> Consider:
2021-08-23 23:38:43 +0200 <dminuoso> [forall a. a]
2021-08-23 23:38:43 +0200 <batch12> dminuoso: but the quantification always exists even with [Nat]
2021-08-23 23:38:45 +0200elf_fortrez(~elf_fortr@adsl-72-50-4-39.prtc.net) (Quit: Client closed)
2021-08-23 23:38:53 +0200 <dminuoso> No, Nat is not quantified.
2021-08-23 23:39:18 +0200 <batch12> data Carrier (is :: [Nat]); is allowing for a type list that contains any type of kind Nat
2021-08-23 23:39:27 +0200pbrisbin(~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds)
2021-08-23 23:39:37 +0200 <dminuoso> batch12: The key thing here is that given `type T = [forall a. a]`, with impredicativity you are allowed to instantiate `a` at T.
2021-08-23 23:39:59 +0200roboguy__(~roboguy_@2605:a601:afe7:9f00:20c9:56f0:4ff9:be7b)
2021-08-23 23:40:08 +0200elf_fortrez(~elf_fortr@adsl-72-50-6-134.prtc.net)
2021-08-23 23:40:13 +0200 <dminuoso> batch12: but with `data All where All :: a -> All`, [All] no longer has that self referential property
2021-08-23 23:40:41 +0200 <batch12> That's at the type level, but this is a kind annotation instead
2021-08-23 23:40:55 +0200 <dminuoso> With TypeInType there's no difference
2021-08-23 23:41:03 +0200 <dminuoso> We no longer have kinds
2021-08-23 23:41:34 +0200 <dminuoso> 23:39:18 batch12 | data Carrier (is :: [Nat]); is allowing for a type list that contains any type of kind Nat
2021-08-23 23:41:41 +0200 <dminuoso> Yes, there is still no quantification on Nat.
2021-08-23 23:41:52 +0200roboguy__(~roboguy_@2605:a601:afe7:9f00:20c9:56f0:4ff9:be7b) (Client Quit)
2021-08-23 23:42:56 +0200 <dminuoso> batch12: TypeInType is on the brink of deprecation I think, because under the hood its been TypeInType for a few years even!
2021-08-23 23:43:05 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:5b4:1bf2:3392:8995) (Ping timeout: 250 seconds)
2021-08-23 23:43:16 +0200 <batch12> Right, it's deprecated for PolyKinds already
2021-08-23 23:43:39 +0200 <batch12> But I don't see why quantification is needed here at all. There should be some other approach that avoids this issue
2021-08-23 23:43:45 +0200 <dminuoso> you want a constraint
2021-08-23 23:43:57 +0200 <dminuoso> Which type variable do you want a constraint on?
2021-08-23 23:44:13 +0200 <dminuoso> Or do you want a nullary constraint like
2021-08-23 23:44:17 +0200 <elf_fortrez> Turkey?
2021-08-23 23:45:04 +0200 <batch12> dminuoso: The answer is probably to write a type family that takes the list and provides a Constraint which enforces that they're all members of this type class
2021-08-23 23:45:15 +0200 <dminuoso> batch12: Ohh hold on I think I misunderstood what you're trying to do.
2021-08-23 23:45:38 +0200lavaman(~lavaman@98.38.249.169)
2021-08-23 23:45:56 +0200 <dminuoso> batch12: Wouldn't that be a lifted GADT?
2021-08-23 23:46:07 +0200 <dminuoso> Not sure whether that is even a thing
2021-08-23 23:46:26 +0200 <dminuoso> % :set -XDataKinds
2021-08-23 23:46:26 +0200 <yahb> dminuoso:
2021-08-23 23:46:29 +0200 <dminuoso> % :set -XGADTs
2021-08-23 23:46:29 +0200 <yahb> dminuoso:
2021-08-23 23:46:45 +0200 <elf_fortrez> kind is child in germa
2021-08-23 23:46:56 +0200 <elf_fortrez> German
2021-08-23 23:46:57 +0200 <dminuoso> % data F where MkF :: Num a => a -> F
2021-08-23 23:46:57 +0200 <yahb> dminuoso:
2021-08-23 23:47:07 +0200 <elf_fortrez> Therefore Kinder
2021-08-23 23:47:11 +0200 <dminuoso> % :k F
2021-08-23 23:47:11 +0200 <yahb> dminuoso: *
2021-08-23 23:47:17 +0200 <dminuoso> % :k MkF
2021-08-23 23:47:17 +0200 <yahb> dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkF' cannot be used here (it has an unpromotable context `Num a'); * In the type `MkF'
2021-08-23 23:49:22 +0200 <monochrom> I feel left out that all #haskell questions are now type-level programming questions.
2021-08-23 23:49:45 +0200 <dminuoso> % data G = forall a. Num a => MkG
2021-08-23 23:49:45 +0200 <yahb> dminuoso: ; <interactive>:14:10: error:; * Could not deduce (Num a0); from the context: Num a; bound by the type of the constructor `MkG':; forall a. Num a => G; at <interactive>:14:10-31; The type variable `a0' is ambiguous; * In the ambiguity check for `MkG'; To defer the ambiguity check to use sites, enable AllowAmbiguousTypes; In the definition of
2021-08-23 23:49:50 +0200 <monochrom> (To clarify, I haven't studied or practiced that.)
2021-08-23 23:49:56 +0200 <dminuoso> Uh what?
2021-08-23 23:50:01 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-08-23 23:50:03 +0200 <dminuoso> % :q
2021-08-23 23:50:03 +0200 <yahb> dminuoso:
2021-08-23 23:50:05 +0200 <dminuoso> % data G = forall a. Num a => MkG
2021-08-23 23:50:06 +0200 <yahb> dminuoso: ; <interactive>:1:10: error:; * Could not deduce (Num a0); from the context: Num a; bound by the type of the constructor `MkG':; forall a. Num a => G; at <interactive>:1:10-31; The type variable `a0' is ambiguous; * In the ambiguity check for `MkG'; To defer the ambiguity check to use sites, enable AllowAmbiguousTypes; In the definition of d
2021-08-23 23:50:34 +0200 <dminuoso> Oh
2021-08-23 23:50:36 +0200 <dminuoso> % data G = forall a. Num a => MkG a
2021-08-23 23:50:37 +0200 <yahb> dminuoso:
2021-08-23 23:50:40 +0200 <dminuoso> % :k MkG
2021-08-23 23:50:40 +0200 <yahb> dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkG' cannot be used here (it has an unpromotable context `Num a'); * In the type `MkG'
2021-08-23 23:50:54 +0200 <dminuoso> % class Foo (i :: k)
2021-08-23 23:50:54 +0200 <yahb> dminuoso:
2021-08-23 23:50:58 +0200 <dminuoso> % data G = forall a. Foo a => MkG a
2021-08-23 23:50:59 +0200 <yahb> dminuoso:
2021-08-23 23:51:01 +0200 <dminuoso> % :k MkG
2021-08-23 23:51:02 +0200 <yahb> dminuoso: ; <interactive>:1:1: error:; * Data constructor `MkG' cannot be used here (it has an unpromotable context `Foo a'); * In the type `MkG'
2021-08-23 23:51:06 +0200 <monochrom> Or I should be happy that the reason there are no more value-level programming questions is because everyone is already an expert in Haskell value-level programming. :)
2021-08-23 23:51:20 +0200 <dminuoso> batch12: No idea. But you'd need this.
2021-08-23 23:51:37 +0200 <dminuoso> batch12: Or, you can just wait for quick look in GHC 9.2, flip on impredicativity and enjoy the rest.
2021-08-23 23:51:52 +0200 <hseg> monochrom: what kind of questions are you missing?
2021-08-23 23:52:06 +0200 <monochrom> Value-level programming questions.
2021-08-23 23:52:32 +0200 <monochrom> "How do I traverse a list at the value level only?"
2021-08-23 23:52:56 +0200 <dminuoso> https://aphyr.com/posts/342-typing-the-technical-interview
2021-08-23 23:53:04 +0200 <dminuoso> monochrom: You knew this was coming, didn't you?
2021-08-23 23:53:05 +0200 <hseg> oh that's a classic
2021-08-23 23:54:52 +0200 <monochrom> I enjoyed that one as a joke. Didn't think of it as prophecy though. Well, I guess I didn't have foresight.
2021-08-23 23:55:48 +0200 <monochrom> But yeah some of that could be improved by type families today.
2021-08-23 23:56:41 +0200 <monochrom> On second thought, I didn't study type-level programming, I don't actually know whether type families would help that one.
2021-08-23 23:58:23 +0200 <monochrom> And then you can also criticize me for turning down term-level questions when they actually come up, such as yesterday, with "I can't believe that your prof's course material didn't show examples".