2023/06/26

2023-06-26 00:02:34 +0000migas(~migas@astra4961.startdedicated.net) (Quit: The Lounge - https://thelounge.github.io)
2023-06-26 00:03:17 +0000migas(~migas@astra4961.startdedicated.net)
2023-06-26 00:03:50 +0000ai5lk(~ai5lk@209-188-121-236.taosnet.com) (Quit: WeeChat 3.8)
2023-06-26 00:07:42 +0000gurkenglas(~gurkengla@dynamic-046-114-165-003.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-06-26 00:08:08 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-06-26 00:08:32 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-06-26 00:14:52 +0000chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2023-06-26 00:15:24 +0000chiselfuse(~chiselfus@user/chiselfuse)
2023-06-26 00:15:37 +0000oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 245 seconds)
2023-06-26 00:23:51 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-06-26 00:29:00 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-06-26 00:32:42 +0000bontaq(~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 245 seconds)
2023-06-26 00:36:13 +0000Guest59(~Guest59@116.88.135.68)
2023-06-26 00:42:20 +0000falafel(~falafel@2607:fb91:86c:d890:9962:f260:f358:d40)
2023-06-26 00:45:05 +0000aforemny_(~aforemny@2001:9e8:6cf9:2000:2f46:f521:c777:24fd) (Ping timeout: 246 seconds)
2023-06-26 00:46:41 +0000falafel(~falafel@2607:fb91:86c:d890:9962:f260:f358:d40) (Read error: Connection reset by peer)
2023-06-26 00:51:23 +0000bratwurst(~dfadsva@2604:3d09:207f:f650::38e4) (Quit: Leaving)
2023-06-26 00:55:23 +0000aforemny(~aforemny@2001:9e8:6cd1:4a00:8861:d64a:a85d:46b5)
2023-06-26 00:58:21 +0000Guest59(~Guest59@116.88.135.68) (Quit: Client closed)
2023-06-26 01:10:19 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-06-26 01:11:29 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-06-26 01:15:15 +0000koolazer(~koo@user/koolazer) (Server closed connection)
2023-06-26 01:15:32 +0000koolazer(~koo@user/koolazer)
2023-06-26 01:17:20 +0000mmhat(~mmh@p200300f1c74b7df3ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-06-26 01:17:30 +0000justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2023-06-26 01:17:36 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-06-26 01:21:18 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
2023-06-26 01:27:32 +0000xff0x(~xff0x@2405:6580:b080:900:2989:814e:3688:2bc9) (Ping timeout: 240 seconds)
2023-06-26 01:37:02 +0000arrowhead(~arrowhead@2603-7000-9b3f-6934-113b-52a3-c542-4d62.res6.spectrum.com)
2023-06-26 01:37:14 +0000nyc(~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com)
2023-06-26 01:37:32 +0000arrowhead(~arrowhead@2603-7000-9b3f-6934-113b-52a3-c542-4d62.res6.spectrum.com) ()
2023-06-26 01:53:36 +0000jero98772(~jero98772@2800:484:1d7f:5d36::3) (Remote host closed the connection)
2023-06-26 02:14:49 +0000xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-06-26 02:16:04 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-06-26 02:21:21 +0000trev(~trev@user/trev)
2023-06-26 02:22:36 +0000connrs(~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in)
2023-06-26 02:22:53 +0000connrs(~connrs@user/connrs)
2023-06-26 02:22:57 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-06-26 02:24:53 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-06-26 02:24:53 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-06-26 02:24:53 +0000finn_elijaFinnElija
2023-06-26 02:30:26 +0000td_(~td@i53870908.versanet.de) (Ping timeout: 246 seconds)
2023-06-26 02:32:14 +0000td_(~td@i53870921.versanet.de)
2023-06-26 02:33:16 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-06-26 02:36:31 +0000phma(phma@2001:5b0:211f:2f08:d5:59c5:25af:c289) (Read error: Connection reset by peer)
2023-06-26 02:36:56 +0000phma(phma@2001:5b0:211f:2f08:2fbf:64bb:cfdf:aec3)
2023-06-26 02:38:26 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2023-06-26 02:41:33 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-06-26 02:57:01 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-06-26 02:59:54 +0000phma(phma@2001:5b0:211f:2f08:2fbf:64bb:cfdf:aec3) (Read error: Connection reset by peer)
2023-06-26 03:00:18 +0000phma(~phma@host-67-44-208-160.hnremote.net)
2023-06-26 03:19:32 +0000fiddlerwoaroof_fiddlerwoaroof
2023-06-26 03:19:47 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-06-26 03:32:11 +0000aforemny_(~aforemny@i59F516C6.versanet.de)
2023-06-26 03:33:35 +0000aforemny(~aforemny@2001:9e8:6cd1:4a00:8861:d64a:a85d:46b5) (Ping timeout: 264 seconds)
2023-06-26 03:41:56 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-06-26 04:00:27 +0000actioninja(~actioninj@user/actioninja) (Quit: see ya mane)
2023-06-26 04:00:53 +0000actioninja(~actioninj@user/actioninja)
2023-06-26 04:06:21 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-06-26 04:08:56 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-06-26 04:09:21 +0000sleym(~sleym@user/sleym)
2023-06-26 04:12:01 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-06-26 04:16:22 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2023-06-26 04:26:28 +0000Square2(~Square@user/square)
2023-06-26 04:30:12 +0000 <Square2> Is it possible to invoke "f :: forall a. SomeClass a => a" wo specifying what "a" is. Instead just use functions of "SomeClass" ?
2023-06-26 04:36:44 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142) (Ping timeout: 250 seconds)
2023-06-26 04:38:11 +0000 <Axman6> how would the compiler know which instance to use if it doesn't know what a is?
2023-06-26 04:41:36 +0000 <Square2> Axman6, Beats me. I hoped magic would kick in.
2023-06-26 04:42:09 +0000 <Square2> thanks for your reply. Now I know its not possible at least.
2023-06-26 04:44:07 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-06-26 04:44:20 +0000pierrot(~pi@user/pierrot) (Server closed connection)
2023-06-26 04:44:39 +0000pierrot(~pi@user/pierrot)
2023-06-26 04:46:46 +0000Square2(~Square@user/square) (Ping timeout: 252 seconds)
2023-06-26 04:50:40 +0000 <Axman6> you can write algorithms generic in SomeClass, and let the user choose which instance they want though
2023-06-26 05:05:46 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds)
2023-06-26 05:07:28 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-06-26 05:08:32 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2023-06-26 05:15:43 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-06-26 05:16:44 +0000jbalint(~jbalint@071-090-119-177.res.spectrum.com) (Ping timeout: 240 seconds)
2023-06-26 05:20:04 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
2023-06-26 05:24:07 +0000chromoblob(~user@37.113.180.121)
2023-06-26 05:27:38 +0000Guest52(~Guest28@KD111099018012.ppp-bb.dion.ne.jp)
2023-06-26 05:28:28 +0000jbalint(~jbalint@071-090-119-177.res.spectrum.com)
2023-06-26 05:30:02 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
2023-06-26 05:30:33 +0000Guest52(~Guest28@KD111099018012.ppp-bb.dion.ne.jp) (Client Quit)
2023-06-26 05:35:38 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-06-26 05:35:41 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 05:37:20 +0000titibandit(~titibandi@user/titibandit)
2023-06-26 05:38:59 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-06-26 05:40:00 +0000hippoid(~hippoid@user/hippoid) (Ping timeout: 250 seconds)
2023-06-26 05:40:46 +0000hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net)
2023-06-26 05:40:59 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-06-26 05:47:45 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142) (Ping timeout: 260 seconds)
2023-06-26 05:50:23 +0000chromoblob(~user@37.113.180.121) (Ping timeout: 264 seconds)
2023-06-26 05:51:24 +0000chromoblob(~user@37.113.180.121)
2023-06-26 05:52:04 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-06-26 05:56:17 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2023-06-26 05:56:26 +0000kyuri(~kyuri@KD111099018012.ppp-bb.dion.ne.jp)
2023-06-26 05:57:16 +0000abrantesasf(~abrantesa@179.217.48.72) (Remote host closed the connection)
2023-06-26 05:58:47 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 05:59:33 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-06-26 06:01:11 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
2023-06-26 06:01:35 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-06-26 06:03:35 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-06-26 06:13:45 +0000acidjnk(~acidjnk@p200300d6e7072f355d50cb0f60b9d9c7.dip0.t-ipconnect.de)
2023-06-26 06:14:29 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-06-26 06:15:18 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 06:21:19 +0000kyuri1(~kyuri@210.160.217.2)
2023-06-26 06:21:52 +0000kyuri(~kyuri@KD111099018012.ppp-bb.dion.ne.jp) ()
2023-06-26 06:28:01 +0000michalz(~michalz@185.246.207.201)
2023-06-26 06:28:38 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-06-26 06:33:57 +0000nut(~nut@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
2023-06-26 06:36:30 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 06:49:47 +0000hpc(~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 245 seconds)
2023-06-26 06:51:43 +0000hpc(~juzz@ip98-169-35-163.dc.dc.cox.net)
2023-06-26 06:52:23 +0000 <jade[m]> <Square2> "Is it possible to invoke "f..." <- you could use a newtype wrapper around some structure
2023-06-26 06:56:02 +0000nyc(~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Ping timeout: 245 seconds)
2023-06-26 06:57:41 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-06-26 06:58:24 +0000chele(~chele@user/chele)
2023-06-26 07:01:59 +0000Guest9511(~finn@176-151-21-224.abo.bbox.fr)
2023-06-26 07:06:17 +0000Guest9511(~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 258 seconds)
2023-06-26 07:06:48 +0000mcglk(~mcglk@131.191.19.145) (Remote host closed the connection)
2023-06-26 07:10:08 +0000shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 250 seconds)
2023-06-26 07:11:30 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-06-26 07:13:10 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 250 seconds)
2023-06-26 07:15:30 +0000cfricke(~cfricke@user/cfricke)
2023-06-26 07:15:50 +0000 <dminuoso> Is there a simple/small graph library to represent and work with DAGs? In particular, I would like to zip around the graph and traverse in or outbound edges.
2023-06-26 07:16:12 +0000hugo(znc@verdigris.lysator.liu.se)
2023-06-26 07:18:22 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
2023-06-26 07:18:35 +0000sleym(~sleym@user/sleym) (Quit: sleym)
2023-06-26 07:18:56 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2023-06-26 07:19:50 +0000jespada(~jespada@207.188.139.183)
2023-06-26 07:20:58 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:e56:50b4:8cbc:f250)
2023-06-26 07:28:18 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-06-26 07:29:23 +0000taupiqueur(~taupiqueu@2a02-842a-8180-4601-08a1-ddae-00eb-83a7.rev.sfr.net) (Ping timeout: 264 seconds)
2023-06-26 07:29:55 +0000 <Axman6> a graph zipper?
2023-06-26 07:30:07 +0000tom__(~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
2023-06-26 07:30:08 +0000 <Axman6> I only know of fgl, and have never used it
2023-06-26 07:30:48 +0000oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
2023-06-26 07:30:49 +0000fendor(~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a)
2023-06-26 07:34:24 +0000tom_(~tom@host81-151-255-71.range81-151.btcentralplus.com) (Ping timeout: 250 seconds)
2023-06-26 07:36:15 +0000euandreh(~Thunderbi@189.6.18.7)
2023-06-26 07:37:06 +0000doyougnu(~doyougnu@45.46.170.68) (Quit: ZNC 1.8.2 - https://znc.in)
2023-06-26 07:37:27 +0000doyougnu(~doyougnu@45.46.170.68)
2023-06-26 07:37:31 +0000econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-06-26 07:38:14 +0000mncheck-m(~mncheck@193.224.205.254) (Remote host closed the connection)
2023-06-26 07:38:14 +0000 <dminuoso> Mmm, fgl I had not considered. I will take a deeper look at it
2023-06-26 07:38:37 +0000 <dminuoso> I like thjat its really low on dependencies. :)
2023-06-26 07:39:04 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-06-26 07:39:36 +0000kyuri1(~kyuri@210.160.217.2) (Quit: Leaving.)
2023-06-26 07:40:16 +0000kyuri(~kyuri@210.160.217.2)
2023-06-26 07:40:18 +0000gehmehgeh(~user@user/gehmehgeh)
2023-06-26 07:40:30 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
2023-06-26 07:40:56 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-06-26 07:42:04 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-06-26 07:42:43 +0000hisa383(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
2023-06-26 07:44:22 +0000hisa38(~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 250 seconds)
2023-06-26 07:44:22 +0000hisa383hisa38
2023-06-26 07:44:27 +0000 <int-e> Unless I need a specific algorithm, I often find it easier to just define an ad-hoc graph type.
2023-06-26 07:44:35 +0000euandreh(~Thunderbi@189.6.18.7)
2023-06-26 07:44:46 +0000mncheck(~mncheck@193.224.205.254)
2023-06-26 07:50:36 +0000hugo(znc@verdigris.lysator.liu.se)
2023-06-26 07:51:33 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 07:56:23 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-06-26 07:57:20 +0000Guest9511(~finn@176-151-21-224.abo.bbox.fr)
2023-06-26 07:57:46 +0000Pickchea(~private@user/pickchea)
2023-06-26 07:58:17 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
2023-06-26 07:59:29 +0000aforemny_aforemny
2023-06-26 08:03:56 +0000nschoe(~q@141.101.51.197)
2023-06-26 08:06:30 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
2023-06-26 08:10:09 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 08:13:34 +0000kyuri(~kyuri@210.160.217.2) ()
2023-06-26 08:14:28 +0000jespada(~jespada@207.188.139.183) (Quit: Textual IRC Client: www.textualapp.com)
2023-06-26 08:14:34 +0000euandreh(~Thunderbi@189.6.18.7)
2023-06-26 08:15:43 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-06-26 08:16:50 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-06-26 08:19:04 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 252 seconds)
2023-06-26 08:21:49 +0000euandreh(~Thunderbi@189.6.18.7)
2023-06-26 08:26:24 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 252 seconds)
2023-06-26 08:32:06 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-06-26 08:34:25 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
2023-06-26 08:34:48 +0000jespada(~jespada@207.188.139.183)
2023-06-26 08:36:22 +0000euandreh(~Thunderbi@189.6.18.7)
2023-06-26 08:39:47 +0000gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2023-06-26 08:41:00 +0000euandreh(~Thunderbi@189.6.18.7) (Ping timeout: 260 seconds)
2023-06-26 08:42:58 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Remote host closed the connection)
2023-06-26 08:43:05 +0000cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.8)
2023-06-26 08:45:43 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-06-26 08:45:55 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef)
2023-06-26 08:58:08 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2023-06-26 08:58:25 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef) (Quit: CiaoSen)
2023-06-26 08:59:12 +0000euandreh(~Thunderbi@189.6.18.7)
2023-06-26 08:59:32 +0000danse-nr3(~francesco@ge-19-116-153.service.infuturo.it)
2023-06-26 09:00:45 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef)
2023-06-26 09:05:58 +0000merijn(~merijn@145.94.126.249)
2023-06-26 09:08:17 +0000ericson2314(~ericson23@2001:470:69fc:105::70c) (Remote host closed the connection)
2023-06-26 09:10:20 +0000misterfish(~misterfis@87.215.131.102)
2023-06-26 09:10:57 +0000mmhat(~mmh@p200300f1c74b7df3ee086bfffe095315.dip0.t-ipconnect.de)
2023-06-26 09:11:30 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
2023-06-26 09:11:34 +0000daemon_(uid606752@id-606752.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-06-26 09:11:38 +0000mmhat(~mmh@p200300f1c74b7df3ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
2023-06-26 09:11:55 +0000merijn(~merijn@145.94.126.249) (Ping timeout: 260 seconds)
2023-06-26 09:14:59 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2023-06-26 09:16:55 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-06-26 09:18:10 +0000 <jackdk> dminuoso: https://hackage.haskell.org/package/algebraic-graphs is based off a cool paper
2023-06-26 09:18:49 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-06-26 09:19:16 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2023-06-26 09:19:28 +0000danse-nr3(~francesco@ge-19-116-153.service.infuturo.it) (Read error: Connection reset by peer)
2023-06-26 09:19:34 +0000danse-nr3_(~francesco@151.35.43.168)
2023-06-26 09:21:25 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-06-26 09:21:42 +0000Lord_of_Life_Lord_of_Life
2023-06-26 09:24:45 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-06-26 09:28:48 +0000cfricke(~cfricke@user/cfricke)
2023-06-26 09:33:59 +0000titiband1t(~titibandi@user/titibandit)
2023-06-26 09:39:07 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 09:40:27 +0000titiband1t(~titibandi@user/titibandit) (Remote host closed the connection)
2023-06-26 09:43:29 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0)
2023-06-26 09:45:36 +0000danse-nr3_(~francesco@151.35.43.168) (Ping timeout: 252 seconds)
2023-06-26 09:47:33 +0000ft(~ft@p508db151.dip0.t-ipconnect.de) (Quit: leaving)
2023-06-26 09:48:05 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Ping timeout: 260 seconds)
2023-06-26 09:50:01 +0000danse-nr3_(~francesco@151.35.43.168)
2023-06-26 09:50:09 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-06-26 09:50:32 +0000dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-06-26 09:53:36 +0000nschoe(~q@141.101.51.197) (Quit: Switching off)
2023-06-26 09:54:05 +0000yaroot_(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c)
2023-06-26 09:54:15 +0000yaroot(~yaroot@p2782030-ipngn7701souka.saitama.ocn.ne.jp) (Ping timeout: 246 seconds)
2023-06-26 09:54:15 +0000yaroot_yaroot
2023-06-26 09:57:24 +0000merijn(~merijn@145.94.126.249)
2023-06-26 09:57:35 +0000Guest9511(~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 264 seconds)
2023-06-26 09:57:35 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 10:00:55 +0000Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2023-06-26 10:01:12 +0000Feuermagier(~Feuermagi@user/feuermagier)
2023-06-26 10:01:47 +0000drdo(~drdo@bl8-153-185.dsl.telepac.pt) (Quit: Ping timeout (120 seconds))
2023-06-26 10:02:00 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-06-26 10:02:07 +0000drdo(~drdo@bl8-153-185.dsl.telepac.pt)
2023-06-26 10:03:57 +0000xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds)
2023-06-26 10:05:52 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
2023-06-26 10:10:24 +0000merijn(~merijn@145.94.126.249) (Ping timeout: 250 seconds)
2023-06-26 10:10:25 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-06-26 10:10:52 +0000__monty__(~toonn@user/toonn)
2023-06-26 10:13:16 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2023-06-26 10:18:04 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2023-06-26 10:18:52 +0000hackyhacker(~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3) (Server closed connection)
2023-06-26 10:19:33 +0000hackyhacker(~hackyhack@2a05:f480:1400:24b2:5400:4ff:fe76:a8f3)
2023-06-26 10:22:05 +0000Unode(~Unode@fg-ext-220.embl.de) (Server closed connection)
2023-06-26 10:22:48 +0000Unode(~Unode@fg-ext-220.embl.de)
2023-06-26 10:23:32 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
2023-06-26 10:23:48 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 10:24:51 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef)
2023-06-26 10:33:08 +0000merijn(~merijn@145.94.126.249)
2023-06-26 10:35:33 +0000bontaq(~user@ool-45779b84.dyn.optonline.net)
2023-06-26 10:38:44 +0000merijn(~merijn@145.94.126.249) (Ping timeout: 240 seconds)
2023-06-26 10:40:41 +0000cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.8)
2023-06-26 10:44:51 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0)
2023-06-26 10:45:00 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2023-06-26 10:46:34 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 10:49:23 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Ping timeout: 258 seconds)
2023-06-26 10:50:42 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
2023-06-26 10:53:58 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl)
2023-06-26 10:57:08 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:e56:50b4:8cbc:f250) (Ping timeout: 240 seconds)
2023-06-26 10:59:47 +0000merijn(~merijn@c-001-001-003.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
2023-06-26 11:02:45 +0000romes[m](~romesmatr@2001:470:69fc:105::2:1660) (Server closed connection)
2023-06-26 11:02:57 +0000romes[m](~romesmatr@2001:470:69fc:105::2:1660)
2023-06-26 11:06:05 +0000shriekingnoise(~shrieking@186.137.175.87)
2023-06-26 11:06:33 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-06-26 11:07:33 +0000xff0x(~xff0x@ai098135.d.east.v6connect.net)
2023-06-26 11:10:44 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-06-26 11:15:37 +0000akadude[m](~akadudema@2001:470:69fc:105::2:5bf7) (Server closed connection)
2023-06-26 11:15:49 +0000akadude[m](~akadudema@2001:470:69fc:105::2:5bf7)
2023-06-26 11:18:30 +0000fweht(uid404746@id-404746.lymington.irccloud.com)
2023-06-26 11:20:59 +0000mxs(~mxs@user/mxs) (Ping timeout: 264 seconds)
2023-06-26 11:22:20 +0000APic(apic@apic.name) (Ping timeout: 250 seconds)
2023-06-26 11:23:41 +0000infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-06-26 11:24:04 +0000danse-nr3_(~francesco@151.35.43.168) (Ping timeout: 250 seconds)
2023-06-26 11:25:39 +0000Guest9511(~finn@176-151-21-224.abo.bbox.fr)
2023-06-26 11:26:35 +0000infinity0(~infinity0@pwned.gg)
2023-06-26 11:27:42 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-06-26 11:27:59 +0000nut(~nut@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2023-06-26 11:31:42 +0000marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Server closed connection)
2023-06-26 11:31:56 +0000marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2023-06-26 11:43:58 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-06-26 11:51:35 +0000ceoltb^(~ceoltb@24.125.210.85)
2023-06-26 11:58:54 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 11:58:59 +0000Inst_(~Inst@2601:6c4:4081:2fc0:61ec:e42a:c603:c093) (Ping timeout: 240 seconds)
2023-06-26 12:00:49 +0000Inst(~Inst@c-76-101-10-131.hsd1.fl.comcast.net)
2023-06-26 12:00:56 +0000gurkenglas(~gurkengla@dynamic-046-114-164-153.46.114.pool.telefonica.de)
2023-06-26 12:02:48 +0000Inst(~Inst@c-76-101-10-131.hsd1.fl.comcast.net) (Read error: Connection reset by peer)
2023-06-26 12:03:15 +0000Inst(~Inst@c-76-101-10-131.hsd1.fl.comcast.net)
2023-06-26 12:05:09 +0000thblt(~thblt@user/thblt)
2023-06-26 12:06:21 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-06-26 12:06:21 +0000titibandit(~titibandi@user/titibandit) (Read error: Connection reset by peer)
2023-06-26 12:06:39 +0000titibandit(~titibandi@user/titibandit)
2023-06-26 12:08:42 +0000Sciencentistguy4(~sciencent@hacksoc/ordinary-member)
2023-06-26 12:08:44 +0000danse-nr3_(~francesco@151.35.48.183)
2023-06-26 12:10:20 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 240 seconds)
2023-06-26 12:10:20 +0000Sciencentistguy4Sciencentistguy
2023-06-26 12:13:14 +0000nyc(~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com)
2023-06-26 12:13:55 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-06-26 12:14:22 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:9e3f:72b6:b558:f53d)
2023-06-26 12:15:41 +0000 <thblt> I came accross this syntax in safe-money: newtype Dense (currency :: Symbol) = Dense Rational. I understand that it means that the Dense type is specialized per currency (so you can't add USD to EUR). But what is this syntax? Type families?
2023-06-26 12:17:40 +0000 <jade[m]> the hint GHC gives is to enable DataKinds which makes it compile
2023-06-26 12:18:28 +0000gurkenglas(~gurkengla@dynamic-046-114-164-153.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-06-26 12:18:32 +0000 <jade[m]> since that extension doesn't imply any other it seems like that's the one
2023-06-26 12:19:26 +0000 <dminuoso> The hint does nto enable DataKinds, its merely a kind annotation.
2023-06-26 12:20:06 +0000 <thblt> thanks!
2023-06-26 12:20:13 +0000 <dminuoso> thblt: If you wrote `newtype Dense currency = Dense Rational` something like `Dense Int` or `Dense Maybe` (with PolyKinds) would be valid
2023-06-26 12:20:26 +0000 <thblt> dminuoso: I think jade[m] meant ghc's suggestion when compiling this as is
2023-06-26 12:20:30 +0000 <dminuoso> Symbol constrains type parameters to those types of type Symbol
2023-06-26 12:20:44 +0000 <jade[m]> thblt: yep
2023-06-26 12:20:50 +0000 <dminuoso> Such that you can write `Dense "dollar"` in a type
2023-06-26 12:21:36 +0000 <dminuoso> thblt: At any rate, the technical term of what this is used for is "phantom types"
2023-06-26 12:22:10 +0000 <dminuoso> You could utilize them in type families too, but I cant think of a useful scenario in this particular example
2023-06-26 12:22:52 +0000 <dminuoso> phantom types with `symbols` - which is a kind of uninhabited types that you can use as annotations in phantom types.
2023-06-26 12:23:07 +0000 <thblt> Ha, thanks, makes sense. I knew about those in data, but I didn't think they'd work with newtype.
2023-06-26 12:23:25 +0000 <dminuoso> thblt: Consider that newtype gets erased completely at compile time.
2023-06-26 12:23:37 +0000 <dminuoso> If anything it would be the other way around.
2023-06-26 12:23:43 +0000 <thblt> Yes, it's obvious in hindsight :)
2023-06-26 12:25:55 +0000Midjak(~Midjak@82.66.147.146)
2023-06-26 12:26:08 +0000cfricke(~cfricke@user/cfricke)
2023-06-26 12:26:58 +0000cfricke(~cfricke@user/cfricke) (Client Quit)
2023-06-26 12:27:07 +0000cfricke(~cfricke@user/cfricke)
2023-06-26 12:32:17 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-06-26 12:35:59 +0000Guest9511(~finn@176-151-21-224.abo.bbox.fr) (Ping timeout: 264 seconds)
2023-06-26 12:39:02 +0000danse-nr3_(~francesco@151.35.48.183) (Ping timeout: 252 seconds)
2023-06-26 12:39:27 +0000caubert(~caubert@user/caubert) (Quit: WeeChat 3.8)
2023-06-26 12:41:22 +0000smalltalkman(uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-06-26 12:42:39 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-06-26 12:43:27 +0000caubert(~caubert@user/caubert)
2023-06-26 12:46:48 +0000nschoe(~q@141.101.51.197)
2023-06-26 13:03:18 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
2023-06-26 13:05:01 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-06-26 13:18:26 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-06-26 13:19:10 +0000fendor(~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) (Remote host closed the connection)
2023-06-26 13:22:42 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
2023-06-26 13:23:38 +0000fendor(~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a)
2023-06-26 13:30:29 +0000siraben(~siraben@user/siraben)
2023-06-26 13:31:02 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 13:35:05 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
2023-06-26 13:42:58 +0000yaroot(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c) (Read error: Connection reset by peer)
2023-06-26 13:43:13 +0000yaroot(~yaroot@p3274042-ipngn2701souka.saitama.ocn.ne.jp)
2023-06-26 13:43:34 +0000infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-06-26 13:45:40 +0000infinity0(~infinity0@pwned.gg)
2023-06-26 13:49:56 +0000mizlan(~mizlan@c-73-63-223-227.hsd1.ca.comcast.net)
2023-06-26 13:52:17 +0000ripspin(~chatzilla@1.145.163.38)
2023-06-26 13:53:33 +0000infinity0_(~infinity0@pwned.gg)
2023-06-26 13:53:34 +0000infinity0(~infinity0@pwned.gg) (Killed (zirconium.libera.chat (Nickname regained by services)))
2023-06-26 13:53:34 +0000infinity0_infinity0
2023-06-26 13:58:01 +0000sm[i](~smi]@plaintextaccounting/sm)
2023-06-26 13:58:15 +0000infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-06-26 14:00:21 +0000infinity0(~infinity0@pwned.gg)
2023-06-26 14:03:50 +0000ddellacosta(~ddellacos@146.70.185.136) (Quit: WeeChat 3.8)
2023-06-26 14:03:56 +0000Lycurgus(~juan@user/Lycurgus)
2023-06-26 14:03:58 +0000mxs(~mxs@user/mxs)
2023-06-26 14:04:29 +0000APic(apic@apic.name)
2023-06-26 14:04:33 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-06-26 14:04:34 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-06-26 14:04:34 +0000wroathe(~wroathe@user/wroathe)
2023-06-26 14:05:17 +0000sm[i](~smi]@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2023-06-26 14:07:26 +0000titibandit(~titibandi@user/titibandit) (Read error: Connection reset by peer)
2023-06-26 14:07:29 +0000ystael(~ystael@user/ystael)
2023-06-26 14:09:05 +0000ddellacosta(~ddellacos@146.70.171.100)
2023-06-26 14:10:47 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 246 seconds)
2023-06-26 14:12:35 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2023-06-26 14:13:28 +0000titibandit(~titibandi@user/titibandit)
2023-06-26 14:14:35 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-06-26 14:18:56 +0000gurkenglas(~gurkengla@dynamic-046-114-164-153.46.114.pool.telefonica.de)
2023-06-26 14:20:07 +0000hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2023-06-26 14:20:30 +0000hrberg(~quassel@171.79-160-161.customer.lyse.net)
2023-06-26 14:20:48 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-06-26 14:21:01 +0000titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-06-26 14:23:29 +0000thegeekinside(~thegeekin@189.217.90.138)
2023-06-26 14:24:34 +0000Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-06-26 14:26:23 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 14:31:01 +0000geranim0(~geranim0@modemcable182.140-177-173.mc.videotron.ca)
2023-06-26 14:43:15 +0000Muon(~muon@2a09:bac5:bec4:1923::281:6b)
2023-06-26 14:45:46 +0000gemmaro`(~gemmaro@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
2023-06-26 14:48:14 +0000mxs(~mxs@user/mxs) (Ping timeout: 246 seconds)
2023-06-26 14:49:47 +0000APic(apic@apic.name) (Ping timeout: 264 seconds)
2023-06-26 14:51:58 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-06-26 14:55:02 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2023-06-26 14:58:34 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 250 seconds)
2023-06-26 15:01:13 +0000gemmaro`(~gemmaro@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Killed buffer)
2023-06-26 15:01:51 +0000Sgeo(~Sgeo@user/sgeo)
2023-06-26 15:02:31 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2023-06-26 15:04:00 +0000nschoe(~q@141.101.51.197) (Ping timeout: 246 seconds)
2023-06-26 15:11:41 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 246 seconds)
2023-06-26 15:13:14 +0000fendor(~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) (Remote host closed the connection)
2023-06-26 15:15:05 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-06-26 15:17:16 +0000econo_(uid147250@id-147250.tinside.irccloud.com)
2023-06-26 15:21:14 +0000whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-06-26 15:21:30 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-06-26 15:23:46 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-06-26 15:27:12 +0000Guest17(~Guest17@2804:14c:5b61:81fe:8c6b:125b:f65c:e13b)
2023-06-26 15:27:16 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-06-26 15:28:55 +0000 <Guest17> I have posted a question on stackoverflow about parse error. If someone could help me I'm will be grateful.
2023-06-26 15:28:56 +0000 <Guest17> https://stackoverflow.com/questions/76557896/parse-error-possiby-identation-or-mismatch-brackets
2023-06-26 15:30:44 +0000 <geekosaur> I see several problems; the parse error(s) are likely missing `do`s after `then`s
2023-06-26 15:31:17 +0000 <geekosaur> I also suspect you're missing parentheses in `mountTree`
2023-06-26 15:31:18 +0000 <jade[m]> and in one of the if's you also have a let binding without any meaning that may be missing an in?
2023-06-26 15:31:38 +0000 <geekosaur> `return` is not a keyword in Haskell
2023-06-26 15:31:57 +0000 <int-e> there's also the lone "tree = mountTree(intitialPath)" in the final do block
2023-06-26 15:31:58 +0000 <jade[m]> I would suggest writing many more smaller functions to compose and not trying to do imperative-ish nesting of conditionals
2023-06-26 15:32:38 +0000 <Guest17> Same error for both
2023-06-26 15:32:55 +0000 <Guest17> ok jade[m] i will attempt to do that.
2023-06-26 15:33:07 +0000 <int-e> Guest17: yeah this looks like you should write something smaller and simpler first
2023-06-26 15:33:36 +0000 <Guest17> yep, but what is this error? I can found it in this code.
2023-06-26 15:33:41 +0000 <geekosaur> it also looks a lot like you're expecting `do` to turn Haskell into "normal" imperative code, which it doesn't
2023-06-26 15:33:48 +0000 <int-e> If you load a file in `ghci` you can test simple functions without having a main function.
2023-06-26 15:34:21 +0000 <geekosaur> you don't show the actual error or any line numbers
2023-06-26 15:34:32 +0000 <jade[m]> furthermore length(some_list) == 0 just screams for a pattern match
2023-06-26 15:35:02 +0000 <geekosaur> but after almost every `then` you have more than one line, which means you need `then do`
2023-06-26 15:36:02 +0000 <Guest17> i will add the `then do`. Trying to load result i na  parse error,,
2023-06-26 15:36:40 +0000 <jade[m]> :r!
2023-06-26 15:36:55 +0000 <geekosaur> also function invocations do not work as `f(a, b, c)`, but as `f a b c`
2023-06-26 15:36:56 +0000 <jade[m]> that will defer errors
2023-06-26 15:37:22 +0000 <jade[m]> and I would try to just avoid if in general as the way you use it is kind of just an antipattern
2023-06-26 15:37:22 +0000 <geekosaur> and what's that bare `leaf + 1`?
2023-06-26 15:37:36 +0000int-esuspects "leaf++"
2023-06-26 15:37:45 +0000 <int-e> (but in another language)
2023-06-26 15:37:53 +0000 <Guest17> ops, dir + 1.
2023-06-26 15:38:18 +0000 <Guest17> i'm attempet to read the dir tree
2023-06-26 15:38:22 +0000 <jade[m]> I would assume they are thinking that haskell is "just like any other imperative language"
2023-06-26 15:38:26 +0000cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2023-06-26 15:38:45 +0000 <jade[m]> besides it actually being fundamentally different
2023-06-26 15:39:11 +0000 <jade[m]> in haskell you can't have statements - you just have expressions that you compose with funcitons
2023-06-26 15:39:27 +0000lortabac(~lortabac@2a01:e0a:541:b8f0:9e3f:72b6:b558:f53d) (Quit: WeeChat 2.8)
2023-06-26 15:39:33 +0000 <Guest17> yep
2023-06-26 15:39:48 +0000 <jade[m]> do just gives the illusion that such things exist in haskell
2023-06-26 15:40:02 +0000 <int-e> @undo do x <- act1; y <- act2 x; let z = x+y; return z
2023-06-26 15:40:02 +0000 <lambdabot> <unknown>.hs:1:49:Parse error: EOF
2023-06-26 15:40:11 +0000 <int-e> ah right
2023-06-26 15:40:16 +0000 <int-e> @undo do x <- act1; y <- act2 x; let { z = x+y }; return z
2023-06-26 15:40:16 +0000 <lambdabot> act1 >>= \ x -> act2 x >>= \ y -> let { z = x + y} in return z
2023-06-26 15:41:20 +0000APic(apic@apic.name)
2023-06-26 15:41:35 +0000 <int-e> The thing is, `do` is "just" syntactic sugar for an ordinary Haskell expression with some weird operator (>>= and >> (not present in the example))
2023-06-26 15:42:27 +0000 <int-e> It doesn't magically give you mutation powers (assignment of variables).
2023-06-26 15:43:54 +0000 <Guest17> i dones't mutate, i control the variables. should i assign to another variable? On de sedgewick book exercice one works perfectly.
2023-06-26 15:43:54 +0000 <Guest17> so I do the same on this algorithm.
2023-06-26 15:44:14 +0000 <Guest17> i will study ```>>=```and ``>>`` operators
2023-06-26 15:44:36 +0000jespada(~jespada@207.188.139.183) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-06-26 15:45:12 +0000 <geekosaur> thye won't help you here
2023-06-26 15:45:30 +0000 <Guest17> ohh ok
2023-06-26 15:45:44 +0000 <geekosaur> which means `do` won't helo you here either
2023-06-26 15:45:54 +0000 <geekosaur> *help
2023-06-26 15:46:16 +0000 <jade[m]> what helped me grasp haskell better is to just avoid do
2023-06-26 15:46:23 +0000 <jade[m]> use explicit `>>=`
2023-06-26 15:46:38 +0000 <jade[m]> because it doesn't hide the true identity
2023-06-26 15:46:53 +0000dsrt^(~dsrt@24.125.210.85)
2023-06-26 15:47:49 +0000Tuplanolla(~Tuplanoll@91.159.68.236)
2023-06-26 15:48:45 +0000 <ski> Guest17 : there is no variable assignment, in Haskell
2023-06-26 15:49:47 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-06-26 15:50:56 +0000mxs(~mxs@user/mxs)
2023-06-26 15:51:37 +0000 <ski> .. so much wrong here that it's hard to know where to start
2023-06-26 15:51:49 +0000 <Guest17> ski you can assign values from IO to and variables using <- and mutating the declared. by the nature of haskell he will keep then immutable generating anotther variable in the haskell compiled code. How do not compile i can correct the errors
2023-06-26 15:52:02 +0000 <ski> "you can assign values from IO to and variables using <- and mutating the declared" -- no
2023-06-26 15:52:14 +0000 <Guest17> so it's what?
2023-06-26 15:52:16 +0000 <ski> there's no mutation there
2023-06-26 15:52:28 +0000 <Guest17> yep, only variable assignment
2023-06-26 15:52:31 +0000 <ski> primariList <- getDirectoryContests(primariList)
2023-06-26 15:52:36 +0000 <ski> this is not mutation
2023-06-26 15:52:46 +0000 <ski> it's just declarring a new variable, which shadows the old one
2023-06-26 15:52:47 +0000 <geekosaur> that passes a parameter to the rest of the do block
2023-06-26 15:53:19 +0000 <Guest17> someone have a example of a tree to me to start?
2023-06-26 15:53:30 +0000 <Guest17> or where i can find it
2023-06-26 15:53:49 +0000 <ski> data Tree a = Node a [Tree a]
2023-06-26 15:54:01 +0000 <Guest17> i'm using tuples
2023-06-26 15:54:30 +0000 <Guest17> let the Node type to work in another hour
2023-06-26 15:54:43 +0000 <jade[m]> hm?
2023-06-26 15:55:00 +0000 <Guest17> jade[m] responding to the ski
2023-06-26 15:55:00 +0000misterfish(~misterfis@87.215.131.102) (Ping timeout: 260 seconds)
2023-06-26 15:55:17 +0000 <Guest17> *answering
2023-06-26 15:55:19 +0000 <jade[m]> yeah but I don't understand the response
2023-06-26 15:55:23 +0000 <jade[m]> trees are recursive by nature
2023-06-26 15:55:29 +0000 <jade[m]> so how can you use a tuple?
2023-06-26 15:55:29 +0000 <ski> it's unclear what you're attempting to do, in your code, Guest17
2023-06-26 15:55:52 +0000 <Guest17> by using a recursion.
2023-06-26 15:56:07 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-06-26 15:56:26 +0000 <ski> newetype Tree a = Node (a,[Tree a]) -- variant, using pairs, which are tuples
2023-06-26 15:56:37 +0000rburkholder(~blurb@96.45.2.121) (Server closed connection)
2023-06-26 15:56:59 +0000rburkholder(~blurb@96.45.2.121)
2023-06-26 15:57:26 +0000 <ski> Guest17 : what is the intent of `toScan[leaf] = []' ?
2023-06-26 15:57:26 +0000 <Guest17> ski I'm attempt to create a garbage collector for my node modules using haskell. this algorithm is was alredy writed in JS, now I'm attempt to do with haskell
2023-06-26 15:57:29 +0000 <jade[m]> yeah but I don't see why you'd do that
2023-06-26 15:57:39 +0000 <Guest17> scan a folders
2023-06-26 15:58:00 +0000 <Guest17> *scan folders
2023-06-26 15:58:26 +0000 <jade[m]> ok, but translating from an imperative algorithm to a functional one usually isn't that straightforward
2023-06-26 15:58:40 +0000 <jade[m]> usually the functional one will be easier, but you need to think about the problem at hand
2023-06-26 15:59:36 +0000 <ski> `Either IO [FilePath] String' also looks quite wrong. i'd suspect you either meant `Either (IO [FilePath]) String', `IO (Either [FilePath] String)', or `ExceptT [FilePath] IO String'
2023-06-26 16:00:20 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 240 seconds)
2023-06-26 16:00:25 +0000 <Guest17> Either IO [FilePath] String the program receive a string when it ends
2023-06-26 16:00:44 +0000 <ski> `Either IO [FilePath] String' is a kind error
2023-06-26 16:00:54 +0000 <ski> `Either' doesn't take three type parameters. it takes two
2023-06-26 16:01:05 +0000 <Guest17> he is taking to
2023-06-26 16:01:09 +0000 <Guest17> Either a b
2023-06-26 16:01:12 +0000 <ski> @kind Either IO [FilePath] String
2023-06-26 16:01:13 +0000 <lambdabot> error:
2023-06-26 16:01:14 +0000 <lambdabot> • Expected kind ‘* -> k0’, but ‘Either IO [FilePath]’ has kind ‘*’
2023-06-26 16:01:14 +0000 <lambdabot> • In the type ‘Either IO [FilePath] String’
2023-06-26 16:01:21 +0000 <ski> @kind Either (IO [FilePath]) String
2023-06-26 16:01:22 +0000 <lambdabot> *
2023-06-26 16:01:31 +0000 <ski> @kind IO (Either [FilePath] String)
2023-06-26 16:01:31 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2023-06-26 16:01:32 +0000 <lambdabot> *
2023-06-26 16:01:40 +0000 <Guest17> ahh ok
2023-06-26 16:01:45 +0000 <ski> @kind ExceptT [FilePath] IO String
2023-06-26 16:01:46 +0000 <lambdabot> *
2023-06-26 16:02:33 +0000 <jade[m]> but usually you don't need these hugs monad constructs or even transformers for small programs like you are talking about
2023-06-26 16:02:36 +0000 <ski> (the last two alternatives are basically the same thing, apart from some extra dress-up of the last version. the first alternative is different .. and, i suspect, not what you intended)
2023-06-26 16:03:07 +0000 <ski> yea. the main question here is why you wrote `Either IO [FilePath] String' to begin with
2023-06-26 16:03:23 +0000 <Guest17> i have corrected this error
2023-06-26 16:03:54 +0000 <jade[m]> (I used to do all this exact stuff so I feel the pain)
2023-06-26 16:04:01 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-06-26 16:04:36 +0000 <ski> "a garbage collector for my node modules using haskell" -- are you garbage-collecting files in the file system ?
2023-06-26 16:05:11 +0000 <Guest17> cleanning the node_modules from my projecsts a installing it again when necessary
2023-06-26 16:05:32 +0000 <ski> by running some external (JS-related) programs, from Haskell ?
2023-06-26 16:05:42 +0000 <jade[m]> sound like you can do this with a small bash script and find -r lol
2023-06-26 16:05:48 +0000 <Guest17> ski yep
2023-06-26 16:06:20 +0000 <ski> why did you think of using `Either' at all ?
2023-06-26 16:06:24 +0000 <Guest17> jade[m]to leran more of hsakell i decided to do this. have some  time i don't study haskell
2023-06-26 16:06:52 +0000mxs(~mxs@user/mxs) (Ping timeout: 240 seconds)
2023-06-26 16:06:59 +0000 <jade[m]> ah alright
2023-06-26 16:08:04 +0000 <Guest17> i will research more and come back here.
2023-06-26 16:08:22 +0000 <ski> you don't want to talk through your code ?
2023-06-26 16:08:40 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-06-26 16:09:06 +0000APic(apic@apic.name) (Ping timeout: 246 seconds)
2023-06-26 16:10:54 +0000 <Guest17> More research is needed. Principle to work with Node type.
2023-06-26 16:10:55 +0000 <Guest17> iwill research in trees with haskell
2023-06-26 16:11:02 +0000 <Guest17> this will do some help for me
2023-06-26 16:11:40 +0000 <ski> do you really need to use a tree type ?
2023-06-26 16:13:03 +0000 <Guest17> no, but can grow my kwnoledge
2023-06-26 16:13:34 +0000 <Guest17> when was said to do more functional
2023-06-26 16:13:56 +0000 <Guest17> i will need to research for examples.
2023-06-26 16:15:16 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0)
2023-06-26 16:16:26 +0000 <ski> perhaps getting a textbook could help
2023-06-26 16:16:36 +0000 <Guest17> ok
2023-06-26 16:16:54 +0000 <Guest17> have one in mind?
2023-06-26 16:19:45 +0000kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-06-26 16:20:18 +0000hyiltiz(~user@2620:149:13d1:100::5df)
2023-06-26 16:23:21 +0000 <int-e> @where rwh
2023-06-26 16:23:21 +0000 <lambdabot> http://www.realworldhaskell.org/blog/ http://book.realworldhaskell.org/read/
2023-06-26 16:23:24 +0000 <int-e> @where lyah
2023-06-26 16:23:24 +0000 <lambdabot> http://www.learnyouahaskell.com/
2023-06-26 16:23:32 +0000 <ski> @where PiH
2023-06-26 16:23:32 +0000 <lambdabot> "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html>
2023-06-26 16:23:52 +0000 <int-e> . o ( just stay away from the "gentle introduction" )
2023-06-26 16:24:20 +0000 <ski> (unless you're already familiar with functional programming .. which doesn't appear to be the case, here)
2023-06-26 16:24:42 +0000 <ncf> i'm surprised by how rarely the wikibook is recommended... is there anything wrong with it?
2023-06-26 16:24:44 +0000 <geekosaur> of the three, I prefer the Hutton. but if you don't want to or can't spend money on it, the Haskell Wikibook is okay
2023-06-26 16:24:49 +0000 <geekosaur> @where wikibook
2023-06-26 16:24:49 +0000 <lambdabot> http://en.wikibooks.org/wiki/Haskell
2023-06-26 16:25:08 +0000 <hyiltiz> Has anyone have any experience with the `padic` package by sergey?
2023-06-26 16:25:24 +0000 <geekosaur> it's just nowhere near as good as Hutton's. but I consider it much better than LYAH
2023-06-26 16:26:01 +0000chele(~chele@user/chele) (Remote host closed the connection)
2023-06-26 16:26:03 +0000 <ncf> i should probably read the Hutton and adjust my recommendation list then :)
2023-06-26 16:26:19 +0000elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
2023-06-26 16:26:23 +0000oac_(~oac@pool-141-157-210-244.nycmny.fios.verizon.net)
2023-06-26 16:28:29 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-06-26 16:28:49 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-06-26 16:29:23 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142) (Ping timeout: 246 seconds)
2023-06-26 16:32:25 +0000elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Ping timeout: 240 seconds)
2023-06-26 16:35:20 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Ping timeout: 246 seconds)
2023-06-26 16:35:52 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-06-26 16:36:40 +0000 <Guest17> thanks folks. When I could help anyone I'm leaving. Thanks for the recomendations.
2023-06-26 16:37:10 +0000Guest17(~Guest17@2804:14c:5b61:81fe:8c6b:125b:f65c:e13b) (Quit: Client closed)
2023-06-26 16:39:43 +0000nick3(~nick@wsip-174-78-110-18.pn.at.cox.net)
2023-06-26 16:40:02 +0000gmg(~user@user/gehmehgeh)
2023-06-26 16:41:18 +0000elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
2023-06-26 16:41:47 +0000nut(~nut@176-151-21-224.abo.bbox.fr)
2023-06-26 16:42:41 +0000jinsl(~jinsl@2408:8207:2558:8870:211:32ff:fec8:6aea) (Ping timeout: 246 seconds)
2023-06-26 16:44:59 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
2023-06-26 16:45:12 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef) (Ping timeout: 245 seconds)
2023-06-26 16:55:45 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2023-06-26 16:57:44 +0000dmj`(sid72307@id-72307.hampstead.irccloud.com) (Server closed connection)
2023-06-26 16:58:10 +0000dmj`(sid72307@id-72307.hampstead.irccloud.com)
2023-06-26 16:58:25 +0000elain4(~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Ping timeout: 240 seconds)
2023-06-26 17:06:30 +0000Guest9511(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
2023-06-26 17:06:47 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 17:11:45 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-06-26 17:20:35 +0000 <jade[m]> is there a nice overview for what parser combinator library is useful for what?
2023-06-26 17:20:48 +0000 <jade[m]> because it seems like they all basically do the same with minor differences
2023-06-26 17:27:16 +0000remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz) (Quit: Bye!)
2023-06-26 17:28:11 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142) (Ping timeout: 246 seconds)
2023-06-26 17:29:14 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef)
2023-06-26 17:38:17 +0000 <geekosaur> what seems to be, is
2023-06-26 17:38:46 +0000 <geekosaur> there are some differences, for example attoparsec is well designed for streaming input
2023-06-26 17:39:59 +0000 <geekosaur> but by and large you get the same thing from all of them these days
2023-06-26 17:40:29 +0000 <geekosaur> at one point trifecta produced the best error messages, but then megaparsec upped its game in response
2023-06-26 17:43:47 +0000CiaoSen(~Jura@2a05:5800:2ac:6500:664b:f0ff:fe37:9ef) (Ping timeout: 264 seconds)
2023-06-26 17:45:56 +0000user363627(~user@146.70.198.100)
2023-06-26 17:47:23 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 264 seconds)
2023-06-26 17:48:49 +0000YuutaW(~YuutaW@2404:f4c0:f9c3:502::100:17b7)
2023-06-26 17:49:09 +0000remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz)
2023-06-26 17:49:24 +0000 <user363627> what's a recommended way to install haskell-language-server for the latest stack snapshot?
2023-06-26 17:50:56 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
2023-06-26 17:51:25 +0000jinsl(~jinsl@2408:8207:2550:b730:211:32ff:fec8:6aea)
2023-06-26 17:52:46 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2023-06-26 17:57:09 +0000ec(~ec@gateway/tor-sasl/ec)
2023-06-26 17:57:16 +0000 <user363627> oh there's a ghcup these days
2023-06-26 17:58:26 +0000 <chreekat> bingo
2023-06-26 17:59:17 +0000taupiqueur(~taupiqueu@2a02:8440:2241:b894:997:4e3:5b13:10b2)
2023-06-26 18:00:43 +0000tromp(~textual@92.110.219.57)
2023-06-26 18:05:34 +0000oac_(~oac@pool-141-157-210-244.nycmny.fios.verizon.net) (Quit: oac_)
2023-06-26 18:06:20 +0000oac_(~oac@141.157.210.244)
2023-06-26 18:09:03 +0000whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2023-06-26 18:10:08 +0000Pickchea(~private@user/pickchea)
2023-06-26 18:11:10 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-06-26 18:11:24 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-06-26 18:12:46 +0000ripspin(~chatzilla@1.145.163.38) (Remote host closed the connection)
2023-06-26 18:15:41 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-06-26 18:17:56 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Remote host closed the connection)
2023-06-26 18:21:46 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2023-06-26 18:27:23 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-06-26 18:30:18 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0)
2023-06-26 18:32:13 +0000 <EvanR> attoparsec is more convenient for parsing Word8 stream, megaparsec seems more convenient for parsing text. Supposedly you can reconfigure the token types but I never succeeded
2023-06-26 18:33:24 +0000 <geekosaur> you can but you need to provide your own convenience wrappers
2023-06-26 18:34:14 +0000nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Server closed connection)
2023-06-26 18:34:21 +0000 <geekosaur> this does make a certain amount of sense because they'll tend to depend on how they're being used; otherwise you just get a harder to use binary/cereal
2023-06-26 18:34:32 +0000nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2023-06-26 18:38:01 +0000 <EvanR> for megaparsec you have to implement Stream, and now I see there's already an instance for Ord a => Stream [a], did not investigate that
2023-06-26 18:38:14 +0000 <EvanR> I wonder what the Ord is for
2023-06-26 18:39:30 +0000 <tomsmeding> perhaps to be able to use it as a key for a Map somewhere
2023-06-26 18:39:31 +0000 <EvanR> the instance doesn't seem to need it
2023-06-26 18:41:22 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Remote host closed the connection)
2023-06-26 18:42:28 +0000 <EvanR> oh, the class requires it
2023-06-26 18:42:37 +0000 <Hecate> Stream, VisualStream & TraversableStream
2023-06-26 18:43:40 +0000ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2023-06-26 18:44:29 +0000ec(~ec@gateway/tor-sasl/ec)
2023-06-26 18:47:11 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0)
2023-06-26 18:49:35 +0000 <EvanR> and once you do all that, how do you form a new primitive Parsec(T) to start writing the parser
2023-06-26 18:50:01 +0000nasrudin__(~nasrudin_@45.152.182.251)
2023-06-26 18:51:41 +0000 <EvanR> use the newtype wrapper which takes a State s e -> (a -> State s e -> Hints (Token s) -> m b) -> (ParseError s e -> State s e -> m b) -> (a -> State s e -> Hints (Token s) -> m b) -> (ParseError s e -> State s e -> m b) -> m b ?
2023-06-26 18:52:24 +0000 <jade[m]> Jesus that's a bunch
2023-06-26 18:52:55 +0000 <EvanR> high octane Reader monad xD
2023-06-26 18:54:22 +0000Square2(~Square@user/square)
2023-06-26 18:54:41 +0000 <EvanR> ParsecT $ \s cok cerr eok eerr -> _
2023-06-26 18:56:19 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-06-26 18:56:25 +0000__monty__(~toonn@user/toonn)
2023-06-26 18:56:52 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
2023-06-26 18:57:28 +0000smoge(~smoge@2603-7000-4b42-1100-dda0-def4-e62f-c2ea.res6.spectrum.com)
2023-06-26 18:57:40 +0000 <smoge> How can I make it work for all kinds of nested lists?
2023-06-26 18:57:40 +0000 <smoge> ghci> read "[[1]]" :: [[Int]]
2023-06-26 18:57:41 +0000 <smoge> [[1]]
2023-06-26 18:57:41 +0000 <smoge> ghci> read "[[1], [1, 2]]" :: [[Int]]
2023-06-26 18:57:42 +0000 <smoge> [[1],[1,2]]
2023-06-26 18:57:42 +0000 <smoge> ghci> read "[[1], [1, [2]]]" :: [[Int]]
2023-06-26 18:57:43 +0000 <smoge> *** Exception: Prelude.read: no parse
2023-06-26 18:57:43 +0000 <smoge> ghci> read "[[1], [1, [2]]]" :: [[[Int]]]
2023-06-26 18:57:44 +0000 <smoge> *** Exception: Prelude.read: no parse
2023-06-26 18:58:03 +0000 <xerox> :t [1,[2]]
2023-06-26 18:58:04 +0000 <lambdabot> (Num a, Num [a]) => [[a]]
2023-06-26 18:58:29 +0000 <EvanR> use a tree instead of a list
2023-06-26 18:58:37 +0000 <xerox> not really a value
2023-06-26 18:58:40 +0000 <hpc> :t [False, [True, False]] -- a bit more clear
2023-06-26 18:58:41 +0000 <lambdabot> error:
2023-06-26 18:58:41 +0000 <lambdabot> • Couldn't match expected type ‘Bool’ with actual type ‘[Bool]’
2023-06-26 18:58:42 +0000 <lambdabot> • In the expression: [True, False]
2023-06-26 18:59:01 +0000 <smoge> I just want to use lisp lists and convert into haskell lists of lists, regardless of their structure
2023-06-26 18:59:27 +0000 <EvanR> define a proper data type to represent lisp lists
2023-06-26 18:59:57 +0000 <EvanR> or more likely, a lisp value which might be a list
2023-06-26 19:00:13 +0000 <smoge> listStringToHaskell "(1 (2 (3 4) 5) 6)"
2023-06-26 19:00:14 +0000 <smoge> -- Returns: -- [1,[2,[3,4],5],6]
2023-06-26 19:00:21 +0000 <dsal> These kinds of things are a bit easier if you look at the types first.
2023-06-26 19:00:23 +0000 <hpc> lisp lists are trees
2023-06-26 19:00:27 +0000 <smoge> How to do it to work with any lisp list?
2023-06-26 19:00:31 +0000 <smoge> yes
2023-06-26 19:00:51 +0000 <EvanR> yeah it can't be a haskell list because haskell lists elements are all the same type
2023-06-26 19:00:53 +0000 <hpc> don't be fooled by the name - it's like how python's "lists" are just its word for the array data structure
2023-06-26 19:01:01 +0000 <hpc> even in the 50s they were naming things poorly :D
2023-06-26 19:01:22 +0000 <smoge> So I need to parse and create a tree. No way around it?
2023-06-26 19:01:36 +0000 <hpc> yeah
2023-06-26 19:01:52 +0000 <EvanR> data Lisp = List [Lisp] | Symbol String | Number Double | Boolean Bool | ...
2023-06-26 19:02:27 +0000 <ncf> more like data SExp = Nil | Cons SExp SExp | Atom ...
2023-06-26 19:02:31 +0000 <hpc> personally i would cut it off at List/Symbol
2023-06-26 19:02:46 +0000 <ncf> (1 . 2) = Cons (Atom 1) (Atom 2)
2023-06-26 19:03:00 +0000 <ncf> (1 2) = Cons (Atom 1) (Cons (Atom 2) Nil)
2023-06-26 19:03:07 +0000 <ncf> you can probably define an IsList instance
2023-06-26 19:03:08 +0000 <smoge> I tried that, it returns something like  Right (List [Number 1,List [Number 2,List [Number 3,Number (-4)]],Number 5,List [Number 6,List [Number 7,List [Number 8,List [Number (-9),Number 10]]]]])
2023-06-26 19:03:09 +0000 <smoge> How do I use it afterward? I goit a bit confused at this point
2023-06-26 19:03:22 +0000 <EvanR> what do you want to do with it
2023-06-26 19:03:40 +0000 <EvanR> ncf's version might be more lispy
2023-06-26 19:05:23 +0000 <smoge> I want to iterate through the list, to transform it into music rhythm structures
2023-06-26 19:05:41 +0000 <smoge> maybe my mind is too imperative still
2023-06-26 19:05:51 +0000 <ncf> oh you're probably fine with lists instead of cons cells then
2023-06-26 19:06:03 +0000 <EvanR> to iterate through the tree, you can write a recursive algorithm
2023-06-26 19:06:36 +0000 <dsal> Though most things you'd need to do through the tree are already done and you can just reuse them.
2023-06-26 19:06:50 +0000 <smoge> What is this " Right", all parsers return this? How to I deal with it later?
2023-06-26 19:06:59 +0000bbhoss(sid18216@id-18216.tinside.irccloud.com) ()
2023-06-26 19:06:59 +0000 <dsal> Right is a constructor of Either
2023-06-26 19:07:02 +0000 <EvanR> data Either a b = Left a | Right b
2023-06-26 19:07:17 +0000 <EvanR> use pattern matching to detect which case you get
2023-06-26 19:07:24 +0000 <smoge> ok
2023-06-26 19:07:29 +0000 <EvanR> Right means right and Left means parse error
2023-06-26 19:07:53 +0000 <EvanR> in this case
2023-06-26 19:09:02 +0000 <EvanR> pattern matching it also the basic way to iterate through a (haskell) list, a list is either the empty list or some element and some list tail
2023-06-26 19:11:23 +0000Guest97(~Guest97@2a00:23c4:31cc:a301:5093:416:b7a8:251f)
2023-06-26 19:11:50 +0000Guest97(~Guest97@2a00:23c4:31cc:a301:5093:416:b7a8:251f) (Client Quit)
2023-06-26 19:14:26 +0000 <TMA> I thought it is usually the other way around. Left result, Right error
2023-06-26 19:14:27 +0000 <smoge> Something like
2023-06-26 19:14:27 +0000 <smoge> getTree :: Either String Value -> Maybe [Int]
2023-06-26 19:14:28 +0000 <smoge> getTree (Right (List xs)) = Just (extractTree xs)
2023-06-26 19:14:29 +0000 <smoge> getTree _                 = Nothing
2023-06-26 19:14:29 +0000 <smoge> ??
2023-06-26 19:14:49 +0000 <jean-paul[m]> TMA: It isn't.
2023-06-26 19:14:56 +0000 <jean-paul[m]> Here's a mnemonic for you. Right is right.
2023-06-26 19:15:17 +0000 <jean-paul[m]> (oops EvanR said it already)
2023-06-26 19:15:37 +0000 <dsal> smoge: that's almost `fmap extractTree` if you didn't want it to throw away the error.
2023-06-26 19:16:12 +0000taupiqueur(~taupiqueu@2a02:8440:2241:b894:997:4e3:5b13:10b2) (Ping timeout: 240 seconds)
2023-06-26 19:16:30 +0000 <smoge> getTree :: Either String Value -> Maybe [Int]
2023-06-26 19:16:31 +0000 <smoge> getTree (Right (List xs)) = Just xs
2023-06-26 19:16:31 +0000 <smoge> getTree _                 = Nothing
2023-06-26 19:16:32 +0000 <dsal> @hoogle Either a b -> Maybe b
2023-06-26 19:16:33 +0000 <lambdabot> Data.Either.Combinators rightToMaybe :: Either a b -> Maybe b
2023-06-26 19:16:34 +0000 <lambdabot> Data.Either.Extra eitherToMaybe :: Either a b -> Maybe b
2023-06-26 19:16:34 +0000 <lambdabot> Extra eitherToMaybe :: Either a b -> Maybe b
2023-06-26 19:16:59 +0000Guest9511(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2023-06-26 19:17:01 +0000 <dsal> smoge: You're doing two different things here. It might be better to think of them separately.
2023-06-26 19:17:09 +0000 <smoge> ok
2023-06-26 19:17:22 +0000 <dsal> One thing is converting the `Either String Value` to `Maybe Value`. The other is doing a `Value -> X`
2023-06-26 19:18:34 +0000 <dsal> You might as well keep the `Either` unless you have a really good reason to throw away errors.
2023-06-26 19:20:12 +0000 <dsal> Both `Either` and `Maybe` are functors, so you can use `fmap` to just ignore them and work on the `Value -> X` part.
2023-06-26 19:20:26 +0000 <smoge> oh
2023-06-26 19:20:26 +0000 <EvanR> one way is to handle the parse error immediately in your program, otherwise continue with the non-error
2023-06-26 19:20:43 +0000 <EvanR> esp if you don't expect to have any failures past that point
2023-06-26 19:20:54 +0000oac_(~oac@141.157.210.244) (Quit: oac_)
2023-06-26 19:21:07 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-06-26 19:21:36 +0000oac(~oac@141.157.210.244)
2023-06-26 19:21:38 +0000 <EvanR> case parseTheThing str of Left msg -> crashAndBurn msg; Right value -> mainLoop value
2023-06-26 19:22:15 +0000 <jade[m]> can you please provide an implementation of crashAndBurn
2023-06-26 19:22:22 +0000 <jade[m]> i'd like to see that
2023-06-26 19:22:29 +0000 <EvanR> halt and catch fire
2023-06-26 19:22:49 +0000 <TMA> jean-paul[m]: It got it somehow mixed. I thought of it as an extension to Maybe, which is usually described as data Maybe a = Just a | Nothing adding another type parameter for the error and becoming data Either a b = Left a | Right b
2023-06-26 19:22:54 +0000gurkenglas(~gurkengla@dynamic-046-114-164-153.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2023-06-26 19:23:15 +0000 <EvanR> data Maybe a = Nothing | Just a? xD
2023-06-26 19:23:20 +0000 <smoge>  So no need to have this?
2023-06-26 19:23:21 +0000 <smoge>   Left err          -> Left $ show err
2023-06-26 19:23:21 +0000 <smoge>   Right proportions -> Right proportions
2023-06-26 19:23:25 +0000 <jean-paul[m]> withCString says "the Haskell string may not contain any NUL characters". What if it does?
2023-06-26 19:23:30 +0000 <dsal> TMA: it gets clear when you try to do make a functor instance.
2023-06-26 19:24:04 +0000 <TMA> EvanR: if that would be the usual way to introduced, then yes, that confusion would go away
2023-06-26 19:24:09 +0000 <smoge> Better?
2023-06-26 19:24:10 +0000 <smoge>   Left err          -> Left $ show err
2023-06-26 19:24:10 +0000 <EvanR> smoge, think of the case as dispatching the Left or Right and going in two independent directions
2023-06-26 19:24:10 +0000 <smoge>   Right proportions -> Right proportions
2023-06-26 19:24:20 +0000 <smoge>   Left err          -> Left $ show err
2023-06-26 19:24:21 +0000 <smoge>   Right proportions -> Just proportions
2023-06-26 19:24:31 +0000 <EvanR> rewrapping with Left and Right is possible not unnecessary here
2023-06-26 19:24:41 +0000 <EvanR> what
2023-06-26 19:24:48 +0000 <EvanR> possible but unnecessary here
2023-06-26 19:25:11 +0000 <mauke> jean-paul[m]: then your C string gets cut off
2023-06-26 19:25:18 +0000ec_(~ec@gateway/tor-sasl/ec)
2023-06-26 19:25:24 +0000 <dsal> smoge: it's not clear what you're trying to do. But worrying about what Either is doing is probably slowing your progress. You can write your code assuming you have whatever `Value` is and just `fmap` it.
2023-06-26 19:25:27 +0000 <EvanR> my suggestion was assuming you were handling the parse error in IO before going on
2023-06-26 19:25:29 +0000 <smoge> Ok, but I'm still confused what I can write after Right XXXX ->
2023-06-26 19:25:42 +0000 <EvanR> anything that type checks
2023-06-26 19:25:50 +0000 <smoge> ok oh
2023-06-26 19:26:06 +0000 <EvanR> if you want to return Maybe [Int], then I guess the only option is Nothing
2023-06-26 19:26:25 +0000 <EvanR> otherwise you'd be making up some numbers, since the parse failed
2023-06-26 19:26:27 +0000 <jean-paul[m]> mauke: okay. could be worse.
2023-06-26 19:27:17 +0000 <EvanR> assume you will handle the parse failure somehow and write your main code assuming you have a Value
2023-06-26 19:27:25 +0000 <EvanR> figure out how to connect it later
2023-06-26 19:28:08 +0000ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-06-26 19:28:37 +0000 <EvanR> TMA,
2023-06-26 19:28:39 +0000 <EvanR> @src Maybe
2023-06-26 19:28:39 +0000 <lambdabot> data Maybe a = Nothing | Just a
2023-06-26 19:29:16 +0000 <smoge> Ok, any guide that I could read about it?
2023-06-26 19:29:40 +0000 <smoge> Also, I'm trying to "rotate a tree". How can I get started with that? For eample:
2023-06-26 19:29:40 +0000 <smoge> (1 ( 2 (3 -4)) 5 ( 6 (7 ( 8 (-9 10)))))
2023-06-26 19:29:41 +0000 <smoge> (2 ( 3 (-4 5)) 6 ( 7 (8 ( -9 (10 1)))))
2023-06-26 19:29:41 +0000 <smoge> (3 ( -4 (5 6)) 7 ( 8 (-9( 10 (1 2)))))
2023-06-26 19:30:04 +0000 <mauke> .oO( logrotate )
2023-06-26 19:30:17 +0000 <TMA> EvanR: The tutorials I have encountered had it the other way around
2023-06-26 19:30:26 +0000 <dsal> You can do that with biplate, but… I'm not sure you're ready for that.
2023-06-26 19:30:53 +0000falafel(~falafel@2607:fb91:86c:d890:7062:4878:f4c6:58e7)
2023-06-26 19:31:06 +0000 <mauke> > Nothing < Just ()
2023-06-26 19:31:07 +0000 <lambdabot> True
2023-06-26 19:32:22 +0000 <EvanR> i question writing Just a first because when you inductively define a data structure or whatever, you probably want a base case like Nothing to start with
2023-06-26 19:32:27 +0000 <smoge> Ok, but could I some code that does something similar, just to have a sense?
2023-06-26 19:32:29 +0000 <EvanR> @src List
2023-06-26 19:32:29 +0000 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
2023-06-26 19:32:33 +0000 <EvanR> @src []
2023-06-26 19:32:33 +0000 <lambdabot> data [] a = [] | a : [a]
2023-06-26 19:33:41 +0000 <EvanR> smoge, are you sure an arbitrary tree is the best structure for this. What other operations are you expecting to do
2023-06-26 19:34:09 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Remote host closed the connection)
2023-06-26 19:34:10 +0000 <EvanR> rotate would be easier as a list, or a Data.Sequence
2023-06-26 19:34:15 +0000 <dsal> If you're treating it like a list, a list might be easier. Because rotating a list is trivial, but rotating a tree is probably a lot of work.
2023-06-26 19:34:18 +0000 <smoge> https://support.ircam.fr/docs/om/om6-manual/co/RT1.html
2023-06-26 19:34:48 +0000 <smoge> rotate tree, substitute a leaf with a branch (subdivision)
2023-06-26 19:34:59 +0000 <EvanR> a list of measures, each of which is divided somehow
2023-06-26 19:35:07 +0000taupiqueur(~taupiqueu@2a02-8440-2241-6bd3-291b-5a44-8bad-c57d.rev.sfr.net)
2023-06-26 19:35:19 +0000 <EvanR> maybe
2023-06-26 19:36:37 +0000 <dsal> The way I'd do this might be a bit difficult to understand right away.
2023-06-26 19:36:49 +0000 <smoge> yes, the idea is to manipulate the tree, each measure is also a subtree
2023-06-26 19:37:06 +0000 <dsal> I'm not even sure how easy it'd be to get a typesafe measure. I kind of want to try now. heh.
2023-06-26 19:37:38 +0000 <EvanR> dependent types to the 'rescue'? xD
2023-06-26 19:37:44 +0000ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2023-06-26 19:37:45 +0000 <smoge> I was trying to have a project to learn haskell, but maybe that's too hard.
2023-06-26 19:37:59 +0000 <smoge> but if I go back to python, I will never learn haskell :)
2023-06-26 19:38:02 +0000 <EvanR> choice of data structure is definitely key to doing things easily in haskell
2023-06-26 19:38:22 +0000gurkenglas(~gurkengla@dynamic-046-114-164-153.46.114.pool.telefonica.de)
2023-06-26 19:38:40 +0000 <EvanR> but it takes experience to know what kind of data structures are out there
2023-06-26 19:38:46 +0000 <smoge> Yes, in this case, is there a specific kind of tree that would be easier to work?
2023-06-26 19:38:55 +0000 <dsal> Not fully dependent, but you can have a type of Measure that has a division count and you could imagine a Measure made up of `Division 1 <+> Division 1 <+> Division 1 <+> Division 1`- I don't know that you can have fractional literals, though.
2023-06-26 19:38:57 +0000 <EvanR> that depends entirely on the operations you need
2023-06-26 19:40:15 +0000 <dsal> Doing it without type safety would be pretty straightforward. A Subdivision contains a list of subdivisions and the subdivision lengths are expected to add up to your measure length.
2023-06-26 19:40:35 +0000 <smoge>  <+> is being used to represent some kind of binary operation on Division (tree)  values? substitution?
2023-06-26 19:41:24 +0000 <EvanR> dsal looks like they are just constructing the data, not doing anything with it
2023-06-26 19:42:11 +0000 <dsal> Yeah, so you would imagine adding a `a <+> b` where `a, b :: Division (1/8)` and the result would be `Division (1/4)` and a measure would have type `Division 1`. So you wouldn't be able to stick an eight note into a measure and have it compile.
2023-06-26 19:42:20 +0000 <EvanR> anyway, if you just want to rotate, you can use a list of rational numbers
2023-06-26 19:42:26 +0000 <dsal> EvanR: Yeah, I'm just looking at this page and trying to figure out how I might push stuff into the type system.
2023-06-26 19:43:12 +0000 <EvanR> then each division can be subdivided arbitrarily
2023-06-26 19:43:16 +0000 <dsal> The "easiest" way to rotate is biplate, but that's going to leave you completely baffled. A zipper might help. But the structure is just kind of not good at that. You could have a parallel structure.
2023-06-26 19:43:22 +0000tromp(~textual@92.110.219.57) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 19:43:58 +0000 <smoge> Does it make any sense?
2023-06-26 19:43:58 +0000 <smoge> rotate :: Tree a -> Tree a
2023-06-26 19:43:59 +0000 <smoge> rotate (Node [a, Node [b, c], d])    = Node [b, Node [a, c], d]
2023-06-26 19:44:00 +0000 <smoge> rotate (Node [a, Node [b, c, d], e]) = Node [Node [a, b], c, Node [d, e]]
2023-06-26 19:44:00 +0000 <smoge> rotate (Node xs)                     = Node (map rotate xs)
2023-06-26 19:44:00 +0000 <smoge> rotate t                             = t
2023-06-26 19:44:10 +0000 <EvanR> are you assuming a specific configuration
2023-06-26 19:44:27 +0000 <EvanR> is the first element always a number and not a subtree
2023-06-26 19:44:32 +0000 <smoge> yes... I can't figure out artitrary structures
2023-06-26 19:46:14 +0000 <smoge> maybe just rotate a flattened list and populate a new tree with the old structure... ?
2023-06-26 19:46:24 +0000trev(~trev@user/trev) (Quit: trev)
2023-06-26 19:47:12 +0000 <EvanR> do you need arbitrary levels? Or is it just 2 levels
2023-06-26 19:47:50 +0000 <smoge> arbitrary, because each measure will be unique structure
2023-06-26 19:48:22 +0000 <EvanR> is the idea to take a measure and map it to note times?
2023-06-26 19:48:43 +0000 <EvanR> that wouldn't require putting the tree structure back
2023-06-26 19:49:24 +0000 <EvanR> I'm half curious what python would do to help you out of this xD
2023-06-26 19:49:56 +0000 <smoge> the Ideia is that you separate the duration of the measure and a tree that describes how time is divided following  a (simple or nested) proportion
2023-06-26 19:50:30 +0000 <EvanR> yeah that's representing something, but then what
2023-06-26 19:50:42 +0000 <EvanR> draw a picture, play a song or
2023-06-26 19:50:53 +0000 <EvanR> edit it with an editor
2023-06-26 19:51:14 +0000 <smoge> it can be divided into four equal parts (1 1 1 1), or the second element can be subdivided into 3 parts (1 (1 (1 1 1) 1 1)
2023-06-26 19:51:26 +0000 <smoge> that's the lisp data structure
2023-06-26 19:51:47 +0000 <smoge> (1 (1 (1 1 1)) 1 1)
2023-06-26 19:51:57 +0000 <EvanR> what would (1 2 1 1) mean
2023-06-26 19:52:07 +0000 <EvanR> 5 parts?
2023-06-26 19:52:24 +0000falafel(~falafel@2607:fb91:86c:d890:7062:4878:f4c6:58e7) (Remote host closed the connection)
2023-06-26 19:52:48 +0000falafel(~falafel@2607:fb91:86c:d890:5415:7177:e51d:b764)
2023-06-26 19:53:56 +0000 <smoge> Would mean 4 durations, the second is twice as long. The durations, in this case, would be adjusted to fir the same measure. Probably a "tuplet" 5-in-the-time-of-4
2023-06-26 19:54:09 +0000 <smoge> fit
2023-06-26 19:54:10 +0000 <probie> If I remember from the docs last time this what brought up, `(1 2 1 1)` means that in one unit of time (determined by context), there are 4 notes, with the second being twice as long as the other 3
2023-06-26 19:54:26 +0000 <probie> s/what brought up/was brought up/
2023-06-26 19:54:37 +0000 <smoge> yeah that's correct
2023-06-26 19:54:47 +0000Typedfern(~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net) (Ping timeout: 245 seconds)
2023-06-26 19:54:49 +0000 <EvanR> ok that's the same as what I was thinking
2023-06-26 19:54:59 +0000 <EvanR> same measure, divided into 5 parts, second note takes two of them
2023-06-26 19:55:08 +0000ec_(~ec@gateway/tor-sasl/ec)
2023-06-26 19:56:11 +0000 <smoge> yes. The idea is that you can manipulate the "proportions" in abstract, since they could be, for example, applied to another measure (longer of shorter) etc
2023-06-26 19:56:41 +0000 <smoge> the idea is that you can do different kinds of rhythm variations with this data structure
2023-06-26 19:56:57 +0000 <EvanR> so what does the rotate operation represent, or is it like the act of playing through the measure before looping
2023-06-26 19:57:39 +0000 <smoge> but if haskell don't like changing the structure at all by default, maybe there is an alternative way to do it
2023-06-26 19:58:22 +0000 <smoge> the rotation operation creates a new rhythm inside the measure, it's one of the most abstract, actually
2023-06-26 19:59:00 +0000 <EvanR> alright, discarding what I was thinking. So you want to edit a piece of your tree
2023-06-26 19:59:12 +0000 <geekosaur> art of the fugue?
2023-06-26 20:00:07 +0000 <ncf> contrapuntal functor
2023-06-26 20:00:33 +0000 <ncf> parametric polyrhythm
2023-06-26 20:00:36 +0000 <ncf> etc.
2023-06-26 20:00:36 +0000 <EvanR> MonadFugueState
2023-06-26 20:00:37 +0000 <smoge> yes, I want to take of one number and replace with a subdivision. or find all combination of a set of numbers that the sum is always x, etc
2023-06-26 20:00:39 +0000ft(~ft@p508db151.dip0.t-ipconnect.de)
2023-06-26 20:00:42 +0000 <smoge> all sorts of things
2023-06-26 20:00:58 +0000 <EvanR> ok haskell can do that
2023-06-26 20:01:22 +0000 <EvanR> on the first part, the key is specifying which place you want to make the edit at
2023-06-26 20:01:36 +0000 <probie> Prelude in C--?
2023-06-26 20:01:47 +0000chromoblob(~user@37.113.180.121) (Ping timeout: 264 seconds)
2023-06-26 20:01:52 +0000 <jade[m]> huh?
2023-06-26 20:02:17 +0000 <EvanR> you could use a sort of path like xpath, or upgrade to zippers. A zipper is like a cursor into your structure where you want to make an edit
2023-06-26 20:02:30 +0000 <smoge> can you point out some material that might shed some light?
2023-06-26 20:02:56 +0000 <EvanR> but if you never editing any haskell data structure before, maybe start by writing a function to edit a list
2023-06-26 20:02:57 +0000 <smoge> zipper sounds like it, I think
2023-06-26 20:03:18 +0000titibandit(~titibandi@user/titibandit)
2023-06-26 20:03:51 +0000 <smoge> ok, I'll practice with lists first
2023-06-26 20:03:58 +0000 <EvanR> everything I read about zippers is confusing, maybe someone has a good resource. But it's probably considered more advanced
2023-06-26 20:04:18 +0000S11001001(sid42510@id-42510.ilkley.irccloud.com) (Server closed connection)
2023-06-26 20:04:28 +0000S11001001(sid42510@id-42510.ilkley.irccloud.com)
2023-06-26 20:04:51 +0000 <EvanR> very pedestrian, non-zipper list editor would have type (a -> a) -> Int -> [a] -> [a]
2023-06-26 20:05:15 +0000 <geekosaur> https://hackage.haskell.org/package/xmonad-0.17.2/docs/XMonad-StackSet.html#g:2 might be more approachable than other descriptions
2023-06-26 20:06:09 +0000 <geekosaur> since it doesn't go on and on about derivatives and one-hole contexts and such
2023-06-26 20:06:32 +0000 <jade[m]> https://wiki.haskell.org/Zipper
2023-06-26 20:06:32 +0000 <jade[m]> uses a tree as an example, if that is desirable
2023-06-26 20:09:22 +0000 <smoge> thank you!
2023-06-26 20:09:39 +0000Typedfern(~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net)
2023-06-26 20:09:43 +0000geekosauropens, since list zippers he understands but has yet to wrap his head around how you zipper a tree
2023-06-26 20:11:39 +0000Techcable(~Techcable@user/Techcable)
2023-06-26 20:11:48 +0000 <EvanR> haha xmonad mentions mcbride derivative paper but doesn't put a link
2023-06-26 20:12:08 +0000 <EvanR> that's the only only zipper thing I actually understood
2023-06-26 20:12:11 +0000 <dolio> A list is a unary tree. So a zipper stores the node values above you, a focused value, and the list below you.
2023-06-26 20:12:26 +0000Techcable(~Techcable@user/Techcable) (Remote host closed the connection)
2023-06-26 20:12:40 +0000tromp(~textual@92.110.219.57)
2023-06-26 20:12:41 +0000 <dolio> A zipper for a binary tree stores the node values and branches you didn't follow above you, a focused value, and the tree below you.
2023-06-26 20:14:08 +0000 <dolio> Or ditch the 'focused value' part since it makes zippers undefined for empty structures.
2023-06-26 20:14:19 +0000Techcable(~Techcable@user/Techcable)
2023-06-26 20:15:19 +0000 <geekosaur> hm, I just checked and didn't see a good "primary" link for it, while filing a doc bug
2023-06-26 20:18:41 +0000 <geekosaur> researchgate claims you have to request an official copy from Conor, although various other outlets provide copies of it (notably strictlypositive.org)
2023-06-26 20:19:16 +0000 <dolio> If you get it from there, you are requesting it from Conor. :þ
2023-06-26 20:19:51 +0000 <jade[m]> ime finding papers is always a pain
2023-06-26 20:19:56 +0000 <jade[m]> so many paywalls and stuff
2023-06-26 20:26:09 +0000 <geekosaur> anyway I filed a doc bug, we should at least mention the title, if not provide a link
2023-06-26 20:27:15 +0000 <geekosaur> also while poking at this I found out the zipper page on the haskell wiki has a dead link (http://www.cs.nott.ac.uk/~ctm/)
2023-06-26 20:29:47 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-06-26 20:32:17 +0000taupiqueur(~taupiqueu@2a02-8440-2241-6bd3-291b-5a44-8bad-c57d.rev.sfr.net) (Ping timeout: 245 seconds)
2023-06-26 20:33:24 +0000user363627(~user@146.70.198.100) (Quit: Konversation terminated!)
2023-06-26 20:34:40 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0)
2023-06-26 20:37:17 +0000dipper(~dipper@203.168.26.139) (Ping timeout: 245 seconds)
2023-06-26 20:38:57 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:21c4:bb57:30a:20d0) (Ping timeout: 245 seconds)
2023-06-26 20:43:20 +0000chromoblob(~user@37.113.180.121)
2023-06-26 20:44:50 +0000titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-06-26 20:47:15 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-06-26 20:47:50 +0000chromoblob(~user@37.113.180.121) (Ping timeout: 250 seconds)
2023-06-26 20:49:20 +0000edwardk(sid47016@haskell/developer/edwardk) (Server closed connection)
2023-06-26 20:49:30 +0000edwardk(sid47016@haskell/developer/edwardk)
2023-06-26 20:51:50 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2023-06-26 20:53:44 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-06-26 20:55:11 +0000codaraxis(~codaraxis@user/codaraxis)
2023-06-26 20:58:33 +0000tromp(~textual@92.110.219.57) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 21:03:23 +0000__________(~nobody@user/noodly)
2023-06-26 21:04:11 +0000_________(~nobody@user/noodly) (Ping timeout: 264 seconds)
2023-06-26 21:06:54 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-06-26 21:07:58 +0000Guest9511(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr)
2023-06-26 21:08:43 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-06-26 21:08:49 +0000danse-nr3(~francesco@151.35.32.192)
2023-06-26 21:10:12 +0000nut(~nut@176-151-21-224.abo.bbox.fr) (Ping timeout: 245 seconds)
2023-06-26 21:10:38 +0000___________________
2023-06-26 21:10:47 +0000 <janus> geekosaur: i fixed the link, thanks
2023-06-26 21:11:43 +0000 <janus> it doesn't actually seem to have had any papers on it though
2023-06-26 21:11:46 +0000 <janus> how rare
2023-06-26 21:13:07 +0000 <janus> but there are just tons of dead links on the haskell wiki
2023-06-26 21:13:39 +0000 <janus> it's amazing how the archive.is person/team had the foresight to archive these ten years ago
2023-06-26 21:13:52 +0000 <janus> somehow i find a lot more stuff archived with them than at the Internet Archive
2023-06-26 21:13:57 +0000 <janus> and the interface is better too
2023-06-26 21:14:28 +0000 <janus> there just to be a big discussion at Wikipedia where people would be afraid of using archive.is because it wasn't established like the Internet Archive
2023-06-26 21:14:45 +0000 <janus> we really should archive the archive...
2023-06-26 21:15:58 +0000 <darkling> Multiple copies is good.
2023-06-26 21:21:20 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
2023-06-26 21:23:47 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2023-06-26 21:32:24 +0000extor(~extor@ns3018124.ip-149-202-82.eu) (Remote host closed the connection)
2023-06-26 21:35:08 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-06-26 21:36:50 +0000falafel(~falafel@2607:fb91:86c:d890:5415:7177:e51d:b764) (Ping timeout: 258 seconds)
2023-06-26 21:37:46 +0000enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2023-06-26 21:40:38 +0000smoge(~smoge@2603-7000-4b42-1100-dda0-def4-e62f-c2ea.res6.spectrum.com) (Ping timeout: 246 seconds)
2023-06-26 21:40:45 +0000siraben(~siraben@user/siraben) (Server closed connection)
2023-06-26 21:43:55 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-06-26 21:45:35 +0000Square2(~Square@user/square) (Ping timeout: 264 seconds)
2023-06-26 21:47:20 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-06-26 21:48:38 +0000catch22(~catch22@2406:3400:418:d7e0:67c:16ff:fe3e:b769)
2023-06-26 21:49:29 +0000kupi(uid212005@id-212005.hampstead.irccloud.com)
2023-06-26 21:51:58 +0000nick3(~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 252 seconds)
2023-06-26 21:53:05 +0000michalz(~michalz@185.246.207.201) (Remote host closed the connection)
2023-06-26 21:55:21 +0000bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-06-26 21:56:57 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-06-26 22:04:47 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 264 seconds)
2023-06-26 22:05:06 +0000mxs(~mxs@user/mxs)
2023-06-26 22:07:50 +0000Guest9511(~finn@rul16-h01-176-151-21-224.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2023-06-26 22:09:30 +0000hyiltiz(~user@2620:149:13d1:100::5df) (Ping timeout: 240 seconds)
2023-06-26 22:12:21 +0000wroathe(~wroathe@user/wroathe)
2023-06-26 22:13:19 +0000falafel(~falafel@2607:fb91:86c:d890:e762:f9b2:9119:4b00)
2023-06-26 22:15:53 +0000danse-nr3(~francesco@151.35.32.192) (Ping timeout: 246 seconds)
2023-06-26 22:18:36 +0000hippoid(~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Changing host)
2023-06-26 22:18:36 +0000hippoid(~hippoid@user/hippoid)
2023-06-26 22:18:58 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-06-26 22:19:21 +0000threedognite(~ThreeDogN@user/ThreeDogNite)
2023-06-26 22:20:07 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-06-26 22:27:12 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-06-26 22:27:14 +0000L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-06-26 22:28:08 +0000Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-06-26 22:37:14 +0000nick3(~nick@98.186.198.197)
2023-06-26 22:38:48 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2023-06-26 22:41:48 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 250 seconds)
2023-06-26 22:47:08 +0000falafel(~falafel@2607:fb91:86c:d890:e762:f9b2:9119:4b00) (Ping timeout: 240 seconds)
2023-06-26 22:47:26 +0000foul_owl(~kerry@45.143.82.40) (Ping timeout: 250 seconds)
2023-06-26 22:49:48 +0000threedognite(~ThreeDogN@user/ThreeDogNite) (Quit: Leaving)
2023-06-26 22:51:34 +0000hsw_(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
2023-06-26 22:52:30 +0000nick3(~nick@98.186.198.197) (Ping timeout: 240 seconds)
2023-06-26 22:52:42 +0000JSharp(sid4580@id-4580.lymington.irccloud.com) (Ping timeout: 255 seconds)
2023-06-26 22:53:00 +0000JSharp(sid4580@id-4580.lymington.irccloud.com)
2023-06-26 22:53:28 +0000hsw(~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Read error: Connection reset by peer)
2023-06-26 22:53:36 +0000geekosaur[m](~geekosaur@xmonad/geekosaur) (Ping timeout: 255 seconds)
2023-06-26 22:53:36 +0000Null_A[m](~jasonjckn@2001:470:69fc:105::bb85) (Ping timeout: 255 seconds)
2023-06-26 22:53:36 +0000bgamari[m](~bgamari@2001:470:69fc:105::c7b9) (Ping timeout: 255 seconds)
2023-06-26 22:53:37 +0000DustinStiles[m](~duwstiles@2001:470:69fc:105::3:699b) (Ping timeout: 255 seconds)
2023-06-26 22:53:37 +0000hellwolf[m](~hellwolfm@2001:470:69fc:105::3:6a4) (Ping timeout: 255 seconds)
2023-06-26 22:53:37 +0000lilpotent_jlemen(~lilpotent@2001:470:69fc:105::3:6eb6) (Ping timeout: 255 seconds)
2023-06-26 22:53:37 +0000oak-(~oak-@2001:470:69fc:105::fcd) (Ping timeout: 255 seconds)
2023-06-26 22:53:37 +0000joyfulmantis[m](~joyfulman@2001:470:69fc:105::3:400a) (Ping timeout: 255 seconds)
2023-06-26 22:53:37 +0000VarikValefor[m](~varikvale@2001:470:69fc:105::a5d) (Ping timeout: 255 seconds)
2023-06-26 22:54:03 +0000hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000peddie(~peddie@2001:470:69fc:105::25d) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000jean-paul[m](~jean-paul@2001:470:69fc:105::d1ab) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000SeanKing[m](~seankingm@2001:470:69fc:105::cf9c) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000Deide(~deide@user/deide) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000end^(~end^@user/end/x-0094621) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000shapr[m](~shaprcofr@2001:470:69fc:105::2:d107) (Ping timeout: 255 seconds)
2023-06-26 22:54:04 +0000earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 255 seconds)
2023-06-26 22:54:21 +0000earthy(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
2023-06-26 22:54:30 +0000supersven[m](~supersven@2001:470:69fc:105::31b6) (Ping timeout: 255 seconds)
2023-06-26 22:55:34 +0000foul_owl(~kerry@71.212.137.212)
2023-06-26 22:56:18 +0000hellwolf[m](~hellwolfm@2001:470:69fc:105::3:6a4)
2023-06-26 22:57:24 +0000Null_A[m](~jasonjckn@2001:470:69fc:105::bb85)
2023-06-26 22:57:45 +0000ddellacosta(~ddellacos@146.70.171.100) (Quit: WeeChat 3.8)
2023-06-26 22:57:50 +0000oak-(~oak-@2001:470:69fc:105::fcd)
2023-06-26 22:58:32 +0000acidjnk(~acidjnk@p200300d6e7072f355d50cb0f60b9d9c7.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2023-06-26 23:00:27 +0000segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-06-26 23:00:48 +0000 <segfaultfizzbuzz> what is there other than algebraic data types? are there uh, non-algebraic data types?
2023-06-26 23:00:57 +0000Deide(~deide@user/deide)
2023-06-26 23:01:02 +0000dcoutts_(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds)
2023-06-26 23:01:12 +0000 <geekosaur> C's, for example
2023-06-26 23:01:27 +0000 <segfaultfizzbuzz> C?
2023-06-26 23:01:53 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-06-26 23:02:07 +0000 <segfaultfizzbuzz> oh like C as in the programming language,...?
2023-06-26 23:02:32 +0000 <segfaultfizzbuzz> i mean as a way of gluing together "basic types" or "atomic types" by the way
2023-06-26 23:02:45 +0000 <geekosaur> "algebraic" means they're designed around an algebraic view of types. basically sums and products, but there are others as well which may not be supported by some algebraic-type languages; for example, haskell doesn't support quotient types
2023-06-26 23:03:02 +0000oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 250 seconds)
2023-06-26 23:03:09 +0000 <segfaultfizzbuzz> ah interesting,... is there a larger list of these types of types?
2023-06-26 23:03:09 +0000Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac)
2023-06-26 23:03:14 +0000m5zs7k_(aquares@web10.mydevil.net)
2023-06-26 23:03:33 +0000 <geekosaur> and the notion of sums and products is based on basic algebra but elevated to types, and can be thought of as representing the number of inhabitants of a type
2023-06-26 23:04:07 +0000 <segfaultfizzbuzz> right
2023-06-26 23:04:08 +0000m5zs7k(aquares@web10.mydevil.net) (Quit: m5zs7k)
2023-06-26 23:04:24 +0000 <geekosaur> so Bool has value 2, Maybe a is a + 1 (Nothing), sum types you add the values together, product types you multiply them, etc.
2023-06-26 23:04:38 +0000 <segfaultfizzbuzz> so there's product, sum, and quotient, and that's it?
2023-06-26 23:04:50 +0000SeanKing[m](~seankingm@2001:470:69fc:105::cf9c)
2023-06-26 23:05:09 +0000 <geekosaur> there's more. we were discussing Conor McBride's paper about derivatives of types in here earlier, for example
2023-06-26 23:06:00 +0000 <geekosaur> sums and products are just the easiest ones to consider
2023-06-26 23:06:10 +0000 <c_wraith> functions are exponents
2023-06-26 23:06:35 +0000 <segfaultfizzbuzz> right
2023-06-26 23:06:57 +0000 <segfaultfizzbuzz> wild
2023-06-26 23:07:22 +0000shapr[m](~shaprcofr@2001:470:69fc:105::2:d107)
2023-06-26 23:08:01 +0000mncheck-m(~mncheck@193.224.205.254)
2023-06-26 23:08:08 +0000 <segfaultfizzbuzz> so the derivative of a type can require its own uh, not sure what to call this-- type-type? like a derivative of an algebraic data type should probably also be algebraic (?) or can it escape algebraicity?
2023-06-26 23:08:34 +0000 <geekosaur> it's only meaningful in a system of algebraic types
2023-06-26 23:09:48 +0000 <geekosaur> (well, presumably someone could come up with a different context in which it has meaning, but when we talk about it we're working in a system of algebraic data types so the result will also be an algebraic data type)
2023-06-26 23:09:56 +0000Muon(~muon@2a09:bac5:bec4:1923::281:6b) (Quit: Leaving)
2023-06-26 23:10:37 +0000 <segfaultfizzbuzz> ...so in haskell, if you are not doing FFI, then there are only algebraic data types?
2023-06-26 23:10:37 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2023-06-26 23:10:38 +0000mncheck(~mncheck@193.224.205.254) (Ping timeout: 245 seconds)
2023-06-26 23:11:23 +0000 <geekosaur> yes
2023-06-26 23:11:31 +0000 <segfaultfizzbuzz> that is very clarifying, thanks
2023-06-26 23:11:48 +0000 <geekosaur> I'd ague even with FFI you only have types which can be represented by algebraic data types
2023-06-26 23:11:55 +0000 <segfaultfizzbuzz> and so the entirety of haskell types are then the fundamental types (Int32, Char, etc), algebraic data types, and then weird FFI stuff?
2023-06-26 23:12:31 +0000 <geekosaur> we can't do C unions, for example, unless we can treat them as tagged unions in which case we can model them as sum types
2023-06-26 23:12:44 +0000 <ncf> segfaultfizzbuzz: there's also functions! and polymorphism!
2023-06-26 23:12:51 +0000m5zs7k_m5zs7k
2023-06-26 23:13:00 +0000 <segfaultfizzbuzz> by the way you are describing this it sounds like memory layout and type are the same or somehow deeply linked?
2023-06-26 23:13:12 +0000 <ncf> "algebraic data type" isn't really a meaningful concept semantically afaik
2023-06-26 23:13:44 +0000 <ncf> it just refers to the syntax you can use to make product and sum types (but these are just ways of combining old types into new types)
2023-06-26 23:14:23 +0000 <segfaultfizzbuzz> ncf: i can construct a "composite type" from operations linking "fundamental types" (not sure of the right jargon here), and so an algebraic data type allows you to construct a composite type from sum and product
2023-06-26 23:14:36 +0000hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4)
2023-06-26 23:16:26 +0000jargon(~jargon@184.101.72.124)
2023-06-26 23:17:44 +0000cafkafk(~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
2023-06-26 23:19:59 +0000end^(~end^@user/end/x-0094621)
2023-06-26 23:20:32 +0000 <ncf> (oh and i guess they also abstract over fixed points)
2023-06-26 23:21:35 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:a833:b88c:109c:523a)
2023-06-26 23:23:59 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
2023-06-26 23:25:02 +0000Tuplanolla(~Tuplanoll@91.159.68.236) (Quit: Leaving.)
2023-06-26 23:26:00 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:a833:b88c:109c:523a) (Ping timeout: 255 seconds)
2023-06-26 23:33:20 +0000tbidne[m](~tbidnemat@2001:470:69fc:105::3:6d42) (Server closed connection)
2023-06-26 23:33:32 +0000tbidne[m](~tbidnemat@2001:470:69fc:105::3:6d42)
2023-06-26 23:35:30 +0000cafkafk(~cafkafk@fsf/member/cafkafk)
2023-06-26 23:36:33 +0000aaronv(~aaronv@user/aaronv) (Server closed connection)
2023-06-26 23:36:47 +0000aaronv(~aaronv@user/aaronv)
2023-06-26 23:37:43 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-06-26 23:37:44 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-06-26 23:37:44 +0000wroathe(~wroathe@user/wroathe)
2023-06-26 23:38:45 +0000Nokurn(~jeremiah@cpe-76-86-186-227.socal.res.rr.com)
2023-06-26 23:44:49 +0000 <monochrom> I like "newtype D a = MkD (D a -> a)". It may or may not count as an algebraic data type.
2023-06-26 23:45:16 +0000 <monochrom> And yeah polymorphism too, "newtype I a = MkI (forall r. (a -> r) -> r)"
2023-06-26 23:45:30 +0000 <segfaultfizzbuzz> hmm
2023-06-26 23:46:22 +0000mauke_(~mauke@user/mauke)
2023-06-26 23:48:06 +0000mauke(~mauke@user/mauke) (Ping timeout: 250 seconds)
2023-06-26 23:48:06 +0000mauke_mauke
2023-06-26 23:53:11 +0000pavonia(~user@user/siracusa)
2023-06-26 23:56:54 +0000meinside(uid24933@id-24933.helmsley.irccloud.com)
2023-06-26 23:57:18 +0000Umeaboy(~Umeaboy@94-255-145-133.cust.bredband2.com)
2023-06-26 23:59:08 +0000 <Umeaboy> Hi! gprbuild is necessary to port GHC to a new distro, but one of its dependencies are xmlada-sources according to the spec file for Fedora 39, but that package does NOT exist. Is it safe to delete the need of that package or should I comment it out?