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.