Home liberachat/#haskell: Logs Calendar

Logs on 2023-06-26 (liberachat/#haskell)

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

All times are in UTC on 2023-06-26.