2023/08/11

2023-08-11 00:01:40 +0200sm(~sm@plaintextaccounting/sm)
2023-08-11 00:04:05 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-08-11 00:04:55 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
2023-08-11 00:08:50 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-08-11 00:09:42 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-08-11 00:12:32 +0200hammond(proscan@gateway02.insomnia247.nl) (Changing host)
2023-08-11 00:12:32 +0200hammond(proscan@user/hammond2)
2023-08-11 00:13:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 00:14:14 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-08-11 00:14:32 +0200grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
2023-08-11 00:14:43 +0200zeenk(~zeenk@2a02:2f04:a300:2a00::7fe) (Quit: Konversation terminated!)
2023-08-11 00:16:32 +0200victor(mirc-rockc@179.152.251.228)
2023-08-11 00:16:39 +0200victor(mirc-rockc@179.152.251.228) ()
2023-08-11 00:24:42 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
2023-08-11 00:25:03 +0200acidjnk(~acidjnk@p200300d6e7072f86688b70278123b2bd.dip0.t-ipconnect.de)
2023-08-11 00:27:45 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-11 00:37:29 +0200neuroevolutus(~neuroevol@2606:2e00:8007:1::a31e)
2023-08-11 00:38:57 +0200Square(~Square@user/square)
2023-08-11 00:40:18 +0200michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2023-08-11 00:41:15 +0200artem(~artem@38.42.227.237)
2023-08-11 00:41:15 +0200ulysses4ever(~artem@38.42.227.237) (Read error: Connection reset by peer)
2023-08-11 00:42:14 +0200ulysses4ever(~artem@38.42.227.237)
2023-08-11 00:42:14 +0200artem(~artem@38.42.227.237) (Read error: Connection reset by peer)
2023-08-11 00:43:47 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 00:45:30 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-11 00:48:47 +0200grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2023-08-11 01:05:59 +0200Guest|93(~Guest|93@157.100.171.44)
2023-08-11 01:06:26 +0200Guest|93(~Guest|93@157.100.171.44) (Client Quit)
2023-08-11 01:09:01 +0200Nosrep(~Nosrep@user/nosrep) (Remote host closed the connection)
2023-08-11 01:09:36 +0200mauke_(~mauke@user/mauke)
2023-08-11 01:09:58 +0200Nosrep(~Nosrep@user/nosrep)
2023-08-11 01:11:09 +0200mauke(~mauke@user/mauke) (Ping timeout: 246 seconds)
2023-08-11 01:11:09 +0200mauke_mauke
2023-08-11 01:14:21 +0200pavonia(~user@user/siracusa)
2023-08-11 01:21:02 +0200neuroevolutus(~neuroevol@2606:2e00:8007:1::a31e) (Quit: Client closed)
2023-08-11 01:22:13 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-11 01:26:04 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-11 01:26:54 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-08-11 01:35:16 +0200mima(~mmh@net-93-67-213-210.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
2023-08-11 01:35:29 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-08-11 01:36:45 +0200notzmv(~zmv@user/notzmv)
2023-08-11 01:38:34 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-08-11 01:40:00 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2023-08-11 01:42:06 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-08-11 01:48:31 +0200mmhat(~mmh@p200300f1c73a3bafee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.2)
2023-08-11 01:48:40 +0200TheCatCollective(NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow)
2023-08-11 01:53:32 +0200jobhdez(~jobhdez@2601:601:d00:f30::c0ac)
2023-08-11 01:54:15 +0200shapr(~user@2600:1700:c640:3100:af84:e012:3f8e:af18) (Ping timeout: 245 seconds)
2023-08-11 01:54:57 +0200 <jobhdez> hello you all; hope all is well. is servant the way to go if i want to build restful apis, full stack web apps with a js frontend and haskell backend?
2023-08-11 02:01:57 +0200 <jackdk> The `servant-*` family of libraries are excellent and stable, and especially good for APIs. I dunno how good they are if you're doing more traditional webapp stuff
2023-08-11 02:02:58 +0200 <jackdk> https://bradparker.com/posts/servant-types jobhdez I like this article which steps through all the typelevel stuff which makes it work
2023-08-11 02:03:37 +0200 <hpc> a webapp actually is just an api, nowadays
2023-08-11 02:03:44 +0200 <mauke> nothing restful about it, though
2023-08-11 02:03:52 +0200 <hpc> so basically just use servant and your backend is done, with some static-hosted thingy for the frontend
2023-08-11 02:03:56 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-08-11 02:05:28 +0200califax(~califax@user/califx)
2023-08-11 02:06:51 +0200 <jobhdez> oh ok, thanks. thanks for the article jackdk
2023-08-11 02:07:28 +0200 <jobhdez> hows the haskell job market for juniors in the US? I want to get haskell job
2023-08-11 02:23:54 +0200artem(~artem@38.42.227.237)
2023-08-11 02:23:54 +0200ulysses4ever(~artem@38.42.227.237) (Read error: Connection reset by peer)
2023-08-11 02:26:55 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
2023-08-11 02:34:33 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-08-11 02:50:15 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 244 seconds)
2023-08-11 02:54:35 +0200phma(~phma@host-67-44-208-159.hnremote.net) (Read error: Connection reset by peer)
2023-08-11 02:55:00 +0200phma(~phma@host-67-44-208-159.hnremote.net)
2023-08-11 02:58:25 +0200[_________](~oos95GWG@user/oos95GWG) (Ping timeout: 245 seconds)
2023-08-11 03:00:23 +0200[_________](~oos95GWG@user/oos95GWG)
2023-08-11 03:01:14 +0200TheCatCollective(NyaaTheKit@user/calculuscat)
2023-08-11 03:10:04 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-11 03:10:04 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-11 03:10:04 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 03:10:32 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-08-11 03:11:28 +0200razetime(~quassel@117.254.37.226)
2023-08-11 03:14:24 +0200phma(~phma@host-67-44-208-159.hnremote.net) (Read error: Connection reset by peer)
2023-08-11 03:14:49 +0200phma(phma@2001:5b0:210f:78:f62c:b1a1:2992:8d3d)
2023-08-11 03:16:39 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-08-11 03:35:47 +0200[_][itchyjunk]
2023-08-11 03:37:40 +0200phma(phma@2001:5b0:210f:78:f62c:b1a1:2992:8d3d) (Ping timeout: 256 seconds)
2023-08-11 03:38:04 +0200phma(~phma@host-67-44-208-159.hnremote.net)
2023-08-11 03:39:32 +0200 <EvanR> hpc, an API that calls out to ruby on rails?
2023-08-11 03:42:31 +0200phma(~phma@host-67-44-208-159.hnremote.net) (Ping timeout: 245 seconds)
2023-08-11 03:45:22 +0200phma(phma@2001:5b0:210f:78:f62c:b1a1:2992:8d3d)
2023-08-11 03:46:25 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
2023-08-11 03:51:11 +0200khumba(~khumba@user/khumba)
2023-08-11 03:51:58 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:aca6:66d7:5365:1cde)
2023-08-11 03:52:58 +0200bontaq(~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 256 seconds)
2023-08-11 03:56:28 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:aca6:66d7:5365:1cde) (Ping timeout: 248 seconds)
2023-08-11 03:59:54 +0200hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2023-08-11 04:11:58 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-08-11 04:15:27 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-11 04:21:55 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-08-11 04:30:56 +0200td_(~td@i5387092A.versanet.de) (Ping timeout: 256 seconds)
2023-08-11 04:31:01 +0200Square2(~Square4@user/square)
2023-08-11 04:32:33 +0200Square(~Square@user/square) (Ping timeout: 246 seconds)
2023-08-11 04:32:34 +0200td_(~td@i53870906.versanet.de)
2023-08-11 04:35:20 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-08-11 04:40:36 +0200ursa-major(~ursa-majo@static-198-44-128-152.cust.tzulo.com) (Ping timeout: 246 seconds)
2023-08-11 04:42:42 +0200ursa-major(~ursa-majo@37.19.210.24)
2023-08-11 04:45:09 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-11 04:45:09 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-11 04:45:09 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 04:45:10 +0200jero98772(~jero98772@2800:484:1d84:300::3)
2023-08-11 04:48:35 +0200codaraxis(~codaraxis@user/codaraxis)
2023-08-11 04:49:06 +0200grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
2023-08-11 04:50:17 +0200jero98772(~jero98772@2800:484:1d84:300::3) (Ping timeout: 260 seconds)
2023-08-11 04:55:52 +0200ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 256 seconds)
2023-08-11 04:56:00 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-08-11 04:56:18 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-08-11 04:56:18 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-08-11 04:56:18 +0200finn_elijaFinnElija
2023-08-11 04:57:34 +0200ddellacosta(~ddellacos@146.70.165.10)
2023-08-11 04:58:32 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-08-11 04:58:55 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2023-08-11 05:00:40 +0200ursa-major(~ursa-majo@37.19.210.24) (Quit: WeeChat 4.0.2)
2023-08-11 05:05:47 +0200ursa-major(~ursa-majo@37.19.210.10)
2023-08-11 05:06:11 +0200phma(phma@2001:5b0:210f:78:f62c:b1a1:2992:8d3d) (Read error: Connection reset by peer)
2023-08-11 05:06:34 +0200phma(~phma@host-67-44-208-159.hnremote.net)
2023-08-11 05:06:55 +0200bob(~user@user/bob)
2023-08-11 05:11:55 +0200zer0bitz_(~zer0bitz@user/zer0bitz)
2023-08-11 05:12:36 +0200barakk_(~barakk@2a0d:6fc2:68c0:8e00:783:8518:13a4:582f)
2023-08-11 05:12:43 +0200billchenchina-(~billchenc@103.152.35.21)
2023-08-11 05:13:25 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Remote host closed the connection)
2023-08-11 05:13:25 +0200barakk(~barakk@2a0d:6fc2:68c0:8e00:fbc6:1d6:b64a:3503) (Read error: Connection reset by peer)
2023-08-11 05:13:25 +0200Square2(~Square4@user/square) (Remote host closed the connection)
2023-08-11 05:13:40 +0200khumba(~khumba@user/khumba) ()
2023-08-11 05:14:00 +0200Square2(~Square4@user/square)
2023-08-11 05:15:08 +0200zer0bitz(~zer0bitz@user/zer0bitz) (Ping timeout: 256 seconds)
2023-08-11 05:17:22 +0200aforemny(~aforemny@i59F516C7.versanet.de)
2023-08-11 05:18:17 +0200aforemny_(~aforemny@2001:9e8:6cc8:8b00:76c5:2645:7442:f0e7) (Ping timeout: 260 seconds)
2023-08-11 05:18:37 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-08-11 05:26:18 +0200ursa-major(~ursa-majo@37.19.210.10) (Ping timeout: 248 seconds)
2023-08-11 05:26:23 +0200ursa-maj1(~ursa-majo@37.19.210.24)
2023-08-11 05:28:29 +0200jero98772(~jero98772@190.158.28.114)
2023-08-11 05:29:12 +0200thegeekinside(~thegeekin@189.180.79.225) (Ping timeout: 252 seconds)
2023-08-11 05:31:37 +0200ursa-maj1(~ursa-majo@37.19.210.24) (Ping timeout: 245 seconds)
2023-08-11 05:33:44 +0200ursa-major(~ursa-majo@136.29.34.240)
2023-08-11 05:37:10 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-11 05:38:08 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-08-11 05:41:32 +0200merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2023-08-11 05:43:45 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-11 05:43:45 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-11 05:43:45 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 05:44:19 +0200danza_(~francesco@151.44.134.29)
2023-08-11 05:59:13 +0200flounders(~flounders@24.246.133.1) (Ping timeout: 246 seconds)
2023-08-11 06:02:08 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-08-11 06:02:20 +0200danza_(~francesco@151.44.134.29) (Ping timeout: 248 seconds)
2023-08-11 06:06:19 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-08-11 06:12:51 +0200wroathe(~wroathe@user/wroathe) (Quit: Reconnecting)
2023-08-11 06:13:04 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-11 06:13:04 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-11 06:13:04 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 06:19:24 +0200razetime(~quassel@117.254.37.226) (Ping timeout: 248 seconds)
2023-08-11 06:22:04 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2023-08-11 06:22:40 +0200danza_(~francesco@151.44.134.29)
2023-08-11 06:24:33 +0200jero98772(~jero98772@190.158.28.114) (Ping timeout: 246 seconds)
2023-08-11 06:31:54 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-08-11 06:32:29 +0200jobhdez(~jobhdez@2601:601:d00:f30::c0ac) (Quit: Client closed)
2023-08-11 06:36:28 +0200danza_(~francesco@151.44.134.29) (Ping timeout: 248 seconds)
2023-08-11 06:40:08 +0200vglfr(~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 256 seconds)
2023-08-11 06:40:57 +0200vglfr(~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
2023-08-11 06:43:16 +0200danse-nr3(~francesco@151.44.134.29)
2023-08-11 06:43:45 +0200michalz(~michalz@185.246.207.221)
2023-08-11 06:48:55 +0200xff0x(~xff0x@2405:6580:b080:900:c1c2:633:c03:e500) (Ping timeout: 240 seconds)
2023-08-11 06:49:19 +0200xff0x(~xff0x@178.255.149.135)
2023-08-11 06:51:36 +0200grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 260 seconds)
2023-08-11 06:54:12 +0200Lycurgus(~juan@user/Lycurgus)
2023-08-11 06:57:37 +0200 <danse-nr3> good morning #haskell
2023-08-11 06:58:16 +0200 <Lycurgus> yello danse-nr3
2023-08-11 06:59:28 +0200xff0x(~xff0x@178.255.149.135) (Ping timeout: 250 seconds)
2023-08-11 07:01:12 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Tschüss)
2023-08-11 07:01:32 +0200xff0x(~xff0x@2405:6580:b080:900:c1c2:633:c03:e500)
2023-08-11 07:02:53 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-08-11 07:03:00 +0200razetime(~quassel@117.254.37.226)
2023-08-11 07:10:11 +0200danse-nr3(~francesco@151.44.134.29) (Read error: Connection reset by peer)
2023-08-11 07:10:34 +0200danse-nr3(~francesco@151.44.216.122)
2023-08-11 07:12:51 +0200thegeekinside(~thegeekin@189.180.79.225)
2023-08-11 07:13:35 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 07:13:36 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 07:13:36 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 07:19:27 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-08-11 07:27:56 +0200barakk_(~barakk@2a0d:6fc2:68c0:8e00:783:8518:13a4:582f) (Quit: Leaving)
2023-08-11 07:28:51 +0200codaraxis__(~codaraxis@user/codaraxis)
2023-08-11 07:29:52 +0200raym(~ray@user/raym) (Quit: leaving)
2023-08-11 07:30:20 +0200razetime(~quassel@117.254.37.226) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-08-11 07:30:42 +0200codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
2023-08-11 07:31:44 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-11 07:36:50 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-08-11 07:38:54 +0200raym(~ray@user/raym)
2023-08-11 07:49:00 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2023-08-11 07:50:49 +0200Square2Square
2023-08-11 07:51:06 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-08-11 07:59:52 +0200trev(~trev@user/trev)
2023-08-11 08:00:04 +0200titibandit(~titibandi@user/titibandit)
2023-08-11 08:02:15 +0200sm(~sm@plaintextaccounting/sm)
2023-08-11 08:04:09 +0200trev(~trev@user/trev) (Ping timeout: 246 seconds)
2023-08-11 08:09:34 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk)
2023-08-11 08:19:05 +0200dobblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 08:19:05 +0200dobblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 08:19:05 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-08-11 08:19:18 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
2023-08-11 08:19:34 +0200dobblegodibblego
2023-08-11 08:28:58 +0200califax(~califax@user/califx) (Ping timeout: 240 seconds)
2023-08-11 08:29:50 +0200califax(~califax@user/califx)
2023-08-11 08:31:17 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Remote host closed the connection)
2023-08-11 08:31:40 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk)
2023-08-11 08:32:20 +0200thegeekinside(~thegeekin@189.180.79.225) (Ping timeout: 256 seconds)
2023-08-11 08:36:21 +0200thegeekinside(~thegeekin@189.180.79.225)
2023-08-11 08:41:48 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:795b:2fff:e578:2af)
2023-08-11 08:43:56 +0200danse-nr3(~francesco@151.44.216.122) (Ping timeout: 248 seconds)
2023-08-11 08:46:32 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-08-11 08:46:41 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-08-11 08:53:38 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-08-11 08:54:00 +0200dobblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 08:54:00 +0200dobblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 08:54:00 +0200dobblego(~dibblego@haskell/developer/dibblego)
2023-08-11 08:54:05 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds)
2023-08-11 08:54:41 +0200dobblegodibblego
2023-08-11 08:58:11 +0200danse-nr3(~francesco@151.44.216.122)
2023-08-11 09:01:00 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 246 seconds)
2023-08-11 09:01:12 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-08-11 09:03:14 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-11 09:04:21 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 09:04:21 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 09:04:21 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 09:06:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 09:08:13 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk)
2023-08-11 09:09:55 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2023-08-11 09:12:24 +0200Wojciech_K(~Wojciech_@maluch.mikr.us) (Ping timeout: 246 seconds)
2023-08-11 09:12:57 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 09:12:57 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 09:12:57 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 09:15:59 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-11 09:16:36 +0200libertyprime(~libertypr@203.96.203.44)
2023-08-11 09:17:47 +0200dibblego(~dibblego@haskell/developer/dibblego) (Excess Flood)
2023-08-11 09:19:17 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Remote host closed the connection)
2023-08-11 09:20:44 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2023-08-11 09:23:06 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 09:23:06 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 09:23:06 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 09:25:00 +0200vglfr(~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Ping timeout: 248 seconds)
2023-08-11 09:25:47 +0200vglfr(~vglfr@145.224.100.231)
2023-08-11 09:32:35 +0200mmhat(~mmh@p200300f1c73a3bafee086bfffe095315.dip0.t-ipconnect.de)
2023-08-11 09:32:35 +0200libertyprime(~libertypr@203.96.203.44) (Quit: leaving)
2023-08-11 09:38:37 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-11 09:39:38 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 09:40:12 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
2023-08-11 09:41:32 +0200thegeekinside(~thegeekin@189.180.79.225) (Ping timeout: 250 seconds)
2023-08-11 09:43:17 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 09:43:18 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 09:43:18 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 09:43:20 +0200forell(~forell@user/forell) (Quit: ZNC - https://znc.in)
2023-08-11 09:44:13 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-11 09:44:37 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Remote host closed the connection)
2023-08-11 09:45:40 +0200forell(~forell@user/forell)
2023-08-11 09:45:47 +0200mima(~mmh@net-93-67-213-210.cust.vodafonedsl.it)
2023-08-11 09:46:36 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-11 09:49:31 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 246 seconds)
2023-08-11 09:50:32 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
2023-08-11 09:53:14 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-08-11 09:53:26 +0200jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-08-11 09:53:31 +0200libertyprime(~libertypr@203.96.203.44)
2023-08-11 09:55:10 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-08-11 09:56:04 +0200chele(~chele@user/chele)
2023-08-11 09:57:28 +0200CiaoSen(~Jura@2a05:5800:2d1:7200:664b:f0ff:fe37:9ef)
2023-08-11 09:57:49 +0200jtza8(~user@165.255.137.178)
2023-08-11 10:00:42 +0200zeenk(~zeenk@2a02:2f04:a300:2a00::7fe)
2023-08-11 10:03:33 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-08-11 10:06:25 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-11 10:07:44 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 10:07:44 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 10:07:44 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 10:10:32 +0200ft(~ft@p3e9bcd02.dip0.t-ipconnect.de) (Quit: leaving)
2023-08-11 10:10:57 +0200sm(~sm@plaintextaccounting/sm)
2023-08-11 10:11:13 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-08-11 10:26:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 10:28:37 +0200vglfr(~vglfr@145.224.100.231) (Ping timeout: 260 seconds)
2023-08-11 10:30:04 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
2023-08-11 10:30:32 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 10:30:33 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 10:30:33 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 10:31:08 +0200mima(~mmh@net-93-67-213-210.cust.vodafonedsl.it) (Ping timeout: 248 seconds)
2023-08-11 10:35:10 +0200vglfr(~vglfr@2a0d:3344:148d:7a00:ece5:978b:e3a7:acd2)
2023-08-11 10:38:57 +0200gehmehgeh(~user@user/gehmehgeh)
2023-08-11 10:39:47 +0200cfricke(~cfricke@user/cfricke)
2023-08-11 10:40:33 +0200phma(~phma@host-67-44-208-159.hnremote.net) (Read error: Connection reset by peer)
2023-08-11 10:40:57 +0200phma(phma@2001:5b0:210f:78:f62c:b1a1:2992:8d3d)
2023-08-11 10:46:50 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2023-08-11 10:48:08 +0200dibblego(~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
2023-08-11 10:52:36 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 10:52:36 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 10:52:36 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 10:52:58 +0200mima(~mmh@net-93-67-196-104.cust.vodafonedsl.it)
2023-08-11 10:57:47 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
2023-08-11 10:58:02 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 10:58:02 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 10:58:03 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 11:02:27 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 260 seconds)
2023-08-11 11:05:21 +0200Pixi`Pixi
2023-08-11 11:05:26 +0200gugu256(~gugu256@131.87.95.79.rev.sfr.net)
2023-08-11 11:06:47 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-08-11 11:11:00 +0200danse-nr3_(~francesco@151.44.221.10)
2023-08-11 11:11:01 +0200danse-nr3(~francesco@151.44.216.122) (Read error: Connection reset by peer)
2023-08-11 11:11:43 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:aca6:66d7:5365:1cde)
2023-08-11 11:11:55 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 11:11:55 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 11:11:55 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 11:12:06 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2023-08-11 11:15:56 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:aca6:66d7:5365:1cde) (Ping timeout: 248 seconds)
2023-08-11 11:16:27 +0200mc47(~mc47@xmonad/TheMC47)
2023-08-11 11:17:38 +0200mima(~mmh@net-93-67-196-104.cust.vodafonedsl.it) (Ping timeout: 246 seconds)
2023-08-11 11:19:48 +0200mima(~mmh@net-93-148-97-15.cust.dsl.teletu.it)
2023-08-11 11:24:01 +0200fendor(~fendor@2a02:8388:1640:be00:b586:6c06:a58:19a3)
2023-08-11 11:25:34 +0200cfricke(~cfricke@user/cfricke)
2023-08-11 11:32:52 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 245 seconds)
2023-08-11 11:35:22 +0200nick4(~nick@ip98-162-147-230.pn.at.cox.net) (Ping timeout: 256 seconds)
2023-08-11 11:35:58 +0200libertyprime(~libertypr@203.96.203.44) (Quit: leaving)
2023-08-11 11:37:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 11:38:51 +0200acidjnk(~acidjnk@p200300d6e7072f86688b70278123b2bd.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-08-11 11:43:14 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 11:46:17 +0200cfricke(~cfricke@user/cfricke)
2023-08-11 11:51:13 +0200acidjnk(~acidjnk@p200300d6e7072f86cd9244dbe28c67d8.dip0.t-ipconnect.de)
2023-08-11 11:51:16 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2023-08-11 11:54:11 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-08-11 11:56:36 +0200Square2(~Square@user/square)
2023-08-11 11:57:27 +0200Square(~Square4@user/square) (Ping timeout: 245 seconds)
2023-08-11 11:58:29 +0200Square2Square
2023-08-11 11:58:55 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
2023-08-11 11:59:29 +0200driib(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2023-08-11 11:59:41 +0200stef204(~stef204@user/stef204) (Quit: WeeChat 4.0.2)
2023-08-11 12:00:15 +0200driib(~driib@vmi931078.contaboserver.net)
2023-08-11 12:05:23 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 12:05:24 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 12:05:24 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 12:05:58 +0200vglfr(~vglfr@2a0d:3344:148d:7a00:ece5:978b:e3a7:acd2) (Ping timeout: 256 seconds)
2023-08-11 12:06:17 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-11 12:07:07 +0200vglfr(~vglfr@145.224.100.231)
2023-08-11 12:10:43 +0200td_(~td@i53870906.versanet.de) (Quit: waking up from the american dream ...)
2023-08-11 12:14:45 +0200NewtonTrendy(uid282092@user/bopqod)
2023-08-11 12:15:37 +0200td_(~td@i53870906.versanet.de)
2023-08-11 12:16:00 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-08-11 12:16:52 +0200titibandit(~titibandi@user/titibandit)
2023-08-11 12:17:04 +0200danse-nr3_(~francesco@151.44.221.10) (Read error: Connection reset by peer)
2023-08-11 12:22:52 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-11 12:23:08 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds)
2023-08-11 12:23:10 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 12:28:08 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 12:28:09 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 12:28:09 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 12:29:01 +0200CiaoSen(~Jura@2a05:5800:2d1:7200:664b:f0ff:fe37:9ef) (Ping timeout: 248 seconds)
2023-08-11 12:29:51 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-11 12:32:44 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds)
2023-08-11 12:32:50 +0200gugu256(~gugu256@131.87.95.79.rev.sfr.net) (Quit: Leaving)
2023-08-11 12:36:02 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 12:36:02 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 12:36:02 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 12:39:58 +0200mima(~mmh@net-93-148-97-15.cust.dsl.teletu.it) (Ping timeout: 256 seconds)
2023-08-11 12:48:19 +0200glguy(~glguy@libera/staff-emeritus/glguy) (Read error: Connection reset by peer)
2023-08-11 12:49:08 +0200glguy(~glguy@libera/staff-emeritus/glguy)
2023-08-11 12:52:55 +0200HerlockSholmes(~herlock@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e) (Ping timeout: 240 seconds)
2023-08-11 12:59:15 +0200HerlockSholmes(~herlock@2001:19f0:5c00:27fc:5400:4ff:fe7a:1f8e)
2023-08-11 13:14:00 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:846:1fe1:eed8:5e0)
2023-08-11 13:17:39 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-11 13:18:36 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:846:1fe1:eed8:5e0) (Ping timeout: 248 seconds)
2023-08-11 13:22:21 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2023-08-11 13:23:34 +0200MajorBiscuit(~MajorBisc@145.94.40.195)
2023-08-11 13:26:58 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-08-11 13:27:20 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-08-11 13:30:37 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-08-11 13:31:56 +0200flounders(~flounders@24.246.133.1)
2023-08-11 13:38:12 +0200Square(~Square@user/square) (Ping timeout: 246 seconds)
2023-08-11 13:39:42 +0200danse-nr3(~francesco@151.37.245.142)
2023-08-11 14:02:30 +0200Lycurgus(~juan@user/Lycurgus)
2023-08-11 14:04:43 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-08-11 14:08:16 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Tschüss)
2023-08-11 14:17:36 +0200mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be)
2023-08-11 14:23:17 +0200artem(~artem@38.42.227.237) (Ping timeout: 245 seconds)
2023-08-11 14:26:59 +0200nurupo(~nurupo.ga@user/nurupo)
2023-08-11 14:30:58 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2023-08-11 14:32:42 +0200Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::9d59)
2023-08-11 14:35:55 +0200ddellacosta(~ddellacos@146.70.165.10) (Ping timeout: 240 seconds)
2023-08-11 14:38:50 +0200gatekempt(~gatekempt@user/gatekempt)
2023-08-11 14:45:03 +0200mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be) (Quit: WeeChat 3.8)
2023-08-11 14:46:52 +0200 <danse-nr3> IsList is monomorphic, right? Wondering why ... makes me struggle to write a version of zipMatch that works for IsList instead of using Matchable
2023-08-11 14:50:05 +0200 <int-e> danse-nr3: it allows things like instance Unbox e => IsList (Vector e)
2023-08-11 14:51:24 +0200vglfr(~vglfr@145.224.100.231) (Ping timeout: 248 seconds)
2023-08-11 14:51:28 +0200Pickchea(~private@user/pickchea)
2023-08-11 14:51:56 +0200 <danse-nr3> does that mean "if `e` is Unbox, `Vector e` is IsList"?
2023-08-11 14:52:50 +0200 <int-e> yes
2023-08-11 14:55:04 +0200 <int-e> Oh here's a purely monomorphic instance: instance IsList IntSet
2023-08-11 14:55:58 +0200 <danse-nr3> yeah this makes more sense to me
2023-08-11 14:57:59 +0200 <danse-nr3> thanks int-e
2023-08-11 15:01:32 +0200Kuttenbrunzer(~Kuttenbru@2a02:8108:8b80:1d48::9d59) (Quit: Where is it)
2023-08-11 15:05:47 +0200ulysses4ever(~artem@50-245-50-3-static.hfc.comcastbusiness.net)
2023-08-11 15:10:17 +0200ulysses4ever(~artem@50-245-50-3-static.hfc.comcastbusiness.net) (Read error: Connection reset by peer)
2023-08-11 15:10:21 +0200mmhat(~mmh@p200300f1c73a3bafee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2023-08-11 15:10:27 +0200ulysses4ever(~artem@50-245-50-3-static.hfc.comcastbusiness.net)
2023-08-11 15:10:35 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-08-11 15:14:40 +0200ulysses4ever(~artem@50-245-50-3-static.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
2023-08-11 15:19:47 +0200sm(~sm@plaintextaccounting/sm)
2023-08-11 15:22:44 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-08-11 15:24:31 +0200 <probie> danse-nr3: Are you trying to write something like `zipMatch :: (IsList l, IsList r, IsList res, Item res ~ (Item l, Item r)) => l -> r -> Maybe res`?
2023-08-11 15:24:54 +0200ulysses4ever(~artem@38.42.227.237)
2023-08-11 15:27:45 +0200mmhat(~mmh@p200300f1c7042764ee086bfffe095315.dip0.t-ipconnect.de)
2023-08-11 15:31:16 +0200flounders(~flounders@24.246.133.1) (Quit: WeeChat 3.5)
2023-08-11 15:32:39 +0200 <danse-nr3> oooh
2023-08-11 15:33:00 +0200 <danse-nr3> great! Thanks probie!
2023-08-11 15:38:25 +0200flounders(~flounders@24.246.133.1)
2023-08-11 15:43:08 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
2023-08-11 15:46:00 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-11 15:46:01 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-11 15:46:01 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 15:47:40 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-08-11 15:48:23 +0200 <danse-nr3> ugh ... that is not type-safe because NonEmpty is an instance of IsList and when combined with a different instance could cause a compile time error
2023-08-11 15:48:40 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:795b:2fff:e578:2af) (Quit: WeeChat 2.8)
2023-08-11 15:49:57 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-08-11 15:50:03 +0200 <danse-nr3> i would be satisfied with having the same instance of IsList on both arguments, so that a NonEmpty can be used only with another NonEmpty, but again monomorphism does not make it clear how to do that. Maybe `IsList l ~ IsList r`? I doubt it
2023-08-11 15:50:15 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
2023-08-11 15:50:44 +0200 <danse-nr3> sorry, a runtime error that is
2023-08-11 15:50:55 +0200jtza8(~user@165.255.137.178) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2023-08-11 15:53:57 +0200kraftwerk28(~kraftwerk@164.92.219.160)
2023-08-11 15:53:59 +0200 <danse-nr3> it cannot be `IsList l ~ IsList r`, i would need equality just about the higher order type
2023-08-11 15:54:27 +0200NewtonTrendy(uid282092@user/bopqod) (Quit: Connection closed for inactivity)
2023-08-11 15:55:44 +0200 <probie> danse-nr3: `zipMatch :: (IsList (t a), IsList (t b), IsList (t (a, b)), Item (t (a, b)) ~ (Item (t a), Item (t b))) => t a -> t b -> Maybe (t (a,b))`
2023-08-11 15:56:58 +0200 <danse-nr3> err ... amazing, thanks
2023-08-11 15:57:43 +0200 <danse-nr3> had not really seen that possibility ... not sure how to learn better about these kind of problems
2023-08-11 16:02:59 +0200ft(~ft@p3e9bcd02.dip0.t-ipconnect.de)
2023-08-11 16:03:19 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2023-08-11 16:05:00 +0200xff0x(~xff0x@2405:6580:b080:900:c1c2:633:c03:e500) (Ping timeout: 248 seconds)
2023-08-11 16:05:19 +0200 <[Leary]> % :t \xs ys -> fromList (zip (GHC.Exts.toList xs) (GHC.Exts.toList ys))
2023-08-11 16:05:19 +0200 <yahb2> \xs ys -> fromList (zip (GHC.Exts.toList xs) (GHC.Exts.toList ys)) ; :: (Item l1 ~ (Item l2, Item l3), IsList l1, IsList l2, ; IsList l3) => ; l2 -> l3 -> l1
2023-08-11 16:05:36 +0200 <[Leary]> danse-nr3: I don't know why you expect a runtime error.
2023-08-11 16:06:20 +0200 <danse-nr3> no, you are right actually. Since the lengths are checked, that should not happen
2023-08-11 16:06:53 +0200xff0x(~xff0x@ai086045.d.east.v6connect.net)
2023-08-11 16:07:38 +0200 <probie> [Leary]: Assuming I interpreted the question correctly, it needs to be a `Nothing` if the lists aren't the same length, so it's slightly more complicated
2023-08-11 16:08:14 +0200 <danse-nr3> yeah but still, if one of them is a NonEmpty, the other will not be zipped when null
2023-08-11 16:08:34 +0200 <danse-nr3> had not thought that through
2023-08-11 16:09:17 +0200 <probie> For the first type I gave, you could write something like `zipMatch ([] :: [Int]) ([] :: [Int]) :: Maybe (NonEmpty (Int, Int))` which would be equal to `Just (error ...)`
2023-08-11 16:09:19 +0200 <[Leary]> That's just a matter of switching out `zip` for the original `zipMatch` (or a self-rolled equivalent for []) and the outer application with an fmap.
2023-08-11 16:11:52 +0200 <danse-nr3> probie's solution is intriguing. I tried it with slightly different combinations and got a "could not deduce" error (i will write some instances afterwards). I found the phrasing a bit confusing, because i thought i was adding a constraint that did not need to be deduced
2023-08-11 16:12:33 +0200 <danse-nr3> examples: `(Item (t0 c) ~ Item (t0 (a, b)))` or `(Item (t0 c) ~ (Item (t0 a), Item (t0 b)))` could not be deduced
2023-08-11 16:15:10 +0200gatekempt(~gatekempt@user/gatekempt)
2023-08-11 16:16:40 +0200zeenk(~zeenk@2a02:2f04:a300:2a00::7fe) (Quit: Konversation terminated!)
2023-08-11 16:16:54 +0200 <danse-nr3> i guess that "could not deduce" means that those types do not make sense in combination with the others
2023-08-11 16:19:25 +0200 <danse-nr3> basically before you had `IsList c` but when wrapping with `t` it seems to also need the tuple to be explicit
2023-08-11 16:20:23 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-08-11 16:20:46 +0200thegeekinside(~thegeekin@189.180.79.225)
2023-08-11 16:20:55 +0200cfricke(~cfricke@user/cfricke)
2023-08-11 16:21:00 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2023-08-11 16:21:47 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-08-11 16:24:01 +0200 <danse-nr3> hum no i managed to get a "could not deduce" also with an explicit tuple ... i guess i should just practice more with these kind of constraints
2023-08-11 16:24:21 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2023-08-11 16:29:54 +0200 <geekosaur> those `t0`s make me think something is not unifying that you think should
2023-08-11 16:31:47 +0200shapr(~user@2600:1700:c640:3100:a70d:d5ca:f9aa:e130)
2023-08-11 16:32:00 +0200 <danse-nr3> good point
2023-08-11 16:32:55 +0200 <danse-nr3> i am always confused when that happens. If i write `t`, what is the point of interpreting it as anything different?
2023-08-11 16:33:04 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-08-11 16:33:29 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-08-11 16:33:58 +0200masterbuilder(~masterbui@user/masterbuilder)
2023-08-11 16:34:15 +0200 <danse-nr3> but ... mmm ... i guess i just need to understand better what is going on. Probably each `t` is a series of `t`s at some point, and then the compiler looks for unification
2023-08-11 16:34:17 +0200 <probie> If `OverloadedLists` is enabled and you write something like `zipMatch [1..5::Int] [6..10::Int]` you'll get a type error
2023-08-11 16:34:47 +0200 <probie> (unsure if that's your problem though)
2023-08-11 16:35:42 +0200 <danse-nr3> uh? With your constraints? My constraints just do not compile ^^:
2023-08-11 16:35:46 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2023-08-11 16:36:05 +0200 <danse-nr3> i do have OverloadedStrings on that file, if that matters
2023-08-11 16:36:40 +0200gatekempt(~gatekempt@user/gatekempt) (Ping timeout: 250 seconds)
2023-08-11 16:37:07 +0200 <probie> With my `(IsList (t a), IsList (t b), IsList (t (a, b)), Item (t (a, b)) ~ (Item (t a), Item (t b)))` constraint
2023-08-11 16:37:44 +0200ddellacosta(~ddellacos@143.244.47.84)
2023-08-11 16:38:39 +0200 <probie> OverloadedStrings is harmless here, but OverloadedLists will prevent a concrete type being picked for `t`, which prevents unfolding `Item` which will stop it from being able to satisfy `Item (t (a, b)) ~ (Item (t a), Item (t b))`
2023-08-11 16:39:37 +0200 <probie> if you want some help debugging the error your constraints give, feel free to throw a link to a pastebin
2023-08-11 16:41:07 +0200acidjnk(~acidjnk@p200300d6e7072f86cd9244dbe28c67d8.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-08-11 16:43:27 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.0.1)
2023-08-11 16:50:22 +0200 <danse-nr3> yes, OverloadedLists, sorry. Turns out my errors were actually due to not having updated the type signature after the constraints, which makes a ton of sense. When reading "could not deduce <constraint> from the context: <constraints>" i thought that the problem was somehow within the constraints themselves and became blind to the actual types. Now i see it can mean also "deduce <constraint> that i found in your <constraints>"
2023-08-11 16:55:38 +0200titibandit(~titibandi@user/titibandit) (Quit: leaving)
2023-08-11 16:55:54 +0200titibandit(~titibandi@user/titibandit)
2023-08-11 16:56:50 +0200 <danse-nr3> in fact using an opaque `c` like in your first constraints works just fine. Great code, thanks again probie!
2023-08-11 16:57:08 +0200misterfish(~misterfis@87.215.131.102)
2023-08-11 17:00:27 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-08-11 17:16:02 +0200Midjak(~Midjak@82.66.147.146)
2023-08-11 17:16:53 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-08-11 17:17:18 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2023-08-11 17:17:26 +0200Midjak(~Midjak@82.66.147.146) (Client Quit)
2023-08-11 17:18:04 +0200Midjak(~Midjak@82.66.147.146)
2023-08-11 17:19:07 +0200Sgeo(~Sgeo@user/sgeo)
2023-08-11 17:19:12 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-11 17:20:10 +0200danse-nr3_(~francesco@151.46.136.226)
2023-08-11 17:22:53 +0200danse-nr3(~francesco@151.37.245.142) (Ping timeout: 248 seconds)
2023-08-11 17:23:35 +0200trev(~trev@user/trev)
2023-08-11 17:23:46 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-08-11 17:26:42 +0200thegeekinside(~thegeekin@189.180.79.225) (Ping timeout: 256 seconds)
2023-08-11 17:27:52 +0200artem(~artem@38.42.227.237)
2023-08-11 17:27:53 +0200ulysses4ever(~artem@38.42.227.237) (Read error: Connection reset by peer)
2023-08-11 17:27:56 +0200trev(~trev@user/trev) (Ping timeout: 245 seconds)
2023-08-11 17:29:56 +0200thegeekinside(~thegeekin@189.180.79.225)
2023-08-11 17:30:14 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2023-08-11 17:31:56 +0200artem(~artem@38.42.227.237) (Ping timeout: 248 seconds)
2023-08-11 17:33:31 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-08-11 17:37:07 +0200thegeekinside(~thegeekin@189.180.79.225) (Remote host closed the connection)
2023-08-11 17:40:19 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:846:1fe1:eed8:5e0)
2023-08-11 17:43:29 +0200gehmehgehgmg
2023-08-11 17:45:39 +0200ulysses4ever(~artem@172.56.193.75)
2023-08-11 17:51:56 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-08-11 17:52:27 +0200titibandit(~titibandi@user/titibandit)
2023-08-11 17:53:31 +0200MajorBiscuit(~MajorBisc@145.94.40.195) (Quit: WeeChat 3.6)
2023-08-11 17:55:35 +0200zer0bitz_zer0bitz
2023-08-11 17:59:12 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-08-11 18:00:22 +0200 <yin> why is this getting me a "conflicting definitions" error? https://paste.jrvieira.com/1691769597718
2023-08-11 18:01:02 +0200 <int-e> you can't interleave function definitions
2023-08-11 18:01:32 +0200 <yin> TIL ty
2023-08-11 18:01:56 +0200 <int-e> (there's probably no *deep* reason for that)
2023-08-11 18:02:07 +0200 <yin> i can't think of any
2023-08-11 18:02:26 +0200 <geekosaur> afaik it just makes it harder for the simplifier to rewrite them into a single definition with a `case`
2023-08-11 18:02:58 +0200 <geekosaur> although it might be ghc can handle it, but since the Report says "don't do that" they don't bother
2023-08-11 18:03:13 +0200 <int-e> imagine you have a 100 line module, and you have one function called aux, but forgot about it, and now you add another...
2023-08-11 18:03:49 +0200 <int-e> and then I'm not sure which case is worse: their types being the same so you use the earlier definition, or their types being different and you getting a total mess of type errors
2023-08-11 18:04:06 +0200 <int-e> there's also TemplateHaskell to muddy the waters
2023-08-11 18:04:11 +0200danse-nr3_(~francesco@151.46.136.226) (Ping timeout: 245 seconds)
2023-08-11 18:04:14 +0200 <int-e> so... there are definitely reasons.
2023-08-11 18:04:33 +0200 <int-e> but none of them is fundamental in any way
2023-08-11 18:08:53 +0200vglfr(~vglfr@188.239.201.89)
2023-08-11 18:29:24 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-08-11 18:29:39 +0200pyooque(~puke@user/puke)
2023-08-11 18:29:40 +0200puke(~puke@user/puke) (Killed (silver.libera.chat (Nickname regained by services)))
2023-08-11 18:29:40 +0200pyooquepuke
2023-08-11 18:31:37 +0200titibandit(~titibandi@user/titibandit) (Ping timeout: 260 seconds)
2023-08-11 18:31:48 +0200puke(~puke@user/puke) (Read error: Connection reset by peer)
2023-08-11 18:32:08 +0200puke(~puke@user/puke)
2023-08-11 18:36:23 +0200ripspin(~chatzilla@1.145.221.89)
2023-08-11 18:40:14 +0200ulysses4ever(~artem@172.56.193.75) (Read error: Connection reset by peer)
2023-08-11 18:40:55 +0200ulysses4ever(~artem@38.42.227.237)
2023-08-11 18:47:27 +0200Inst(~Inst@2601:6c4:4081:2fc0:20bc:c565:40db:3ab2)
2023-08-11 18:47:32 +0200 <Inst> quick question, can cabal be configured
2023-08-11 18:47:42 +0200 <sclv> what do you mean
2023-08-11 18:47:44 +0200 <Inst> to attempt to install required dependencies?
2023-08-11 18:48:04 +0200 <Inst> like, say, i can get monomer working on windows relatively easily because i know how to screw around with msys
2023-08-11 18:48:39 +0200 <Inst> but if say, i wanted the cabal to do that for me, would there be options to do that?
2023-08-11 18:48:56 +0200 <sclv> doing that being "screwing around with msys"?
2023-08-11 18:49:33 +0200 <sclv> that's outside the scope for cabal. it can check for system dependencies (i.e. non haskell packages that haskell packages link against) but it has no mechanism to install them.
2023-08-11 18:49:42 +0200puke(~puke@user/puke) (Quit: puke)
2023-08-11 18:51:21 +0200 <Inst> so, would that be stack then?
2023-08-11 18:51:56 +0200 <[exa]> if the "dependencies" are "operating system packages outside of *ackage", you probably want something more like docker
2023-08-11 18:52:33 +0200vglfr(~vglfr@188.239.201.89) (Remote host closed the connection)
2023-08-11 18:52:42 +0200 <Inst> i guess i'm not really going to commit to that for now; i'd like a Haskell stack where learners can just screw around with a GUI package
2023-08-11 18:53:06 +0200 <Inst> for windows users, 1-click/command gloss / gi-gtk / monomer is pretty important
2023-08-11 18:53:14 +0200 <Inst> same with 1-click hmatrix, etc
2023-08-11 18:53:52 +0200 <[exa]> somehow this is 1-click on most linux distros :D
2023-08-11 18:54:14 +0200 <[exa]> (anyway sorry this was not helpful :D )
2023-08-11 18:55:03 +0200 <[exa]> there were some visualstudio packages that did something similar, was the thing called nuget?
2023-08-11 18:55:33 +0200 <[exa]> but I think that got carried by M$ folks all the way over to dotnet-only stuff
2023-08-11 18:58:02 +0200 <geekosaur> stack doesn't install OS deps either
2023-08-11 18:58:16 +0200 <geekosaur> there are too many ways to do it and too many different package names
2023-08-11 18:58:28 +0200 <EvanR> there's Setup.hs right
2023-08-11 18:58:32 +0200 <geekosaur> and it usually requires sudo access which you should not give to stack or cabal
2023-08-11 19:01:27 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com)
2023-08-11 19:01:50 +0200swistak(~swistak@185.21.216.141) (Ping timeout: 250 seconds)
2023-08-11 19:07:25 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2023-08-11 19:08:18 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2023-08-11 19:08:22 +0200ddellacosta(~ddellacos@143.244.47.84) (Ping timeout: 260 seconds)
2023-08-11 19:09:49 +0200 <Inst> hmmm, maybe a better way would be for cabal packages to include a bash script that's user readable
2023-08-11 19:10:11 +0200ddellacosta(~ddellacos@146.70.171.233)
2023-08-11 19:13:04 +0200ec(~ec@gateway/tor-sasl/ec)
2023-08-11 19:15:16 +0200ripspin(~chatzilla@1.145.221.89) (Remote host closed the connection)
2023-08-11 19:17:40 +0200 <yushyin> and the bash script contains what exactly?
2023-08-11 19:17:56 +0200danza_(~francesco@151.46.136.226)
2023-08-11 19:18:42 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 19:20:58 +0200 <EvanR> if cabal can negotiate the gtk-verse to build gtk bindings, it can do anything
2023-08-11 19:22:43 +0200vglfr(~vglfr@145.224.100.231)
2023-08-11 19:25:01 +0200vglfr(~vglfr@145.224.100.231) (Read error: Connection reset by peer)
2023-08-11 19:25:14 +0200vglfr(~vglfr@145.224.100.231)
2023-08-11 19:25:33 +0200 <int-e> EvanR: I don't know, it needs quite a bit of help: https://github.com/gtk2hs/gtk2hs/blob/master/tools/src/Gtk2HsSetup.hs
2023-08-11 19:26:51 +0200acidjnk(~acidjnk@p200300d6e7072f86347ae895ac9e3181.dip0.t-ipconnect.de)
2023-08-11 19:26:51 +0200vglfr(~vglfr@145.224.100.231) (Read error: Connection reset by peer)
2023-08-11 19:27:02 +0200vglfr(~vglfr@145.224.100.231)
2023-08-11 19:28:49 +0200vglfr(~vglfr@145.224.100.231) (Read error: Connection reset by peer)
2023-08-11 19:31:37 +0200vglfr(~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
2023-08-11 19:33:26 +0200 <sclv> Inst: my advice would be yeah, include bash/powershell/whatever scripts for platforms to install external deps
2023-08-11 19:33:47 +0200 <Inst> but cabal can potentially support it
2023-08-11 19:34:11 +0200 <Inst> i.e, provide a link to the powershell / bash etc script to do some minimum config work, don't make it plug and play for security purposes
2023-08-11 19:34:32 +0200 <sclv> gtk2hs and etc all still require the system libs be already installed, eg https://github.com/gtk2hs/gtk2hs/tree/master
2023-08-11 19:34:33 +0200 <Inst> wait, can cabal do this already? I.e, display messages on install attempts?
2023-08-11 19:35:20 +0200 <sclv> no cabal has no custom error msgs on failures
2023-08-11 19:35:37 +0200 <sclv> you just should put a link in the docs to a file with the commands the user needs to run
2023-08-11 19:38:15 +0200 <geekosaur> but even that's fraught as they will depend on platform/distro
2023-08-11 19:38:25 +0200 <geekosaur> and whether they use nix or not, etc.
2023-08-11 19:39:03 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-11 19:39:10 +0200 <int-e> https://github.com/gtk2hs/gtk2hs/blob/master/tools/src/Gtk2HsSetup.hs#L547-L559 is funny... because while I'm sure that this was once part of every gtk2hs package, now it's part of gtk2hs-buildtools itself.
2023-08-11 19:39:38 +0200 <int-e> (well there's still the PATH aspect which remains relevant)
2023-08-11 19:40:18 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 19:42:09 +0200puke(~puke@user/puke)
2023-08-11 19:42:19 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-11 19:44:55 +0200ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2023-08-11 19:45:17 +0200fendor(~fendor@2a02:8388:1640:be00:b586:6c06:a58:19a3) (Remote host closed the connection)
2023-08-11 19:48:27 +0200fendor(~fendor@2a02:8388:1640:be00:9072:560d:ff8a:aeec)
2023-08-11 19:54:56 +0200 <EvanR> gtk2hs-buildtools... groovy
2023-08-11 19:55:26 +0200 <EvanR> ok good, it doesn't depend on gtk2hs-buildtools-buildtools
2023-08-11 19:56:02 +0200fendor_(~fendor@2a02:8388:1640:be00:c73f:4c9a:e162:7d18)
2023-08-11 19:59:33 +0200fendor(~fendor@2a02:8388:1640:be00:9072:560d:ff8a:aeec) (Ping timeout: 246 seconds)
2023-08-11 20:02:52 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 20:07:42 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 250 seconds)
2023-08-11 20:08:28 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-08-11 20:10:19 +0200pyooque(~puke@user/puke)
2023-08-11 20:10:20 +0200pukeGuest137
2023-08-11 20:10:20 +0200Guest137(~puke@user/puke) (Killed (silver.libera.chat (Nickname regained by services)))
2023-08-11 20:10:20 +0200pyooquepuke
2023-08-11 20:13:41 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-08-11 20:20:19 +0200connrs(~connrs@user/connrs) (Read error: Connection reset by peer)
2023-08-11 20:21:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 20:22:08 +0200connrs(~connrs@user/connrs)
2023-08-11 20:24:36 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 20:29:34 +0200titibandit(~titibandi@user/titibandit)
2023-08-11 20:29:35 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-11 20:29:36 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-11 20:29:36 +0200wroathe(~wroathe@user/wroathe)
2023-08-11 20:42:14 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 20:44:17 +0200 <Inst> cool, finally got gi-gtk to install
2023-08-11 20:48:43 +0200tremon(~tremon@83.80.159.219)
2023-08-11 20:53:28 +0200neuroevolutus(~neuroevol@2606:2e00:8007:1::a31e)
2023-08-11 20:54:04 +0200 <EvanR> Inst, are you doing something with GTK?
2023-08-11 20:55:07 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk)
2023-08-11 20:57:20 +0200puke(~puke@user/puke) (Quit: puke)
2023-08-11 21:01:03 +0200 <Inst> well, trying to build a conway's game of life there
2023-08-11 21:01:15 +0200 <Inst> and turn it into a haskell intro tutorial
2023-08-11 21:01:38 +0200 <EvanR> so you want to learn haskell, first install GTK bindings
2023-08-11 21:01:48 +0200 <Inst> i've had an obsession for the last 2 months for something like "Big Book of Small Python Projects", but for Haskell, and composed of tutorials teaching as much Haskell as needed per project
2023-08-11 21:02:02 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2023-08-11 21:02:11 +0200 <EvanR> you might do better using text mode graphics for that
2023-08-11 21:02:16 +0200 <Inst> Windows.
2023-08-11 21:02:17 +0200 <EvanR> or gloss
2023-08-11 21:02:18 +0200 <Inst> Uhhh
2023-08-11 21:02:20 +0200 <Inst> Gloss works
2023-08-11 21:02:55 +0200 <EvanR> so it's also a haskell-on-windows tutorial
2023-08-11 21:02:56 +0200 <Inst> gloss afaik, isn't gloss a toy, though?
2023-08-11 21:03:24 +0200 <Inst> i sort of gave up on monomer after the dev / maintainer didn't want to set up a team for it
2023-08-11 21:03:24 +0200 <EvanR> toy? game of life?
2023-08-11 21:03:45 +0200 <Inst> i mean, if you do conway in gi-gtk or monomer, shoudn't the skills be more portable?
2023-08-11 21:03:55 +0200 <Inst> I just haven't been arsed to set up a widget in monomer that can support console display
2023-08-11 21:04:50 +0200 <EvanR> I got another one, so you want to write game of life in haskell. First let me introduce you to some category theory: https://kukuruku.co/hub/haskell/cellular-automata-using-comonads
2023-08-11 21:05:02 +0200 <Inst> yeah i was thinking of that!
2023-08-11 21:05:09 +0200 <Inst> i don't get comonads yet
2023-08-11 21:05:39 +0200 <Inst> the basic concept is simple, monads with arrows reversed, i.e, duplicate instead of join, extract instead of pure, same requirement for Functor
2023-08-11 21:05:48 +0200 <Inst> there's lots of discussion of comonads for GUI but I haven't been able to grok it yet
2023-08-11 21:06:42 +0200 <EvanR> if you really want gratuitous theory for GUI you might want to look at profunctors
2023-08-11 21:06:56 +0200 <probie> I'm too lazy to follow the link. Is that one of the ones that's using zippers?
2023-08-11 21:06:59 +0200puke(~puke@user/puke)
2023-08-11 21:07:28 +0200 <EvanR> data Universe a = Universe [a] a [a]
2023-08-11 21:07:45 +0200 <EvanR> looks like it
2023-08-11 21:07:46 +0200 <Inst> profunctors, i.e, a datatype that incorporates a functor and a contravariant functor?
2023-08-11 21:08:10 +0200 <Inst> probably less level of comprehension than comonads with profunctors
2023-08-11 21:08:21 +0200 <EvanR> a datatype which is a functor in one argument and a contravariant functor in the other
2023-08-11 21:08:45 +0200 <Inst> also, trashy comonad tutorials are now a thing
2023-08-11 21:09:03 +0200 <EvanR> lol
2023-08-11 21:09:30 +0200 <Inst> https://dev.to/mikesol/frontend-comonad-backend-monad-1hfm
2023-08-11 21:09:46 +0200 <ncf> now that's a URL
2023-08-11 21:11:41 +0200 <Inst> tbh IO monad unironically is the best introductory to monads because the implementation isn't exposed and doesn't force you into "monads are burritos" idiocy (neither functors nor monads are containers; a monad is just a functor with join and pure operating together as a monoid, a functor, properly endofunctor, is a structure-preserving lifting of a type into the same category of types)
2023-08-11 21:12:10 +0200 <ncf> their duplicate doesn't typecheck... did GPT write this?
2023-08-11 21:12:16 +0200 <Inst> i still think starting with proxy is the best intro monad
2023-08-11 21:12:26 +0200 <Inst> ncf: have you seen eric normand's articles on Haskell?
2023-08-11 21:12:32 +0200 <ncf> who
2023-08-11 21:12:33 +0200 <Inst> he literally had foo?
2023-08-11 21:12:35 +0200 <EvanR> before you leave this cave and go reading monad tutorials, take this one-item checklist "does the post explain abstraction X by focusing on 1 particular example instance and leaving it at that"
2023-08-11 21:12:42 +0200 <Inst> Eric Normand is a Clojure bigwig
2023-08-11 21:13:07 +0200 <Inst> big popularizer, I think his formulation of FP (actions, computations, and values) is the most accessible one for mainstream developers
2023-08-11 21:13:15 +0200 <Inst> but his comments on Haskell are hilarious because they're so silly
2023-08-11 21:13:16 +0200Guest4879(~finn@81-67-22-3.rev.numericable.fr)
2023-08-11 21:13:29 +0200 <shapr> I like this one https://www.jerf.org/iri/post/2958/
2023-08-11 21:13:46 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 245 seconds)
2023-08-11 21:15:02 +0200 <EvanR> so clojure has bigwig's now
2023-08-11 21:15:15 +0200 <Inst> https://www.reddit.com/r/haskell/comments/j1nll2/the_user_wizard_scenario_we_start_with_a_haskell/
2023-08-11 21:15:31 +0200 <Inst> ummm, it had a BDFL in Rich Hinley
2023-08-11 21:15:43 +0200 <Inst> I respect Clojure, I just think parens syntax sucks, and typed FP > untyped FP
2023-08-11 21:15:56 +0200 <Inst> both have their merits, but typed FP is just better for day to day use, and typed FP can simulate untyped FP
2023-08-11 21:16:18 +0200 <Inst> main drawback of typed FP is the conceptual complexity, which is a plus for the Haskell / Idris community
2023-08-11 21:16:25 +0200 <probie> I mean, Rich Hickey has some interesting ideas. I think he also mainstreamed Haskell-bashing in the Clojure community
2023-08-11 21:16:26 +0200 <Inst> or just the typed FP community
2023-08-11 21:16:49 +0200 <Inst> this is the real story of FP langs
2023-08-11 21:16:58 +0200 <Inst> there are 20 different FP langs that all bash each other / hate each other to some extent
2023-08-11 21:17:02 +0200 <EvanR> nobody can bash haskell better than haskell users though, no contest
2023-08-11 21:17:22 +0200 <Inst> because of the internecine conflict, no FP lang achieves critical mass, although F# is doing pretty well
2023-08-11 21:17:51 +0200 <probie> I hate Haskell with a passion
2023-08-11 21:18:01 +0200 <probie> it's just that I also hate everything else slightly more
2023-08-11 21:18:06 +0200 <EvanR> ^
2023-08-11 21:19:15 +0200 <Inst> ^^
2023-08-11 21:19:42 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:846:1fe1:eed8:5e0) (Remote host closed the connection)
2023-08-11 21:20:28 +0200danza__(~francesco@151.44.191.133)
2023-08-11 21:20:44 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-11 21:21:04 +0200danza_(~francesco@151.46.136.226) (Read error: Connection reset by peer)
2023-08-11 21:23:33 +0200 <EvanR> Inst, eric was a regular in programming meetups in new orleans before covid. I stood in the way of many attempts to bash haskell inappropriately. Much progress was made in appropriate haskell bashing
2023-08-11 21:23:52 +0200 <EvanR> important to get the bashing right
2023-08-11 21:23:56 +0200 <Inst> on Twitter:
2023-08-11 21:24:34 +0200 <Inst> what's the story behind this?
2023-08-11 21:24:34 +0200 <Inst> https://twitter.com/ericnormand/status/1402591912167628805
2023-08-11 21:25:32 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2023-08-11 21:25:46 +0200 <Inst> btw, the real project i'm focused on right now is building a webapp that can integrate with github
2023-08-11 21:25:56 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 21:26:12 +0200 <Inst> and allow Haskellers to post wishes and commitments for existing and potential libraries
2023-08-11 21:26:31 +0200 <int-e> Tristan: "I am still to find a beginner friendly way to get into the mystical world of Haskell."
2023-08-11 21:26:35 +0200 <int-e> hmmm
2023-08-11 21:26:44 +0200 <Inst> Haskell Phrasebook?
2023-08-11 21:26:45 +0200 <EvanR> does it translate the haskell code into whatever language that project is written in?
2023-08-11 21:26:45 +0200 <int-e> (ignore that nick)
2023-08-11 21:27:28 +0200 <Inst> ummm, thinking about learning persistent and esqueleto for it over servant
2023-08-11 21:27:33 +0200 <Inst> have some experience with postgre simple
2023-08-11 21:28:04 +0200 <Inst> int-e: I'm serious, the best way to get into the mystical world of Haskell is to have an equivalent to "Big Book of Small Python Projects" with full tutorials
2023-08-11 21:28:09 +0200 <EvanR> mapM_ learn allTheThings
2023-08-11 21:28:12 +0200 <Inst> it'll kill the mysticism quickly
2023-08-11 21:28:41 +0200 <Inst> i'm wondering if you can rewrite it with forever :: IO a -> IO a instead
2023-08-11 21:28:52 +0200 <int-e> Inst: There is no best way.
2023-08-11 21:29:14 +0200 <Inst> i mean, there's actually a lot of "Haskell in 15 minutes" tutorials out there
2023-08-11 21:29:24 +0200 <Inst> just need to collate them, and learning Haskell TBH is learning the library ecosystem
2023-08-11 21:29:31 +0200 <Inst> we've made so much improvement in every foible of Haskell
2023-08-11 21:29:51 +0200 <Inst> someone is working on parallelizing GHC to get 15-35% build time improvements (we already have features for that, but not ergonomic)
2023-08-11 21:29:53 +0200 <int-e> And I suspect that there's no quick way to learn to appreciate HM types. It /might/ be easier with SML.
2023-08-11 21:29:58 +0200 <Inst> the tooling is no longer trash
2023-08-11 21:30:15 +0200 <Inst> there are LOT of great Haskell books out there
2023-08-11 21:30:18 +0200 <Inst> only problem is ecosystem
2023-08-11 21:30:29 +0200 <Inst> progress is being made, but slow
2023-08-11 21:30:41 +0200 <EvanR> what's wrong with ecosystem specifically
2023-08-11 21:30:56 +0200 <int-e> Anyway, I don't know what to make of that little thread.
2023-08-11 21:31:07 +0200 <Inst> #1, lib doc sucks, every lib is equivalent to learning a language, #2, ecosystem is patchy in parts and tailored to the existing Haskell userbase, i.e, wizards
2023-08-11 21:31:21 +0200 <probie> Also, going back half a dozen steps, I haven't really heard much about profunctors for GUIs. Is that just all the old arrow stuff, but now profunctors, because strong profunctors?
2023-08-11 21:31:34 +0200 <probie> s/strong profunctors/strong profunctors are pretty much arrows/
2023-08-11 21:31:49 +0200 <Inst> which is the problem for Haskell GUI, we don't have a standard solution for Haskell GUI
2023-08-11 21:32:03 +0200 <Inst> FRP GUIs, comonadic GUIs, now profunctor GUIs?
2023-08-11 21:32:06 +0200 <EvanR> I'm kidding mostly, based only on the applemus blog, reactive banana stuff
2023-08-11 21:32:36 +0200 <Inst> bleh, fuck this shit, i'm isntalling Nix, one day Haskell on Windows won't suck, but I assume we'll get dependent types before then
2023-08-11 21:32:44 +0200 <int-e> . o O ( and then there's gtk2hs )
2023-08-11 21:33:28 +0200NewtonTrendy(uid282092@user/bopqod)
2023-08-11 21:33:32 +0200 <Inst> couldn't get it to build, or rather, couldn't get gi-gtk to build
2023-08-11 21:33:37 +0200 <Inst> i might end up nuking my cabal and GHCup again
2023-08-11 21:33:38 +0200 <EvanR> I kind of can't tell how important windows support is for the health of the haskell tutorial industry
2023-08-11 21:33:42 +0200 <Inst> just to nuke away the msys
2023-08-11 21:34:06 +0200 <EvanR> what percent of would be tutorial followers are on windows and not linux
2023-08-11 21:34:54 +0200 <geekosaur> probably large
2023-08-11 21:35:05 +0200 <geekosaur> I mean, de facto the world is Windows
2023-08-11 21:35:07 +0200 <Inst> US-wise, Windows is dying, like around 50-60% market share
2023-08-11 21:35:17 +0200 <Inst> but globally Windows is pretty entrenched, including Windows XP systems for god's sake
2023-08-11 21:35:22 +0200 <EvanR> yes human beings on windows greatly outnumbered
2023-08-11 21:35:35 +0200 <EvanR> outnumbering. But that want to follow haskell tutorials
2023-08-11 21:35:47 +0200 <Inst> EvanR: more like, trying to develop a new market?
2023-08-11 21:36:19 +0200 <Inst> point is, Rust keeps on murdering Haskell
2023-08-11 21:36:35 +0200 <EvanR> I don't see how those are in any sort of competition for anything
2023-08-11 21:36:42 +0200 <geekosaur> ^
2023-08-11 21:36:55 +0200 <Inst> in wizard market, you know we lost Hasura, right?
2023-08-11 21:37:16 +0200 <Inst> important because Hasura is the first (and only, until Juspay or Mercury make it), Haskell unicorn
2023-08-11 21:37:28 +0200 <EvanR> what are all these names
2023-08-11 21:37:29 +0200 <Inst> they're rewriting their graphql engine in rust
2023-08-11 21:37:45 +0200 <int-e> must be startups
2023-08-11 21:37:55 +0200 <int-e> with "unicorn" being VC lingo
2023-08-11 21:37:56 +0200 <Inst> Juspay is a 100m+ Indian payments provider
2023-08-11 21:38:04 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 21:38:08 +0200 <Inst> Mercury employs Rebecca Skinner, author of Effective Haskell
2023-08-11 21:38:16 +0200 <Inst> unicorn means start-up that gets over 1 billion valuation
2023-08-11 21:38:22 +0200 <geekosaur> VC I would believe
2023-08-11 21:38:49 +0200 <geekosaur> they force network appliances developed in *BSD to switch to linux and thereby screw up their network stacks too
2023-08-11 21:39:06 +0200 <geekosaur> meaning VCs are idiots
2023-08-11 21:39:18 +0200 <geekosaur> who destroy products in the name of quick money
2023-08-11 21:39:31 +0200 <Inst> does that mean that everyone living in the capitalist world is an idiot?
2023-08-11 21:39:34 +0200 <Inst> that's basic capitalist logic
2023-08-11 21:39:40 +0200 <Inst> time discounting
2023-08-11 21:40:05 +0200 <geekosaur> there is going for the money and there is shooting yourself in the foot
2023-08-11 21:40:06 +0200 <Inst> it's supposed to be the job of governments and NGOs to have longer time horizons, but we all know how well that works
2023-08-11 21:40:08 +0200Instshrugs
2023-08-11 21:40:30 +0200 <geekosaur> we're talking products that could have been best-in-class rendered middle-of-the-pack by stupid decisions
2023-08-11 21:40:44 +0200 <int-e> The idiocy is to look at a startup, see that they're using Haskell or whatever, forget that it's mostly about a vision for a product, people, and luck, and decide that you have to use Haskell too in order to have success.
2023-08-11 21:41:18 +0200simikando(~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 250 seconds)
2023-08-11 21:41:32 +0200 <Inst> Haskell is just an enabler, and a problematic one insofar as the quantity of experience for Haskell in production seems relatively scarce
2023-08-11 21:41:34 +0200 <int-e> (Same for applying that kind of "logic" to *not* using Haskell.)
2023-08-11 21:41:35 +0200 <EvanR> promote haskell usage, hire the most brilliant functional programmers, then switch everything to java and win xD
2023-08-11 21:41:49 +0200 <Inst> EvanR: Tikhon Jelvis? :)
2023-08-11 21:42:46 +0200 <[exa]> I invested precious 5 minutes into skimming over the discourse thread on that topic, what's the problem there?
2023-08-11 21:42:52 +0200 <Inst> (He was working at Target, he seems to be in the same firm as Edward Kmett now, a start-up, but Target was actually using Haskell for many of their systems. Then they switched CTOs, the CTO wanted mainstream languages on everything.)
2023-08-11 21:43:06 +0200 <Inst> [exa]: which discourse thread?
2023-08-11 21:43:07 +0200 <shapr> sounds like my previous Haskell job
2023-08-11 21:43:34 +0200 <juri_> I'm pleading the 5th.
2023-08-11 21:43:35 +0200 <geekosaur> footguns for everyone!
2023-08-11 21:43:40 +0200 <[exa]> https://discourse.haskell.org/t/hasura-migrating-to-rust/6620/34 ... they found the niche, discarded half of their functionality (remember hasura with sparql?) and to squeeze more they just specialize to rust, which is good
2023-08-11 21:44:17 +0200 <Inst> i mean it's good for them, it's just, rust gives you more performance, more safety, has a larger ecosystem, more desperate rustacaeans than desperate Haskellers
2023-08-11 21:44:38 +0200 <Inst> erm, not more safety
2023-08-11 21:44:45 +0200 <Inst> comparable safety
2023-08-11 21:45:42 +0200 <[exa]> you can't measure safety without knowing the adversary
2023-08-11 21:46:04 +0200 <[exa]> rust certainly gives more safety against rust programmers' errors. :D
2023-08-11 21:46:13 +0200 <EvanR> safety = security vs yourself
2023-08-11 21:46:27 +0200 <[exa]> also good.
2023-08-11 21:46:36 +0200 <[exa]> anyway this is a happy story I'd say
2023-08-11 21:46:46 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-08-11 21:47:07 +0200 <Inst> the lesson i seem to be deriving is that Haskell is powerful and flexible enough for fast prototyping, and if the guys working on Rust FFI get their way, can eventually be used to wrap Rust
2023-08-11 21:47:14 +0200 <Inst> Haskell should be faster for iteration than Rust
2023-08-11 21:47:16 +0200 <Inst> which is why:
2023-08-11 21:47:27 +0200 <[exa]> IMO better than hasura trying to beat the shit out of haskell gc with 10 years of superspecialized hopefullyhelping ducttape patches to ghc
2023-08-11 21:48:01 +0200 <[exa]> (oh noes apologies for s-word, I thought we're in #offtopic)
2023-08-11 21:48:02 +0200 <Inst> https://mdwdotla.medium.com/using-rust-at-a-startup-a-cautionary-tale-42ab823d9454
2023-08-11 21:48:16 +0200 <Inst> https://www.propelauth.com/post/i-love-building-a-startup-in-rust-i-wouldnt-pick-it-again
2023-08-11 21:52:49 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2023-08-11 21:52:55 +0200 <EvanR> choosing the right language for your startup: an iterative process
2023-08-11 21:53:49 +0200 <int-e> but if your goal is to write software, it's imperative to choose a languag.
2023-08-11 21:54:01 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds)
2023-08-11 21:55:09 +0200 <probie> I probably wouldn't pick Haskell as a language for a startup unless I already developers that I'm happy to write Haskell with
2023-08-11 21:55:13 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
2023-08-11 21:55:14 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 21:55:42 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-11 21:56:22 +0200 <probie> This has been on my mind a lot recently, because there's a non-zero chance that in the next few months I'll actually have to make that decision
2023-08-11 21:56:59 +0200 <Inst> probie: is Haskell, the language and library ecosystem, suited to start-ups?
2023-08-11 21:57:08 +0200 <probie> s/I already developers/I already has developers/
2023-08-11 21:57:11 +0200 <Inst> like, is the biggest problem the social factor wherein you can't train Haskellers fast enough?
2023-08-11 21:57:12 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-08-11 21:57:18 +0200 <EvanR> Good luck. We're all counting on you.
2023-08-11 21:57:31 +0200 <Inst> probie: so, what languages are you shopping for then?
2023-08-11 21:57:55 +0200 <Inst> probie: if the start-up goes belly up (60-80% odds), please write a postmortem for us on a blog somewhere!
2023-08-11 21:58:11 +0200 <Inst> if you opt for Haskell
2023-08-11 21:58:21 +0200 <monochrom> I don't think any startup can afford to change language later. Therefore, it is not an iterative process, it is a "the other pasture is always greener" process. :)
2023-08-11 21:58:40 +0200 <Inst> they can after they've been bought out :)
2023-08-11 21:58:41 +0200codaraxis(~codaraxis@user/codaraxis)
2023-08-11 21:59:04 +0200 <Inst> eric Normand is also sort of weird, backtracking to that subject
2023-08-11 21:59:11 +0200 <Inst> because he was working on Haskell and JS on Scrive in 2012
2023-08-11 21:59:24 +0200 <juri_> at the startup i'm working at, we've switched languages for the client teams at least three times.
2023-08-11 21:59:32 +0200 <Rembane> Inst: Is he going to Rust too?
2023-08-11 21:59:35 +0200 <juri_> the backend? haskell.
2023-08-11 21:59:36 +0200 <Inst> a major figure in Haskell community is now in Scrive
2023-08-11 21:59:41 +0200 <Rembane> juri_: Which languages did you try in the frontend?
2023-08-11 21:59:45 +0200 <Inst> Rembnae: unlikely, because Clojurians hate static typing
2023-08-11 22:00:03 +0200 <juri_> Rembane: the only one i know what we moved from is when we moved away from scala.
2023-08-11 22:00:03 +0200 <edwardk> FWIW- I don't work with Tikhon. He's a friend, I've known him a long time, but we're off doing our own respective things.
2023-08-11 22:00:48 +0200 <edwardk> Eric Normand dipped a toe in Haskell, but he was pretty much always a Clojure guy.
2023-08-11 22:00:56 +0200 <Rembane> juri_: Cool.
2023-08-11 22:01:30 +0200 <Inst> oh, I got confused
2023-08-11 22:01:34 +0200 <Inst> Positron, stealth start-up
2023-08-11 22:01:39 +0200 <Inst> he's doing CX Score
2023-08-11 22:01:42 +0200manmshuk(~manmshuk@2401:4900:803f:3acd:e89b:2576:7144:958f)
2023-08-11 22:02:01 +0200manmshuk(~manmshuk@2401:4900:803f:3acd:e89b:2576:7144:958f) (Remote host closed the connection)
2023-08-11 22:02:12 +0200manmshuk(~manmshuk@2401:4900:803f:3acd:e89b:2576:7144:958f)
2023-08-11 22:02:34 +0200 <probie> Inst: Haskell is a language you can iterate very quickly in, and that's of value to a start-up, but it's a lot more work to onboard people. You can't exactly restrict yourself to a simple subset, because the ecosystem doesn't restrict itself to a simple subset
2023-08-11 22:02:35 +0200manmshuk(~manmshuk@2401:4900:803f:3acd:e89b:2576:7144:958f) (Remote host closed the connection)
2023-08-11 22:02:38 +0200 <Inst> i'm just more confused that Normand worked at Scrive for like 2 years on JS and Haskell and could still get the namespacing wrong
2023-08-11 22:04:25 +0200 <probie> When a startup fails, I doubt the choice of language was a significant factor
2023-08-11 22:04:33 +0200 <EvanR> Inst is your startup using haskell?
2023-08-11 22:04:39 +0200 <Inst> no startup :(
2023-08-11 22:04:47 +0200 <Inst> i'm interested in the field
2023-08-11 22:05:33 +0200 <EvanR> do you have a blog where this tutorial series is going to be posted
2023-08-11 22:05:50 +0200 <Inst> nope, not yet, but tbh, we can just collate all the tutorials others are doing so far
2023-08-11 22:05:55 +0200 <Inst> was going to post that on discourse
2023-08-11 22:06:14 +0200 <Inst> my stuff is also going to suck :(
2023-08-11 22:07:16 +0200Pickchea(~private@user/pickchea)
2023-08-11 22:09:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-11 22:10:11 +0200 <juri_> Inst: I've been sucking at haskell for 8 years now.
2023-08-11 22:10:30 +0200 <EvanR> hear hear
2023-08-11 22:10:47 +0200 <EvanR> haskell suckers represent
2023-08-11 22:10:48 +0200 <juri_> chatgpt seems to think i'm some amazing haskeller, but i .. think i recognize edwardk, maybe?
2023-08-11 22:11:05 +0200 <juri_> tl;dr: i suck, in obscurity.
2023-08-11 22:13:51 +0200 <Inst> the great part of say, monomer, is that outside of enabling monad comprehensions (should we represent the tic tac toe board with nested lists or a bytestring?), you literally do not need monads for this
2023-08-11 22:14:53 +0200 <Rembane> What's monomer in this context?
2023-08-11 22:15:51 +0200 <Inst> some GUI lib, which incidentally works on Windows
2023-08-11 22:15:54 +0200 <Inst> Elm architecture based
2023-08-11 22:16:08 +0200 <probie> Rembane: https://github.com/fjvallarino/monomer#readme
2023-08-11 22:16:43 +0200 <Rembane> Inst, probie: Thank you. Looks fun!
2023-08-11 22:16:59 +0200 <Inst> does not work on 9.6.2 the last I checked
2023-08-11 22:18:10 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-08-11 22:19:24 +0200ulysses4ever(~artem@38.42.227.237) (Ping timeout: 248 seconds)
2023-08-11 22:19:25 +0200 <Inst> you almost certainly aren't on windows, Haskell on Windows is so bad I'm installing Nix
2023-08-11 22:19:33 +0200 <Inst> but:
2023-08-11 22:19:33 +0200 <Inst> https://github.com/fjvallarino/monomer/issues/258
2023-08-11 22:21:24 +0200 <Rembane> Seems painful
2023-08-11 22:22:00 +0200 <Inst> i got used to it, unfortunately
2023-08-11 22:22:06 +0200 <EvanR> I installed haskell on windows, worked
2023-08-11 22:22:14 +0200 <EvanR> which part is so bad?
2023-08-11 22:22:27 +0200 <Inst> well, i have to use an older SDL if I want to get it to work with that library
2023-08-11 22:22:37 +0200 <Inst> and a lot of GHCI stuff, I think the C FFI is broken?
2023-08-11 22:22:47 +0200 <Inst> if I try to play around with HMatrix, segfault
2023-08-11 22:22:53 +0200 <EvanR> SDL is a rapidly moving target right now
2023-08-11 22:23:07 +0200dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-08-11 22:23:51 +0200 <EvanR> it's major version number is a superposition of 2 and 3, reminiscent of the update from 1.3 to 2
2023-08-11 22:24:19 +0200 <EvanR> does C FFI normally work from ghci?
2023-08-11 22:24:37 +0200 <Inst> https://gitlab.haskell.org/ghc/ghc/-/issues/22999
2023-08-11 22:24:40 +0200 <Inst> older C FFI works
2023-08-11 22:24:58 +0200 <probie> I would like to be able to write a boring desktop application in Haskell, compile with some magical incantation and get a Windows exe I can send to the end user out the other end. I did that once in Golang and was amazed that it "just worked"
2023-08-11 22:25:57 +0200 <Inst> i hear that there are GHC developers working on multi-backend stuff for Haskell, including cross-platform development
2023-08-11 22:27:33 +0200 <Inst> https://media.discordapp.net/attachments/968989726633779215/1139656320618864720/image.png?width=28…
2023-08-11 22:27:41 +0200 <Inst> https://hackage.haskell.org/package/tinyfiledialogs-0.2.1.0/docs/Graphics-UI-TinyFileDialogs.html
2023-08-11 22:27:58 +0200 <Inst> here, the C FFI is painfree
2023-08-11 22:31:18 +0200 <EvanR> VisualHaskell Studio
2023-08-11 22:33:39 +0200 <Inst> whoa
2023-08-11 22:34:11 +0200 <Inst> i think this is 9.4.6 talking?
2023-08-11 22:34:40 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-08-11 22:36:47 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
2023-08-11 22:37:15 +0200dsrt^(~cd@c-66-56-7-24.hsd1.ga.comcast.net) (Remote host closed the connection)
2023-08-11 22:37:34 +0200captnemo(~captnemo@193.32.127.239)
2023-08-11 22:37:35 +0200dsrt^(~cd@c-66-56-7-24.hsd1.ga.comcast.net)
2023-08-11 22:38:43 +0200fendor_(~fendor@2a02:8388:1640:be00:c73f:4c9a:e162:7d18) (Read error: Connection reset by peer)
2023-08-11 22:39:32 +0200 <Inst> hmmm, hmatrix seems to be working on 9.4.6
2023-08-11 22:40:24 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-08-11 22:42:02 +0200dmj`(sid72307@id-72307.hampstead.irccloud.com) (Ping timeout: 245 seconds)
2023-08-11 22:42:14 +0200aspen(sid449115@id-449115.helmsley.irccloud.com) (Ping timeout: 246 seconds)
2023-08-11 22:42:24 +0200aspen(sid449115@id-449115.helmsley.irccloud.com)
2023-08-11 22:42:35 +0200cbarrett(sid192934@id-192934.helmsley.irccloud.com) (Ping timeout: 246 seconds)
2023-08-11 22:43:17 +0200rubin55(sid175221@id-175221.hampstead.irccloud.com) (Ping timeout: 245 seconds)
2023-08-11 22:43:17 +0200Guest3051(sid1055@id-1055.tinside.irccloud.com) (Ping timeout: 246 seconds)
2023-08-11 22:43:47 +0200dmj`(sid72307@id-72307.hampstead.irccloud.com)
2023-08-11 22:44:40 +0200titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-08-11 22:46:02 +0200 <Inst> also, if you guys are interested in mercury:
2023-08-11 22:46:03 +0200 <Inst> https://growjo.com/company/Mercury_-_Banking_for_Startups
2023-08-11 22:46:19 +0200 <Inst> 1/10th the revenue of Stripe, which is pretty awesome
2023-08-11 22:46:35 +0200cbarrett(sid192934@id-192934.helmsley.irccloud.com)
2023-08-11 22:46:47 +0200Guest3051(sid1055@id-1055.tinside.irccloud.com)
2023-08-11 22:47:07 +0200rubin55(sid175221@id-175221.hampstead.irccloud.com)
2023-08-11 22:47:16 +0200 <[exa]> Inst: that's very offtopic
2023-08-11 22:48:42 +0200 <Inst> i mean Mercury is a Haskell shop
2023-08-11 22:48:57 +0200 <Inst> https://serokell.io/blog/haskell-in-production-mercury
2023-08-11 22:49:31 +0200 <Inst> oh, and more importantly, Matt Parsons is at Mercury
2023-08-11 22:53:29 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-08-11 22:54:38 +0200stef204(~stef204@user/stef204)
2023-08-11 22:55:25 +0200 <Inst> hmatrix still crashes on 9.4.6
2023-08-11 22:55:49 +0200 <Inst> https://media.discordapp.net/attachments/968989726633779215/1139663457923371038/image.png?width=22…
2023-08-11 22:57:04 +0200Guest4879(~finn@81-67-22-3.rev.numericable.fr) (Ping timeout: 256 seconds)
2023-08-11 22:58:27 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-08-11 22:58:43 +0200LispTyro(~pepsi@iron.vengarl.com)
2023-08-11 23:00:42 +0200 <EvanR> the functional-logic language Mercury looks pretty cool, also off topic
2023-08-11 23:03:01 +0200 <Inst> hey Mercury is a Haskell banner carrier
2023-08-11 23:03:22 +0200 <Inst> and an applicative-tier donor to Haskell Foundation
2023-08-11 23:03:36 +0200oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
2023-08-11 23:03:55 +0200kimiamania60(~65804703@user/kimiamania) (Quit: PegeLinux)
2023-08-11 23:04:24 +0200kimiamania60(~65804703@user/kimiamania)
2023-08-11 23:05:54 +0200 <Inst> okay, but HMatrix works on WSL2 Debian (Win10), thank god
2023-08-11 23:07:46 +0200neuroevolutus(~neuroevol@2606:2e00:8007:1::a31e) (Quit: Client closed)
2023-08-11 23:08:15 +0200mango(~finn@81-67-22-3.rev.numericable.fr)
2023-08-11 23:15:25 +0200 <EvanR> what are you using hmatrix for
2023-08-11 23:15:26 +0200anselmschueler(~anselmsch@user/schuelermine)
2023-08-11 23:15:44 +0200 <anselmschueler> Are there some tools that allow me to generate a man page with my Cabal build? Can cabal install a man page?
2023-08-11 23:16:07 +0200 <Inst> nothing, it's just a key library and i'm just griping about crappy windows support
2023-08-11 23:17:48 +0200 <EvanR> ah, in the sense that python is really a conduit for people to use numpy xD
2023-08-11 23:19:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 23:20:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-08-11 23:20:44 +0200mango(~finn@81-67-22-3.rev.numericable.fr) (Ping timeout: 246 seconds)
2023-08-11 23:20:53 +0200michalz(~michalz@185.246.207.221) (Remote host closed the connection)
2023-08-11 23:22:09 +0200anselmschueler(~anselmsch@user/schuelermine) (Quit: WeeChat 4.0.2)
2023-08-11 23:22:42 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
2023-08-11 23:24:16 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 256 seconds)
2023-08-11 23:29:30 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 23:29:30 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 23:29:30 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 23:30:18 +0200Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2023-08-11 23:30:51 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2023-08-11 23:31:49 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-11 23:31:51 +0200Inst_(~Inst@2601:6c4:4081:2fc0:3c6d:b6bf:29e1:9f21)
2023-08-11 23:31:59 +0200EvanR(~EvanR@user/evanr)
2023-08-11 23:34:18 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
2023-08-11 23:35:01 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2023-08-11 23:35:08 +0200Inst(~Inst@2601:6c4:4081:2fc0:20bc:c565:40db:3ab2) (Ping timeout: 248 seconds)
2023-08-11 23:36:43 +0200sm(~sm@plaintextaccounting/sm)
2023-08-11 23:37:10 +0200hugo(znc@verdigris.lysator.liu.se)
2023-08-11 23:38:18 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-08-11 23:38:28 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-08-11 23:40:05 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-08-11 23:40:20 +0200puke(~puke@user/puke) (Remote host closed the connection)
2023-08-11 23:41:15 +0200puke(~puke@user/puke)
2023-08-11 23:43:22 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 23:43:22 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 23:43:22 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 23:43:33 +0200tv(~tv@user/tv) (Ping timeout: 246 seconds)
2023-08-11 23:45:05 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-08-11 23:45:44 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-08-11 23:46:24 +0200 <justsomeguy> I'm writing out the reduction steps for foldr/scanr and foldl/scanl for practice. What's a good definition of scanl? I don't see one that's written in terms of foldl.
2023-08-11 23:47:35 +0200 <int-e> > scanl (+) 0 [1..] -- this is lazy, so it can't be a foldl. you /can/ write it with foldr
2023-08-11 23:47:37 +0200 <lambdabot> [0,1,3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210,231,253,2...
2023-08-11 23:49:08 +0200 <justsomeguy> I found this definition of scanl, but it seems really weird: https://hackage.haskell.org/package/base-4.18.0.0/docs/src/GHC.List.html#scanl
2023-08-11 23:49:38 +0200 <justsomeguy> I guess I just expected scanl to be implemented in terms of foldl.
2023-08-11 23:49:38 +0200 <int-e> > foldr (\x xs a -> a : xs (x + a)) (:[]) [1..] 0
2023-08-11 23:49:40 +0200 <lambdabot> [0,1,3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210,231,253,2...
2023-08-11 23:51:55 +0200 <monochrom> scanl is not in terms of foldl
2023-08-11 23:52:14 +0200dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-08-11 23:53:02 +0200 <int-e> > let scanl f a0 xs = foldr (\x xs a -> a : xs (f a x)) (:[]) xs a0 in scanl (+) 0 [1..]
2023-08-11 23:53:04 +0200 <lambdabot> [0,1,3,6,10,15,21,28,36,45,55,66,78,91,105,120,136,153,171,190,210,231,253,2...
2023-08-11 23:53:11 +0200 <int-e> (always a fun exercise)
2023-08-11 23:53:18 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-08-11 23:53:40 +0200codaraxis__(~codaraxis@user/codaraxis)
2023-08-11 23:53:51 +0200 <int-e> justsomeguy: you could just pretend that `scanlGo` is the actual definition of `scanl`.
2023-08-11 23:54:18 +0200img(~img@user/img)
2023-08-11 23:54:38 +0200 <int-e> The indirection is for internal GHC reasons, having to do with how list fusion works.
2023-08-11 23:54:41 +0200 <int-e> @src scanl
2023-08-11 23:54:41 +0200 <lambdabot> scanl f q ls = q : case ls of
2023-08-11 23:54:42 +0200 <lambdabot> [] -> []
2023-08-11 23:54:42 +0200 <lambdabot> x:xs -> scanl f (f q x) xs
2023-08-11 23:55:39 +0200sm(~sm@plaintextaccounting/sm)
2023-08-11 23:55:57 +0200codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 246 seconds)
2023-08-11 23:56:16 +0200 <justsomeguy> That does look easier to write on paper :D
2023-08-11 23:56:27 +0200 <EvanR> justsomeguy, your thing about scanl being implemented with foldl is a great excuse to do an investigation into what foldl and foldr "really do"
2023-08-11 23:57:23 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-11 23:57:24 +0200dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-11 23:57:24 +0200dibblego(~dibblego@haskell/developer/dibblego)
2023-08-11 23:57:28 +0200 <EvanR> with the intended goal to see why that can't be done and makes no sense
2023-08-11 23:58:03 +0200 <justsomeguy> That's a good point, EvanR. Thank you for bringing that up.
2023-08-11 23:58:07 +0200 <EvanR> bonus points for figuring out a plausible story for why they're named the way they are
2023-08-11 23:58:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-11 23:58:47 +0200 <monochrom> That one would be historical reasons and back when people had only thought of lists.
2023-08-11 23:59:40 +0200 <EvanR> @src scanr
2023-08-11 23:59:40 +0200 <lambdabot> scanr _ q0 [] = [q0]
2023-08-11 23:59:40 +0200 <lambdabot> scanr f q0 (x:xs) = f x q : qs
2023-08-11 23:59:40 +0200 <lambdabot> where qs@(q:_) = scanr f q0 xs
2023-08-11 23:59:54 +0200 <int-e> monochrom: it still makes sense for foldables