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