2022/12/18

2022-12-18 00:00:14 +0000ksqsf(~user@134.209.106.31)
2022-12-18 00:02:32 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-18 00:06:13 +0000fizbin(~fizbin@user/fizbin)
2022-12-18 00:06:15 +0000Topsi(~Topsi@dyndsl-095-033-228-128.ewe-ip-backbone.de) (Ping timeout: 255 seconds)
2022-12-18 00:07:53 +0000 <geekosaur> you may be thinking of -fbytecode vs. -fobject-code, but someone could run ghci with -fobject-code
2022-12-18 00:08:06 +0000pavonia(~user@user/siracusa)
2022-12-18 00:08:18 +0000 <geekosaur> and no, there is no CPP specific to ghci
2022-12-18 00:09:10 +0000 <glguy> alexfmpe[m]: In the past when I had features that didn't work in GHCi, I added a flag to my package that would set a define and then would cpp ifdef that code that shouldn't appear in the ghci case
2022-12-18 00:09:13 +0000 <geekosaur> sorry, -fbyte-code
2022-12-18 00:09:58 +0000 <glguy> In my particular case it was to hide some foreign exports
2022-12-18 00:10:03 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 00:10:21 +0000beefbambi(~beefbambi@183.82.27.160)
2022-12-18 00:10:33 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 00:14:14 +0000paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru)
2022-12-18 00:16:51 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 268 seconds)
2022-12-18 00:21:53 +0000biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-12-18 00:23:55 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-12-18 00:27:44 +0000biberu(~biberu@user/biberu)
2022-12-18 00:31:02 +0000ksqsf(~user@134.209.106.31) (Remote host closed the connection)
2022-12-18 00:37:50 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b575:bbf6:df74:2100)
2022-12-18 00:43:50 +0000 <alexfmpe[m]> I see thanks. Turns out for my use-case this might not actually be necessary (though it would be sufficient). The flag idea would probably work for the "debug version" scenario
2022-12-18 00:45:13 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 00:51:12 +0000 <DigitalKiwi> glguy: were you exporting cryptography
2022-12-18 00:51:24 +0000beefbambi(~beefbambi@183.82.27.160) (Read error: Connection reset by peer)
2022-12-18 00:51:42 +0000 <DigitalKiwi> naughty naughty
2022-12-18 00:52:01 +0000beefbambi(~beefbambi@183.82.27.160)
2022-12-18 00:56:13 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-18 00:56:13 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-18 00:56:13 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 00:57:06 +0000kenaryn(~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
2022-12-18 01:00:34 +0000 <sm> omg finally things are getting easy ? https://gilmi.me/blog/post/2022/12/17/sqlite-easy
2022-12-18 01:10:39 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-12-18 01:13:54 +0000j4cc3b(~jeffreybe@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 272 seconds)
2022-12-18 01:14:42 +0000fizbin(~fizbin@user/fizbin) (Ping timeout: 252 seconds)
2022-12-18 01:16:47 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-12-18 01:16:53 +0000fizbin(~fizbin@user/fizbin)
2022-12-18 01:24:17 +0000ksqsf(~user@134.209.106.31)
2022-12-18 01:30:50 +0000fizbin(~fizbin@user/fizbin) (Ping timeout: 252 seconds)
2022-12-18 01:32:02 +0000ksqsf(~user@134.209.106.31) (Remote host closed the connection)
2022-12-18 01:37:09 +0000 <glguy> Is easy easier than simple? Is it as light as lite?
2022-12-18 01:41:06 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 01:42:48 +0000 <EvanR> diet sqlite easy simple no problem edition
2022-12-18 01:47:54 +0000 <dsal> Who names their database "somethingdb.bin"?
2022-12-18 01:51:49 +0000ksqsf(~user@134.209.106.31)
2022-12-18 01:55:14 +0000 <monochrom> I named my databases "something.db2" :)
2022-12-18 02:10:44 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-12-18 02:10:53 +0000ddellacosta(~ddellacos@143.244.47.75)
2022-12-18 02:11:02 +0000 <ddellacosta> maralorn: thanks, will check it out!
2022-12-18 02:11:45 +0000Inst(~Inst@2601:6c4:4081:54f0:8d82:4e66:2137:ab94) (Read error: Connection reset by peer)
2022-12-18 02:12:00 +0000jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 265 seconds)
2022-12-18 02:15:13 +0000[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-12-18 02:15:52 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 02:19:46 +0000[Leary](~Leary]@user/Leary/x-0910699)
2022-12-18 02:23:37 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-12-18 02:26:21 +0000ksqsf(~user@134.209.106.31) (Ping timeout: 268 seconds)
2022-12-18 02:28:59 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
2022-12-18 02:32:27 +0000xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-12-18 02:32:40 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-12-18 02:34:47 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish)
2022-12-18 02:35:30 +0000TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2022-12-18 02:45:43 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b575:bbf6:df74:2100) (Remote host closed the connection)
2022-12-18 02:51:18 +0000ksqsf(~user@134.209.106.31)
2022-12-18 02:52:43 +0000ksqsf(~user@134.209.106.31) (Remote host closed the connection)
2022-12-18 02:59:00 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 03:01:04 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 03:03:37 +0000wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-12-18 03:10:59 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds)
2022-12-18 03:11:28 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-18 03:11:28 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-18 03:11:28 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 03:11:37 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 03:16:26 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-12-18 03:24:27 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-12-18 03:24:27 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-12-18 03:24:27 +0000finn_elijaFinnElija
2022-12-18 03:24:43 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b575:bbf6:df74:2100)
2022-12-18 03:32:57 +0000td_(~td@83.135.9.26) (Ping timeout: 268 seconds)
2022-12-18 03:34:43 +0000td_(~td@83.135.9.47)
2022-12-18 03:36:08 +0000wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-12-18 03:37:13 +0000fizbin(~fizbin@user/fizbin)
2022-12-18 03:45:16 +0000ksqsf(~user@134.209.106.31)
2022-12-18 03:48:38 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
2022-12-18 03:48:40 +0000son0p(~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 260 seconds)
2022-12-18 03:49:41 +0000son0p(~ff@2604:3d08:5b7f:5540::417e)
2022-12-18 03:50:13 +0000ksqsf(~user@134.209.106.31) (Ping timeout: 268 seconds)
2022-12-18 03:50:59 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-12-18 03:51:16 +0000jargon(~jargon@174-22-192-24.phnx.qwest.net)
2022-12-18 03:52:44 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-12-18 03:53:36 +0000xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-12-18 03:53:38 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-12-18 04:01:41 +0000tvandinther(~tvandinth@101.98.118.246)
2022-12-18 04:02:58 +0000 <tvandinther> Does anyone have tips for setting up auto-styling/formatting for source code files on save in VSCode?
2022-12-18 04:03:22 +0000ksqsf(~user@134.209.106.31)
2022-12-18 04:04:53 +0000brettgilio(~brettgili@x-irc.gq)
2022-12-18 04:10:15 +0000iqubic(~avi@2601:601:1100:edd0:8902:307c:9a5f:dd30) (Ping timeout: 260 seconds)
2022-12-18 04:16:18 +0000Inst(~Inst@2601:6c4:4081:54f0:f11e:46df:c907:e40e)
2022-12-18 04:16:35 +0000 <Inst> erm, when it comes to testing a nested definition, there's no way to do so, right?
2022-12-18 04:17:00 +0000 <Inst> I was wondering if there was some template Haskell metaprogramming way to access a definition within a definition
2022-12-18 04:17:44 +0000 <glguy> It wouldn't make sense to access it in general as it might mention variables from the parent scope
2022-12-18 04:21:26 +0000 <Inst> there's a pragmatic need, though
2022-12-18 04:21:33 +0000 <Inst> if you're using where clausing to hide api
2022-12-18 04:21:42 +0000 <Inst> i suppose you could do the same with modules, but that creates annoyances
2022-12-18 04:23:22 +0000 <EvanR> you can define a piece of API that accesses the internal state, basically OOP
2022-12-18 04:23:27 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 04:24:14 +0000 <EvanR> but it's not something you could just do against uncooperative code
2022-12-18 04:25:20 +0000iqubic(~avi@2601:601:1100:edd0:4992:623a:6d6:39c5)
2022-12-18 04:27:19 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2022-12-18 04:27:56 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 04:28:15 +0000tvandinther(~tvandinth@101.98.118.246) (Quit: Client closed)
2022-12-18 04:29:09 +0000ddellacosta(~ddellacos@143.244.47.75) (Ping timeout: 260 seconds)
2022-12-18 04:30:05 +0000iqubic(~avi@2601:601:1100:edd0:4992:623a:6d6:39c5) (Ping timeout: 260 seconds)
2022-12-18 04:36:31 +0000 <glguy> Is there a way to get haskell-language-server to show haddocks for stuff in my local cabal.project workspace?
2022-12-18 04:36:52 +0000 <glguy> I only seem to get type signatures
2022-12-18 04:37:10 +0000pflanze(~pflanze@159.100.249.232) (Read error: Connection reset by peer)
2022-12-18 04:38:28 +0000pflanze(~pflanze@159.100.249.232)
2022-12-18 04:39:18 +0000ksqsf`(~user@134.209.106.31)
2022-12-18 04:40:41 +0000ksqsf`(~user@134.209.106.31) (Remote host closed the connection)
2022-12-18 04:40:57 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 04:43:20 +0000ksqsf(~user@134.209.106.31) (Ping timeout: 252 seconds)
2022-12-18 04:45:47 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-18 04:45:47 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-18 04:45:47 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 05:03:32 +0000fr33domlover(~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat)
2022-12-18 05:06:15 +0000fr33domlover(~fr33domlo@towards.vision)
2022-12-18 05:15:19 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 05:15:35 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-12-18 05:19:46 +0000iqubic(~avi@2601:601:1100:edd0:23b0:d602:1b3e:8cff)
2022-12-18 05:22:10 +0000wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-12-18 05:22:16 +0000ksqsf`(~user@134.209.106.31)
2022-12-18 05:25:17 +0000rnat(uid73555@id-73555.lymington.irccloud.com)
2022-12-18 05:31:41 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-18 05:31:41 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-18 05:31:41 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 05:42:45 +0000money_(~money@2607:fb91:bd3c:6437:70a6:5c6e:bbfe:7955)
2022-12-18 05:44:00 +0000money_(~money@2607:fb91:bd3c:6437:70a6:5c6e:bbfe:7955) (Client Quit)
2022-12-18 05:53:22 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-12-18 06:00:58 +0000ksqsf``(~user@134.209.106.31)
2022-12-18 06:05:14 +0000ksqsf`(~user@134.209.106.31) (Ping timeout: 272 seconds)
2022-12-18 06:11:49 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 06:20:20 +0000razetime(~quassel@49.207.230.181)
2022-12-18 06:21:11 +0000ksqsf``ksqsf
2022-12-18 06:22:45 +0000EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-12-18 06:23:05 +0000EvanR(~EvanR@user/evanr)
2022-12-18 06:28:30 +0000son0p(~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 260 seconds)
2022-12-18 06:31:07 +0000Wolfram-Sigma(~Wolfram-S@216-131-109-245.prg.as62651.net)
2022-12-18 06:46:24 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-12-18 06:54:56 +0000wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-12-18 07:03:34 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-12-18 07:09:51 +0000dsrt^(~dsrt@76.145.185.103) (Remote host closed the connection)
2022-12-18 07:10:30 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 260 seconds)
2022-12-18 07:10:38 +0000ksqsf(~user@134.209.106.31) (Ping timeout: 268 seconds)
2022-12-18 07:12:44 +0000ksqsf(~user@134.209.106.31)
2022-12-18 07:13:59 +0000ksqsf(~user@134.209.106.31) (Remote host closed the connection)
2022-12-18 07:21:09 +0000tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2022-12-18 07:26:38 +0000ksqsf(~user@134.209.106.31)
2022-12-18 07:28:15 +0000ksqsf(~user@134.209.106.31) (Remote host closed the connection)
2022-12-18 07:28:40 +0000ksqsf(~user@134.209.106.31)
2022-12-18 07:30:34 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-12-18 07:34:35 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:b575:bbf6:df74:2100) (Remote host closed the connection)
2022-12-18 07:36:26 +0000beefbambi(~beefbambi@183.82.27.160) (Ping timeout: 272 seconds)
2022-12-18 07:37:23 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 07:39:41 +0000freeside(~mengwong@213.86.11.74)
2022-12-18 07:42:42 +0000merijn(~merijn@86.86.29.250)
2022-12-18 07:47:05 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-12-18 07:47:37 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 07:47:54 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 07:49:58 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 07:50:32 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 07:50:53 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 07:51:23 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2022-12-18 07:58:56 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 08:03:56 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 256 seconds)
2022-12-18 08:04:19 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2022-12-18 08:04:37 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2022-12-18 08:08:36 +0000freeside(~mengwong@213.86.11.74) (Ping timeout: 268 seconds)
2022-12-18 08:14:46 +0000rnat(uid73555@id-73555.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-12-18 08:17:14 +0000merijn(~merijn@86.86.29.250) (Ping timeout: 268 seconds)
2022-12-18 08:17:49 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
2022-12-18 08:26:25 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-12-18 08:27:59 +0000califax(~califax@user/califx)
2022-12-18 08:35:05 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 08:35:33 +0000trev(~trev@user/trev)
2022-12-18 08:36:25 +0000johnw(~johnw@2600:1700:cf00:db0:6524:1c2a:8eda:bee4)
2022-12-18 08:39:46 +0000son0p(~ff@2604:3d08:5b7f:5540::417e)
2022-12-18 08:40:35 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-12-18 08:40:55 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 260 seconds)
2022-12-18 08:49:55 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 08:50:42 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 08:54:15 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 09:00:05 +0000ted[m](~tedmatrix@2001:470:69fc:105::2:bf60) (Quit: You have been kicked for being idle)
2022-12-18 09:01:02 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 09:06:13 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 09:09:02 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds)
2022-12-18 09:24:19 +0000gmg(~user@user/gehmehgeh)
2022-12-18 09:25:29 +0000ksqsf(~user@134.209.106.31) (Ping timeout: 260 seconds)
2022-12-18 09:28:24 +0000beefbambi(~beefbambi@183.82.204.70) (Ping timeout: 260 seconds)
2022-12-18 09:28:49 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 09:36:37 +0000jakalx(~jakalx@base.jakalx.net)
2022-12-18 09:41:00 +0000danza(~francesco@4.red-79-153-154.dynamicip.rima-tde.net)
2022-12-18 09:44:06 +0000xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-12-18 09:47:05 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-12-18 09:47:18 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Ping timeout: 252 seconds)
2022-12-18 09:51:31 +0000ksqsf(~user@134.209.106.31)
2022-12-18 09:53:29 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 255 seconds)
2022-12-18 09:54:42 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 09:54:59 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 09:58:22 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 10:03:04 +0000beefbambi(~beefbambi@183.82.204.70) (Ping timeout: 252 seconds)
2022-12-18 10:03:39 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 10:22:42 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-12-18 10:23:06 +0000kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2022-12-18 10:24:17 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-12-18 10:24:31 +0000danza(~francesco@4.red-79-153-154.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2022-12-18 10:25:05 +0000Wolfram-Sigma(~Wolfram-S@216-131-109-245.prg.as62651.net) (Quit: Client closed)
2022-12-18 10:25:26 +0000Lord_of_Life_Lord_of_Life
2022-12-18 10:35:36 +0000geekosaur(~geekosaur@xmonad/geekosaur)
2022-12-18 10:48:05 +0000allbery_b(~geekosaur@xmonad/geekosaur)
2022-12-18 10:48:05 +0000geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2022-12-18 10:48:08 +0000allbery_bgeekosaur
2022-12-18 10:50:39 +0000econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-12-18 10:50:42 +0000WarzoneCommandNoinia
2022-12-18 10:53:51 +0000gawen_(~gawen@user/gawen) (Quit: cya)
2022-12-18 10:54:31 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 10:55:06 +0000Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-12-18 10:56:33 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 10:58:25 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 10:59:00 +0000gawen(~gawen@user/gawen)
2022-12-18 10:59:06 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-12-18 11:02:56 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 11:04:05 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 11:04:37 +0000kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-12-18 11:06:59 +0000Me-me(~Me-me@user/me-me) (Quit: Going offline, see ya! (www.adiirc.com))
2022-12-18 11:10:15 +0000kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2022-12-18 11:13:40 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 11:13:53 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 11:14:30 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 11:14:41 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 11:14:45 +0000crazazy(~user@130.89.171.62)
2022-12-18 11:15:16 +0000Kaiepi(~Kaiepi@108.175.84.104)
2022-12-18 11:15:27 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 11:15:45 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 11:17:56 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 11:18:21 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 11:21:14 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-12-18 11:21:40 +0000jakalx(~jakalx@base.jakalx.net)
2022-12-18 11:22:29 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 11:23:19 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 260 seconds)
2022-12-18 11:24:07 +0000ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-12-18 11:28:52 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-12-18 11:30:51 +0000haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2022-12-18 11:30:57 +0000kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-12-18 11:33:03 +0000haskl(~haskl@user/haskl)
2022-12-18 11:38:23 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 11:39:37 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-12-18 11:39:55 +0000oopzzozzo(~Thunderbi@user/oopzzozzo)
2022-12-18 11:42:47 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 260 seconds)
2022-12-18 11:44:12 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 11:47:08 +0000kritzefitz(~kritzefit@debian/kritzefitz)
2022-12-18 11:47:58 +0000beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-12-18 11:52:37 +0000kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2022-12-18 11:59:32 +0000kritzefitz(~kritzefit@debian/kritzefitz)
2022-12-18 12:10:19 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-18 12:13:58 +0000[Leary](~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2022-12-18 12:19:11 +0000oopzzozzo(~Thunderbi@user/oopzzozzo) (Ping timeout: 260 seconds)
2022-12-18 12:25:04 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 12:26:30 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 12:26:40 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 12:29:05 +0000[Leary](~Leary]@user/Leary/x-0910699)
2022-12-18 12:30:04 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-12-18 12:30:48 +0000gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-12-18 12:30:53 +0000 <Jade[m]> @pl f s = g s >> h
2022-12-18 12:30:53 +0000 <lambdabot> f = (>> h) . g
2022-12-18 12:38:10 +0000ksqsf(~user@134.209.106.31) (Ping timeout: 252 seconds)
2022-12-18 12:38:32 +0000brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-12-18 12:46:03 +0000 <sayola> whats ^>= in cabal deps?
2022-12-18 12:46:48 +0000brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Quit: brandonh)
2022-12-18 12:47:31 +0000hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-12-18 12:47:50 +0000hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-12-18 12:47:52 +0000jinsun(~jinsun@user/jinsun) (Quit: No Ping reply in 180 seconds.)
2022-12-18 12:48:19 +0000 <Jade[m]> not bigger than or equal to?
2022-12-18 12:48:20 +0000 <Jade[m]> not sure
2022-12-18 12:53:14 +0000 <geekosaur> >= but obeying PVP bounds
2022-12-18 12:54:05 +0000jinsun(~jinsun@user/jinsun)
2022-12-18 12:54:46 +0000 <geekosaur> so there's an implicit <= based on the appropriate PVP bound for the specified version
2022-12-18 12:54:48 +0000 <sayola> so, thats the last two numbers of pvp then?
2022-12-18 12:54:56 +0000 <geekosaur> usually
2022-12-18 12:55:02 +0000 <sayola> which can change
2022-12-18 12:55:05 +0000 <sayola> ok
2022-12-18 12:55:38 +0000xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 272 seconds)
2022-12-18 12:59:40 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2022-12-18 12:59:41 +0000beefbambi(~beefbambi@183.82.204.70) (Read error: Connection reset by peer)
2022-12-18 13:00:32 +0000beefbambi(~beefbambi@183.82.204.70)
2022-12-18 13:01:00 +0000instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-12-18 13:01:52 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds)
2022-12-18 13:02:56 +0000acidjnk(~acidjnk@p200300d6e7137a3900a43338f23333fb.dip0.t-ipconnect.de)
2022-12-18 13:03:36 +0000Topsi(~Topsi@dialin-80-228-141-093.ewe-ip-backbone.de)
2022-12-18 13:05:46 +0000instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 272 seconds)
2022-12-18 13:07:19 +0000v0id_ptr(~adrift@user/ptr-frac7al/x-0038398)
2022-12-18 13:09:04 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2022-12-18 13:09:27 +0000jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-12-18 13:14:57 +0000kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2022-12-18 13:16:56 +0000v0id_ptr(~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 268 seconds)
2022-12-18 13:17:21 +0000jakalx(~jakalx@base.jakalx.net)
2022-12-18 13:18:28 +0000xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-12-18 13:18:51 +0000kritzefitz(~kritzefit@debian/kritzefitz)
2022-12-18 13:22:23 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-12-18 13:22:48 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 13:23:30 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 272 seconds)
2022-12-18 13:30:25 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2022-12-18 13:32:48 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 252 seconds)
2022-12-18 13:34:20 +0000 <Inst> curious
2022-12-18 13:34:25 +0000kenaryn(~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
2022-12-18 13:34:37 +0000 <Inst> would it be a good or a bad thing if OverloadedTypeclasses were a thing?
2022-12-18 13:35:26 +0000beefbambi(~beefbambi@183.82.204.70) (Ping timeout: 268 seconds)
2022-12-18 13:35:34 +0000 <geekosaur> meaning what?
2022-12-18 13:36:13 +0000Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2022-12-18 13:36:15 +0000 <Inst> say, I don't like Num, I want to inject a new num in without dropping the default prelude, etc
2022-12-18 13:36:41 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 13:36:55 +0000 <trev> isn't that called "specialization"?
2022-12-18 13:37:55 +0000 <Inst> just playing around with Julia a very little bit, and I'm thinking about limitations of Num, etc
2022-12-18 13:37:56 +0000 <geekosaur> no, specialization is pregenerating code for a particular type, and applies to polymorphic code not to typeclasses
2022-12-18 13:38:32 +0000 <Inst> is there something fundamentally preventing the overloading of typeclasses?
2022-12-18 13:38:48 +0000 <Inst> (+) :: Num a => a -> a -> a
2022-12-18 13:38:54 +0000 <geekosaur> as to your proposed overloading semantics, remember that values in Haskell are not objects and don't have vtables. so how does code in another module or library know about your overload?
2022-12-18 13:39:25 +0000 <Inst> does code in another module or library need to know about my overload?
2022-12-18 13:39:47 +0000 <geekosaur> right now they know because instances are global symbols and it can simply refer to $fNumType
2022-12-18 13:39:59 +0000 <geekosaur> if you want that code to actually use it, yes
2022-12-18 13:40:20 +0000 <Inst> How about, no?
2022-12-18 13:40:37 +0000 <Inst> The idea is that I can get safe transition toward new Num typeclasses etc
2022-12-18 13:40:53 +0000 <geekosaur> then whaqt's the point of the overload? and what happens when code using it encounters code that doesn't?
2022-12-18 13:41:29 +0000 <Inst> the code that doesn't shouldn't interact with the code that does overload
2022-12-18 13:41:38 +0000 <Inst> or if it does, it can't see the overloaded typeclasses
2022-12-18 13:41:43 +0000 <Inst> unless the pragma is on in the module
2022-12-18 13:41:55 +0000 <geekosaur> also I suspect you'd be fairly upset if something like `sum` doesn't use your overloaded (+)
2022-12-18 13:42:22 +0000razetime(~quassel@49.207.230.181) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-12-18 13:42:38 +0000 <Inst> that's fine, what I'm more thinking of is figuring out how to syntactically enable typesafe (and possibly dependently typed) matrix multiplication with *
2022-12-18 13:43:12 +0000 <Inst> since, well, by default, a matrix multiplication is not going to follow a -> a -> a, no?
2022-12-18 13:43:34 +0000 <Inst> a -> b -> c
2022-12-18 13:43:48 +0000 <geekosaur> that's going to require rather more than just overloading Num
2022-12-18 13:44:06 +0000 <Inst> yeah, tbh, it's a complex matter
2022-12-18 13:44:39 +0000phma(phma@2001:5b0:211f:d528:ab67:ad29:6dde:4757) (Read error: Connection reset by peer)
2022-12-18 13:44:44 +0000 <geekosaur> and yes, aiui it would have to be dependently typed, or at minimum size information at type level
2022-12-18 13:44:55 +0000 <hpc> if you don't use Num, there's some other fun alternatives you might consider
2022-12-18 13:44:59 +0000 <geekosaur> which in Haskell is a PITA
2022-12-18 13:45:07 +0000 <hpc> for example, matrix multiplication is function composition of linear functions
2022-12-18 13:45:22 +0000tok(~user@mobile-access-d98cd1-96.dhcp.inet.fi)
2022-12-18 13:45:30 +0000phma(~phma@host-67-44-208-107.hnremote.net)
2022-12-18 13:45:30 +0000 <hpc> and if you use data M w h, you can even get a type that looks like (.)
2022-12-18 13:45:40 +0000 <Inst> and overloading a typeclass is still a bit of a headache either way; I don't think I've fully thought of the implications of such
2022-12-18 13:45:53 +0000 <hpc> M a b -> M b c -> M a c
2022-12-18 13:46:31 +0000 <Inst> I just want the ability to share the basic numeric operator symbols with a replacement, eventually a replacement that gets backed by GHC committees and phased in
2022-12-18 13:48:28 +0000 <geekosaur> this would require more than just overloading Num; it requires splitting Num up
2022-12-18 13:48:53 +0000 <Inst> well, yeah, that's what most plans for replacing Num look like, no?
2022-12-18 13:49:00 +0000 <geekosaur> I mean Num itself
2022-12-18 13:49:00 +0000 <Inst> get it to properly map a ring or something
2022-12-18 13:49:10 +0000 <sayola> at the very least reimplementing Num that is then based on a more generic class for these ops
2022-12-18 13:49:20 +0000 <geekosaur> (+) and (*) can no longer be part of the same typeclass
2022-12-18 13:49:28 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds)
2022-12-18 13:49:43 +0000 <Inst> which means dumping various Num methods elsewhere
2022-12-18 13:50:11 +0000 <Inst> come to think of it, why wasn't this considered during FAM transition?
2022-12-18 13:50:56 +0000 <sayola> i think its not that important, since you can still make more operators that are just one or two symbols longer, that do what you want.
2022-12-18 13:51:00 +0000razetime(~quassel@49.207.230.181)
2022-12-18 13:51:06 +0000 <Inst> operators are a mess, though
2022-12-18 13:51:16 +0000 <Inst> newbies get pissed off at all the $, <$>, >>=, etc
2022-12-18 13:51:31 +0000 <hpc> sayola: like (++) and (**), brilliant! :D
2022-12-18 13:51:47 +0000oopzzozzo(~Thunderbi@user/oopzzozzo)
2022-12-18 13:51:55 +0000 <Inst> which is the real argument for overloaded typeclasses, no? save the precious operator namespace
2022-12-18 13:53:13 +0000 <geekosaur[m]> I think newbies have bigger problems than you're suggesting with the various operators
2022-12-18 13:53:27 +0000 <sayola> tbh talking about new user experience, its probably better if Num and the ops stay as limited. its fairly complicated as is. generalizing makes it only worse.
2022-12-18 13:53:32 +0000 <geekosaur[m]> Specifically that it's not what they already know. They have to learn new stuff
2022-12-18 13:54:01 +0000 <Inst> I'm still not sure whether user-defined operators were a mistake
2022-12-18 13:54:41 +0000 <hpc> Inst: having the option to make my own is worth it imo
2022-12-18 13:54:41 +0000 <sayola> code would be a lot more verbose without them. i think that would be worse for understanding code.
2022-12-18 13:54:51 +0000 <Inst> shouldn't overloaded typeclasses have been discussed before?
2022-12-18 13:55:04 +0000 <Inst> tbh I sort of see operators as part of Haskell style
2022-12-18 13:55:06 +0000 <hpc> plenty of other languages have made much pettier features that are dependent on discipline for readability
2022-12-18 13:55:13 +0000acidjnk(~acidjnk@p200300d6e7137a3900a43338f23333fb.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-12-18 13:55:22 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 13:55:23 +0000 <Inst> the language would be more lisp-like, not necessarily a good thing
2022-12-18 13:55:32 +0000 <Inst> without all the operators hanging around
2022-12-18 13:55:54 +0000 <hpc> i had a lisp class in college that broke the 9 key on my keyboard, never doing that again
2022-12-18 13:58:48 +0000unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36)
2022-12-18 13:59:25 +0000son0p(~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 260 seconds)
2022-12-18 13:59:26 +0000kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-12-18 14:02:04 +0000 <Inst> ahhh, is this the problem? I'm reading on Quora
2022-12-18 14:02:10 +0000 <Inst> or rather stack exchange
2022-12-18 14:02:24 +0000 <albet70> I have a cabal project, but I'd like to run two different files as Main.hs, how I set 'main-is' in my.cabal?
2022-12-18 14:02:26 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
2022-12-18 14:02:45 +0000 <Inst> C++-style overloading results in exponential time or undecidable type inference :(
2022-12-18 14:03:14 +0000__monty__(~toonn@user/toonn)
2022-12-18 14:03:21 +0000 <hpc> albet70: you can define multiple executables
2022-12-18 14:03:24 +0000 <geekosaur> albet70, that usually means you want two executable sections, each with its own main-is:
2022-12-18 14:04:08 +0000xacktm(~xacktm@user/xacktm) (Ping timeout: 255 seconds)
2022-12-18 14:05:23 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-12-18 14:05:48 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Ping timeout: 252 seconds)
2022-12-18 14:06:13 +0000 <albet70> hpc, geekosaur, but I run it with 'cabal v2-run my-project' which there is my-project/my-project.cabal, two sections in one cabal file, how I call it?
2022-12-18 14:07:27 +0000 <geekosaur> generally you just name the exe. if it's not enough, myproject:exe:sectionname
2022-12-18 14:09:53 +0000brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-12-18 14:10:25 +0000 <unit73e> cabal is often better understood by example imo
2022-12-18 14:10:44 +0000 <unit73e> I don't have a multi module multi exe lying around though
2022-12-18 14:12:41 +0000 <unit73e> wait, I actually do: https://gitlab.com/unit73e/sdl2-examples
2022-12-18 14:12:47 +0000 <unit73e> forgot I was working on this
2022-12-18 14:12:49 +0000 <unit73e> a long time ago
2022-12-18 14:13:09 +0000 <unit73e> albet70, in that example you would run 'cabal run <executable>'
2022-12-18 14:13:37 +0000 <albet70> unit73e , you're right, I just tested it
2022-12-18 14:14:44 +0000brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Client Quit)
2022-12-18 14:17:47 +0000brandonh(brandonh@gateway/vpn/protonvpn/brandonh)
2022-12-18 14:19:21 +0000brandonh(brandonh@gateway/vpn/protonvpn/brandonh) (Client Quit)
2022-12-18 14:22:51 +0000unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 260 seconds)
2022-12-18 14:27:45 +0000jinsun(~jinsun@user/jinsun) (Quit: No Ping reply in 180 seconds.)
2022-12-18 14:28:47 +0000freeside(~mengwong@213.86.11.74)
2022-12-18 14:29:42 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 14:33:21 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 14:33:29 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 14:34:02 +0000jinsun(~jinsun@user/jinsun)
2022-12-18 14:36:04 +0000 <Inst> nice
2022-12-18 14:36:05 +0000 <Inst> https://www.reddit.com/r/haskell/comments/znzat4/type_class_subsets/
2022-12-18 14:41:23 +0000pagnol(~user@213-205-209-87.ftth.glasoperator.nl)
2022-12-18 14:42:49 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 14:42:52 +0000burakcank(burakcank@has.arrived.and.is.ready-to.party) (Ping timeout: 256 seconds)
2022-12-18 14:47:08 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-12-18 14:57:14 +0000tok(~user@mobile-access-d98cd1-96.dhcp.inet.fi) (Ping timeout: 272 seconds)
2022-12-18 14:57:57 +0000tok(~user@mobile-access-d98cd1-96.dhcp.inet.fi)
2022-12-18 14:57:58 +0000acidjnk(~acidjnk@p200300d6e7137a39551177756a27c5e3.dip0.t-ipconnect.de)
2022-12-18 14:58:46 +0000 <pagnol> why do I get a syntax error if when I try to import Debug.Trace?
2022-12-18 14:59:43 +0000 <geekosaur[m]> Where did you put the import?
2022-12-18 15:01:29 +0000oopzzozzo(~Thunderbi@user/oopzzozzo) (Ping timeout: 260 seconds)
2022-12-18 15:02:04 +0000 <pagnol> among the other imports
2022-12-18 15:02:25 +0000 <pagnol> above the others and below the others with the same outcome
2022-12-18 15:02:50 +0000 <pagnol> weird, now it compiles
2022-12-18 15:04:13 +0000crazazy(~user@130.89.171.62) (Remote host closed the connection)
2022-12-18 15:04:26 +0000crazazy(~user@130.89.171.62)
2022-12-18 15:08:14 +0000__xor(~xor@74.215.182.83) (Read error: Connection reset by peer)
2022-12-18 15:09:02 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-12-18 15:09:32 +0000burakcank(burakcank@has.arrived.and.is.ready-to.party)
2022-12-18 15:17:00 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Ping timeout: 260 seconds)
2022-12-18 15:17:38 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 15:20:30 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-12-18 15:21:36 +0000jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-12-18 15:21:49 +0000xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-12-18 15:23:04 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2022-12-18 15:25:35 +0000Inst(~Inst@2601:6c4:4081:54f0:f11e:46df:c907:e40e) (Ping timeout: 255 seconds)
2022-12-18 15:25:53 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 15:31:22 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 15:35:16 +0000__xor(~xor@74.215.182.83)
2022-12-18 15:41:55 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 15:44:04 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 260 seconds)
2022-12-18 15:44:19 +0000Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 268 seconds)
2022-12-18 15:46:10 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 260 seconds)
2022-12-18 15:46:39 +0000malte(~malte@mal.tc) (Remote host closed the connection)
2022-12-18 15:47:41 +0000malte(~malte@mal.tc)
2022-12-18 15:57:19 +0000jinsun(~jinsun@user/jinsun) (Ping timeout: 252 seconds)
2022-12-18 15:57:36 +0000jinsun(~jinsun@user/jinsun)
2022-12-18 15:57:56 +0000Kaiepi(~Kaiepi@108.175.84.104)
2022-12-18 15:59:50 +0000Red_Swan(~jared@174-23-134-43.slkc.qwest.net) (Ping timeout: 252 seconds)
2022-12-18 16:00:55 +0000rnat(uid73555@id-73555.lymington.irccloud.com)
2022-12-18 16:01:36 +0000malte(~malte@mal.tc) (Remote host closed the connection)
2022-12-18 16:02:31 +0000troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-12-18 16:02:40 +0000malte(~malte@mal.tc)
2022-12-18 16:07:32 +0000waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
2022-12-18 16:07:35 +0000son0p(~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f)
2022-12-18 16:16:32 +0000sayola1(~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de)
2022-12-18 16:18:56 +0000sayola(~sayola@dslb-088-064-186-217.088.064.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2022-12-18 16:24:08 +0000ddellacosta(~ddellacos@143.244.47.88)
2022-12-18 16:27:49 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-18 16:27:49 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-18 16:27:49 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 16:28:38 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 16:34:16 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 16:37:05 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 16:37:16 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 16:42:56 +0000fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-12-18 16:45:22 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-12-18 16:45:40 +0000son0p(~ff@2604:3d08:5b7f:5540:98a9:2169:15a1:4c7f) (Ping timeout: 252 seconds)
2022-12-18 16:47:35 +0000acidjnk(~acidjnk@p200300d6e7137a39551177756a27c5e3.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-12-18 16:48:04 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 272 seconds)
2022-12-18 16:49:47 +0000aeroplane(~user@user/aeroplane)
2022-12-18 16:58:54 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-12-18 17:00:30 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2022-12-18 17:01:22 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
2022-12-18 17:02:20 +0000Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 255 seconds)
2022-12-18 17:03:13 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2022-12-18 17:05:52 +0000razetime(~quassel@49.207.230.181) (Remote host closed the connection)
2022-12-18 17:09:46 +0000jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-12-18 17:19:33 +0000wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-12-18 17:33:17 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 17:34:15 +0000nek0(~nek0@2a01:4f8:222:2b41::12)
2022-12-18 17:34:26 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection)
2022-12-18 17:36:40 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2022-12-18 17:37:27 +0000ddellacosta(~ddellacos@143.244.47.88) (Ping timeout: 260 seconds)
2022-12-18 17:37:47 +0000freeside(~mengwong@213.86.11.74) (Ping timeout: 256 seconds)
2022-12-18 17:40:45 +0000yuribarros(~yuribarro@2804:14c:65e4:865c::1000)
2022-12-18 17:45:43 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 256 seconds)
2022-12-18 17:47:20 +0000pie__(~pie_bnc@user/pie/x-2818909) ()
2022-12-18 17:47:47 +0000pie_(~pie_bnc@user/pie/x-2818909)
2022-12-18 17:48:34 +0000pie_(~pie_bnc@user/pie/x-2818909) (Client Quit)
2022-12-18 17:51:55 +0000econo(uid147250@user/econo)
2022-12-18 17:55:06 +0000pie_(~pie_bnc@user/pie/x-2818909)
2022-12-18 17:56:08 +0000Kaiepi(~Kaiepi@108.175.84.104)
2022-12-18 17:56:52 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 17:57:29 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 17:57:52 +0000ddellacosta(~ddellacos@86.106.143.155)
2022-12-18 18:01:08 +0000tok(~user@mobile-access-d98cd1-96.dhcp.inet.fi) (ERC 5.4 (IRC client for GNU Emacs 28.2))
2022-12-18 18:01:53 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 18:02:19 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-18 18:02:58 +0000Everything(~Everythin@37.115.210.35)
2022-12-18 18:13:58 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 18:15:02 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-12-18 18:15:41 +0000califax(~califax@user/califx) (Remote host closed the connection)
2022-12-18 18:16:47 +0000califax(~califax@user/califx)
2022-12-18 18:23:18 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-12-18 18:23:18 +0000xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-12-18 18:26:07 +0000dfip^(~dfip@76.145.185.103)
2022-12-18 18:32:07 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 18:34:57 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 18:37:42 +0000AkechiShiro(~licht@user/akechishiro) (Quit: WeeChat 3.7.1)
2022-12-18 18:39:34 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Ping timeout: 252 seconds)
2022-12-18 18:39:43 +0000harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2022-12-18 18:44:58 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2022-12-18 18:47:22 +0000phma(~phma@host-67-44-208-107.hnremote.net) (Read error: Connection reset by peer)
2022-12-18 18:48:17 +0000phma(phma@2001:5b0:212a:e338:ae0d:e356:1f10:5820)
2022-12-18 18:55:48 +0000son0p(~ff@2604:3d08:5b7f:5540::417e)
2022-12-18 18:58:00 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 19:03:23 +0000ddellacosta(~ddellacos@86.106.143.155) (Ping timeout: 255 seconds)
2022-12-18 19:05:12 +0000ddellacosta(~ddellacos@143.244.47.88)
2022-12-18 19:06:10 +0000crazazy`(~user@130.89.173.127)
2022-12-18 19:07:37 +0000Luj3(~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Ping timeout: 252 seconds)
2022-12-18 19:08:26 +0000crazazy(~user@130.89.171.62) (Ping timeout: 268 seconds)
2022-12-18 19:09:48 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 19:10:19 +0000son0p(~ff@2604:3d08:5b7f:5540::417e) (Ping timeout: 260 seconds)
2022-12-18 19:10:49 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-18 19:10:58 +0000werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-12-18 19:11:31 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 268 seconds)
2022-12-18 19:15:02 +0000jakalx(~jakalx@base.jakalx.net) ()
2022-12-18 19:16:54 +0000jakalx(~jakalx@base.jakalx.net)
2022-12-18 19:20:50 +0000crazazy``(~user@130.89.171.62)
2022-12-18 19:22:44 +0000crazazy`(~user@130.89.173.127) (Ping timeout: 255 seconds)
2022-12-18 19:25:19 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 19:29:28 +0000aeroplane(~user@user/aeroplane) (Ping timeout: 260 seconds)
2022-12-18 19:30:06 +0000iqubic(~avi@2601:601:1100:edd0:23b0:d602:1b3e:8cff) (Remote host closed the connection)
2022-12-18 19:32:02 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 19:32:29 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-12-18 19:39:36 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 19:40:32 +0000Me-me(~Me-me@146.102.215.218.dyn.iprimus.net.au)
2022-12-18 19:48:12 +0000Sgeo(~Sgeo@user/sgeo)
2022-12-18 19:49:45 +0000pagnol(~user@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2022-12-18 19:55:29 +0000buzzzzie(~buzzzzie@ip-217-103-153-253.ip.prioritytelecom.net)
2022-12-18 19:58:21 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 20:00:34 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 20:01:47 +0000wroathe(~wroathe@50.205.197.50)
2022-12-18 20:01:47 +0000wroathe(~wroathe@50.205.197.50) (Changing host)
2022-12-18 20:01:47 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 20:04:18 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection)
2022-12-18 20:04:33 +0000buzzzzie(~buzzzzie@ip-217-103-153-253.ip.prioritytelecom.net) (Quit: Client closed)
2022-12-18 20:07:42 +0000fizbin(~fizbin@user/fizbin) (Ping timeout: 252 seconds)
2022-12-18 20:10:56 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 20:16:08 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 20:16:25 +0000beefbambi(~beefbambi@183.82.30.144)
2022-12-18 20:19:29 +0000rnat(uid73555@id-73555.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-12-18 20:22:15 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 20:24:16 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-18 20:26:33 +0000 <sayola1> what type do you guys use for a Writer monad, typically?
2022-12-18 20:28:33 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 20:32:20 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 20:33:48 +0000 <EvanR> other than Writer?
2022-12-18 20:35:32 +0000 <monochrom> Perhaps you mean in "Writer Foo" what we use for Foo.
2022-12-18 20:35:54 +0000 <sayola1> yep. i mean what type that is a monoid for w in WriterT w m a
2022-12-18 20:36:03 +0000 <monochrom> When I'm lazy and it's unimportant I use a list. When it gets more serious I use Endo.
2022-12-18 20:36:35 +0000 <monochrom> Or any data type that has efficient append-one-element.
2022-12-18 20:37:17 +0000 <monochrom> Data.Sequence may be OK.
2022-12-18 20:37:22 +0000 <sayola1> yeah was wondering what would fit and is simple.
2022-12-18 20:37:28 +0000 <EvanR> it depends what you're trying to do, monochrom is answering what to use for logging it sounds like
2022-12-18 20:37:37 +0000 <EvanR> which Writer sucks at
2022-12-18 20:37:46 +0000 <sayola1> it sucks?
2022-12-18 20:37:51 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 20:38:05 +0000 <c_wraith> sort of, yeah. a good logger gets things onto disk as fast as possible
2022-12-18 20:38:26 +0000 <c_wraith> Writer accumulates things and completes (or fails) the whole computation before logging anything
2022-12-18 20:38:27 +0000 <sayola1> i just thought about using RWST for a thing and thought i should probably log anything too, without knowing yet whether and how much i need to
2022-12-18 20:38:42 +0000 <EvanR> I discovered the XY problem! xD
2022-12-18 20:38:48 +0000 <int-e> Endo [a] is convenient enough for me. (You can use dlist if you don't like the `tell (Endo (x:))` syntax.)
2022-12-18 20:39:04 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 20:39:16 +0000 <c_wraith> RST would be a lot more useful than RWST is
2022-12-18 20:39:36 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 20:39:59 +0000 <int-e> Ah. Picking between Writer / RWST... well, it depends on whether I think I'll need the reader or state components.
2022-12-18 20:40:32 +0000 <int-e> I do prefer RWST over stacking more than one of Reader, Writer, or State.
2022-12-18 20:41:00 +0000 <int-e> (err, ReaderT, WriterT, or StateT)
2022-12-18 20:42:24 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2022-12-18 20:42:28 +0000 <sayola1> i only learned yesterday about Endo as a type, ironically.
2022-12-18 20:43:52 +0000trev(~trev@user/trev) (Remote host closed the connection)
2022-12-18 20:43:54 +0000gabiruh_gabiruh
2022-12-18 20:45:18 +0000wroathe(~wroathe@50.205.197.50)
2022-12-18 20:45:18 +0000wroathe(~wroathe@50.205.197.50) (Changing host)
2022-12-18 20:45:18 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 20:47:24 +0000 <int-e> c_wraith: FWIW, I've used the W component quite a bit in a couple of assembly-like DSLs; in that design, the reader is usually unused, the state tracks labels, and the writer collects generated code. And there's an mfix somewhere to tie the labels into a know so that they can be used before the label's declaration.
2022-12-18 20:47:45 +0000 <int-e> know -> knot
2022-12-18 20:49:02 +0000 <int-e> and EDSL, more specifically
2022-12-18 20:50:48 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-12-18 20:52:20 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 20:52:59 +0000coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-12-18 20:53:42 +0000 <EvanR> yeah [(Int,String)] merging monoid
2022-12-18 20:54:47 +0000acarrico(~acarrico@dhcp-68-142-49-34.greenmountainaccess.net)
2022-12-18 20:54:50 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-18 20:55:19 +0000dfip^(~dfip@76.145.185.103) (Remote host closed the connection)
2022-12-18 20:55:35 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-12-18 20:56:17 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 20:57:38 +0000beefbambi(~beefbambi@183.82.30.144) (Read error: Connection reset by peer)
2022-12-18 20:58:12 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 21:00:09 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 21:00:26 +0000beefbambi(~beefbambi@183.82.30.144)
2022-12-18 21:01:59 +0000lottaquestions(~nick@2607:fa49:503e:7100:83b1:b98a:c83f:3b94) (Remote host closed the connection)
2022-12-18 21:02:26 +0000lottaquestions(~nick@2607:fa49:503e:7100:3634:992e:e32f:8e6c)
2022-12-18 21:03:09 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-18 21:03:26 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-18 21:03:53 +0000beefbambi(~beefbambi@183.82.30.144) (Read error: Connection reset by peer)
2022-12-18 21:04:37 +0000beefbambi(~beefbambi@183.82.30.144)
2022-12-18 21:06:32 +0000dsrt^(~dsrt@76.145.185.103)
2022-12-18 21:06:33 +0000beefbambi(~beefbambi@183.82.30.144) (Read error: Connection reset by peer)
2022-12-18 21:06:53 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
2022-12-18 21:09:41 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 21:11:31 +0000Inst(~Inst@2601:6c4:4081:54f0:38bc:71f6:776d:9675)
2022-12-18 21:16:49 +0000beefbambi(~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
2022-12-18 21:17:13 +0000beefbambi(~beefbambi@183.82.30.144)
2022-12-18 21:18:03 +0000acidjnk(~acidjnk@p200300d6e7137a394052686d931fefc2.dip0.t-ipconnect.de)
2022-12-18 21:18:50 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 21:19:58 +0000son0p(~ff@2604:3d08:5b7f:5540::417e)
2022-12-18 21:23:14 +0000Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-12-18 21:23:22 +0000 <sayola1> hmh i compared list vs endo in a simple test in performance and endo was not faster.
2022-12-18 21:26:08 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2022-12-18 21:26:12 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 21:30:13 +0000Luj3(~Luj@2a01:e0a:5f9:9681:3ebd:6349:a3e:563d)
2022-12-18 21:31:50 +0000ardell(~ardell@user/ardell)
2022-12-18 21:32:09 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 21:38:26 +0000ardell(~ardell@user/ardell) (Quit: Konversation terminated!)
2022-12-18 21:39:46 +0000 <EvanR> for repeatedly appending to the end of a list and finally processing from the beginning, I haven't been able to get an argument for why Endo (or diff list) would be much better (at all better?)
2022-12-18 21:40:19 +0000 <EvanR> diff list seems to win if you are combining strings in random ways like document formatting
2022-12-18 21:41:25 +0000Patternmaster(~georg@user/Patternmaster) (Ping timeout: 260 seconds)
2022-12-18 21:43:52 +0000bjobjo(~bjobjo@user/bjobjo) (Quit: leaving)
2022-12-18 21:43:53 +0000 <EvanR> cons cons cons finally reverse, vs ([x] ++) . ([x] ++) . ([x] ++) and finally apply []. Both build up N somethings until you're ready to consume the stream
2022-12-18 21:44:23 +0000 <sayola1> i fail to reason how ghc optimizes things. imo Endo would be faster, but ghc does things and then a list is just good enough.
2022-12-18 21:44:40 +0000 <EvanR> why would Endo be faster?
2022-12-18 21:46:09 +0000 <sayola1> endo isnt appending like ++ to an end, but maintains an incomplete list ending to which to append in O(1) afaik.
2022-12-18 21:46:19 +0000 <EvanR> oh definitely don't do xs ++ [x]
2022-12-18 21:46:53 +0000fizbin(~fizbin@user/fizbin)
2022-12-18 21:47:21 +0000 <EvanR> yeah f . ([x] ++) is O(1). But converting the chain of . into a normal list is not
2022-12-18 21:49:32 +0000 <geekosaur> but if it can avoid repeatedly re-traversing then it's O(n) instead of O(n*m) where m is the number of segments
2022-12-18 21:49:47 +0000 <geekosaur> sadly I'n to tired to figure if it actually does that
2022-12-18 21:49:53 +0000 <geekosaur> *I'm
2022-12-18 21:49:55 +0000 <EvanR> yes xs ++ [x] is extra bad
2022-12-18 21:50:08 +0000johnw(~johnw@2600:1700:cf00:db0:6524:1c2a:8eda:bee4) (Quit: ZNC - http://znc.in)
2022-12-18 21:50:12 +0000 <EvanR> but O(n) results in a tie with "just reverse a backward list in the end"
2022-12-18 21:50:28 +0000 <sayola1> solving the chain is optimized by ghc it seems
2022-12-18 21:51:16 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-12-18 21:51:16 +0000 <EvanR> stories we tell ourselves xD
2022-12-18 21:53:19 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-18 21:54:13 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-12-18 21:54:26 +0000 <sayola1> i suck at testing, but thats what worked for me yesterday. i compared `f . (x:)` append vs front add and reverse.
2022-12-18 21:55:21 +0000 <EvanR> sayola1, I support your first observation. I've compared just cons to a backward list and reverse at the end, vs endo list builder (for this specific purpose only, not stuff like blaze), and the dumb backward list was faster
2022-12-18 21:57:06 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2022-12-18 21:57:40 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Quit: Lost terminal)
2022-12-18 21:57:53 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 21:59:03 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 22:00:40 +0000 <sayola1> welp
2022-12-18 22:01:59 +0000j4cc3b(~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net)
2022-12-18 22:03:15 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-18 22:06:15 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 22:06:43 +0000 <j4cc3b> I have been using advent of code to learn haskell. I am hard stuck on Day 7. I have parsed the input into a list of different options, but do not know of a haskell way to proceed.
2022-12-18 22:07:17 +0000 <j4cc3b> In another language, i would make a loop and keep the complete path string in a local variable to the loop that i could adjust when the dir is changed, or files are listed
2022-12-18 22:07:42 +0000 <j4cc3b> any pointers or concepts I should look into?
2022-12-18 22:08:07 +0000 <j4cc3b> my (limited) intuition tells me I should make some sort of function that I can fold over my list of parsed inputs
2022-12-18 22:08:33 +0000 <j4cc3b> but i dont know how to do that with stateful things, like the current path name and size of the directories
2022-12-18 22:09:11 +0000 <EvanR> I just made a Map of path to contents
2022-12-18 22:09:25 +0000goober(~goober@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2022-12-18 22:09:48 +0000 <EvanR> you could also iteratively build a filesystem tree procedurally using a zipper, if you wanna get fancy
2022-12-18 22:09:52 +0000 <j4cc3b> I haven't used map yet in haskell. How did you build a map out of the parsed inputs? just a self made recursive function?
2022-12-18 22:10:08 +0000 <sayola1> i used a recursive function with the current path state as a function argument
2022-12-18 22:10:25 +0000 <j4cc3b> i should be clearer. I haven't used Data.Map yet, not to be confused with regular map
2022-12-18 22:10:45 +0000 <j4cc3b> okay. I'll try reading into Data.Map more. Thanks!
2022-12-18 22:10:54 +0000 <dsal> I made a foldable structure `data Tree a = Tree { files :: a, subs :: Map String (Tree a) }` and then parsed it into a `Tree (Sum Int)`
2022-12-18 22:10:57 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-18 22:11:05 +0000 <EvanR> I foldl' over the commands
2022-12-18 22:11:24 +0000 <EvanR> the path base and the Map are in the accumulator
2022-12-18 22:12:42 +0000 <j4cc3b> wait, how did you place both the path and the whole Map into the accumulator?
2022-12-18 22:12:54 +0000 <sayola1> two accumulators
2022-12-18 22:12:57 +0000 <EvanR> a tuple with 2 components
2022-12-18 22:13:02 +0000 <j4cc3b> OH SHIT
2022-12-18 22:13:18 +0000 <j4cc3b> I never considered tuples as an accumulator
2022-12-18 22:13:21 +0000 <j4cc3b> this is life changing
2022-12-18 22:13:24 +0000 <EvanR> ikr
2022-12-18 22:14:02 +0000blades(~blades@204.48.29.163) (Quit: bye)
2022-12-18 22:14:08 +0000 <j4cc3b> similar thinking: I can use a tuple anywhere a type signature has a generic like `a` or `b`?
2022-12-18 22:14:35 +0000 <EvanR> implicitly, a or b is "any type"
2022-12-18 22:14:42 +0000 <EvanR> and if c, d are types, (c,d) is a type
2022-12-18 22:14:56 +0000 <j4cc3b> but a could be (c,d), right?
2022-12-18 22:14:59 +0000 <dsal> :t id
2022-12-18 22:15:00 +0000 <lambdabot> a -> a
2022-12-18 22:15:01 +0000 <EvanR> yeah
2022-12-18 22:15:04 +0000 <dsal> > id (1,2)
2022-12-18 22:15:06 +0000 <lambdabot> (1,2)
2022-12-18 22:15:08 +0000 <j4cc3b> i've never made this connection before. Wow, thanks a lot
2022-12-18 22:18:59 +0000dixie(~dixie@real.wilbury.sk) (Ping timeout: 260 seconds)
2022-12-18 22:19:34 +0000TonyStone(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Ping timeout: 252 seconds)
2022-12-18 22:22:19 +0000TonyStone(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com)
2022-12-18 22:22:32 +0000 <dsal> j4cc3b: in the example above, `a -> a` means there's no type the function can refuse. But also, there's not much it can do.
2022-12-18 22:22:42 +0000bjobjo(~bjobjo@user/bjobjo)
2022-12-18 22:23:18 +0000j4cc3b(~j4cc3b@pool-74-105-2-138.nwrknj.fios.verizon.net) (Ping timeout: 260 seconds)
2022-12-18 22:32:13 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-18 22:33:19 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-12-18 22:34:50 +0000yuribarros(~yuribarro@2804:14c:65e4:865c::1000) (Ping timeout: 265 seconds)
2022-12-18 22:35:16 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-18 22:36:24 +0000bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-12-18 22:38:06 +0000paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-12-18 22:38:56 +0000yuribarros(~yuribarro@2804:14c:65e4:865c::1000)
2022-12-18 22:39:17 +0000 <EvanR> I'm here to make you a type that you can't refuse
2022-12-18 22:39:27 +0000TonyStone(~TonyStone@cpe-74-76-57-186.nycap.res.rr.com) (Quit: Leaving)
2022-12-18 22:39:51 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 22:40:04 +0000paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru)
2022-12-18 22:42:18 +0000 <geekosaur> isn't that more like `undefined :: a`?
2022-12-18 22:42:19 +0000fizbin(~fizbin@user/fizbin) (Ping timeout: 260 seconds)
2022-12-18 22:42:44 +0000adium(adium@user/adium) (Ping timeout: 272 seconds)
2022-12-18 22:44:38 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Ping timeout: 272 seconds)
2022-12-18 22:44:55 +0000paulpaul1076(~textual@95-29-5-111.broadband.corbina.ru) (Ping timeout: 256 seconds)
2022-12-18 22:46:05 +0000adium(adium@user/adium)
2022-12-18 22:46:16 +0000gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
2022-12-18 22:47:02 +0000Patternmaster(~georg@user/Patternmaster)
2022-12-18 22:47:16 +0000 <Inst> can someone explain endofunctors to me in the legendary / infamous "Monads are just a monoid in the category of monads?"
2022-12-18 22:47:39 +0000 <Inst> erm, category of endofunctors, not category of monads
2022-12-18 22:47:45 +0000 <EvanR> do you know what a regular functor is, between two categories C -> D
2022-12-18 22:47:55 +0000 <Inst> what is the category being discussed?
2022-12-18 22:48:04 +0000 <EvanR> C and D are any two categories
2022-12-18 22:48:05 +0000 <Inst> I have a working understanding of monads, i.e, they're eta and mu
2022-12-18 22:48:12 +0000 <Inst> endofunctor is C -> C
2022-12-18 22:48:17 +0000 <EvanR> there you go
2022-12-18 22:48:26 +0000 <Inst> but what's C?
2022-12-18 22:48:50 +0000 <Inst> it's considered a monoid because eta / mu, or join / pure form a monad by cancelling each other out to form an identity element
2022-12-18 22:48:56 +0000 <Inst> and join is associative
2022-12-18 22:49:03 +0000 <EvanR> it could be anything, e.g. Hask
2022-12-18 22:49:13 +0000 <Inst> in a Haskell context, it's hask
2022-12-18 22:49:24 +0000 <Inst> I've had people tell me Hask is not a category due to the presence of undefined / bottom
2022-12-18 22:49:31 +0000 <EvanR> it's fine
2022-12-18 22:49:44 +0000 <Inst> and other people tell me that the Hask is not a category folks are wrong
2022-12-18 22:50:14 +0000 <EvanR> the quote you gave doesn't have much to do with haskell
2022-12-18 22:50:26 +0000 <EvanR> so you don't even have to figure that part out xD
2022-12-18 22:50:32 +0000 <Inst> also, the problem with monads is that we are unclear as to what we're referring to when we say monads, i.e, monadic patterned programming, monadic types, monad typeclass, cat theory monads
2022-12-18 22:50:39 +0000 <Inst> also leibniz and greeks
2022-12-18 22:51:05 +0000 <EvanR> also there's a cosmic entity in D&D called the monad or something
2022-12-18 22:51:31 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7.1)
2022-12-18 22:51:32 +0000 <Inst> for instance, if we say, promises are a monad (iirc, do they fail left identity or right identity), we seem to be discussing monadic patterened programming, but not a monadic type
2022-12-18 22:51:33 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-12-18 22:51:44 +0000 <Inst> as well as cat theory monads, afaik
2022-12-18 22:51:49 +0000 <EvanR> "whatever is a monad" in haskell means it satisfies the Monad class and the laws
2022-12-18 22:52:04 +0000 <Inst> yeah, the most common reference is "monadic datatype"
2022-12-18 22:52:22 +0000 <EvanR> capital M Monad class helps avoid confusion
2022-12-18 22:52:59 +0000 <Inst> https://hasura.io/blog/parser-combinators-walkthrough/#fn1
2022-12-18 22:53:14 +0000 <Inst> i'm oriented toward this guy's hill
2022-12-18 22:54:27 +0000 <EvanR> sounds like you're well equipped to spot and autocorrect any lousy usage of monadic jargon
2022-12-18 22:55:22 +0000 <Inst> functor / covariant functors seems confusing, though, as in
2022-12-18 22:55:35 +0000 <Inst> a functor is supposed to lift a category in such a way that it's structure-preserving
2022-12-18 22:55:47 +0000 <Inst> but obv, Proxy is a functor, but it seems to destroy structure
2022-12-18 22:55:48 +0000 <EvanR> a functor lifts morphisms
2022-12-18 22:55:48 +0000 <geekosaur> "endo" means within. so an endofunctor is a functor within a category
2022-12-18 22:55:53 +0000 <Inst> ah
2022-12-18 22:56:12 +0000 <geekosaur> C -> C as opposed to C -> D or C -> Foo or whatever
2022-12-18 22:57:01 +0000 <EvanR> functors can e.g. map all objects to 1 thing and all morphisms to id : that -> that, not a problem
2022-12-18 22:57:09 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex)
2022-12-18 22:57:15 +0000 <EvanR> category theory people love that kind of thing
2022-12-18 22:58:15 +0000 <Inst> TBH, I had an interesting talk with a Lisper
2022-12-18 22:58:40 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-12-18 22:58:41 +0000 <Inst> Haskell is interesting and distinct from, say, Lisp, because it really privileges composition as a mode of programming
2022-12-18 22:58:45 +0000 <Inst> true / false?
2022-12-18 22:59:52 +0000 <Inst> probably false, since both Haskell and Lisp are based on lambda calculus, which is highly compositional
2022-12-18 22:59:53 +0000 <EvanR> it privileges coding without 10,000 parentheses per page
2022-12-18 23:00:04 +0000 <geekosaur> I'd say true because that even permeates the compiler, which tries to rewrite things into compositions and then rearranges those
2022-12-18 23:00:18 +0000 <geekosaur> Lisp is also based on lambda callculus, but privileges a different aspect of it
2022-12-18 23:00:24 +0000 <Inst> but haskell at least has ridiculous favoritism to composition as a mode of thinking etc within the compiler
2022-12-18 23:00:38 +0000xacktm(~xacktm@user/xacktm) (Quit: fBNC - https://bnc4free.com)
2022-12-18 23:00:45 +0000andreas303(andreas303@ip227.orange.bnc4free.com) (Quit: fBNC - https://bnc4free.com)
2022-12-18 23:01:18 +0000 <Inst> I'm only trivially familiar with Lisp, I'm thinking about picking up Racket just to get a hold of meta-programming, and because Haskell is hard when you want to do IO, to make productive, non-trivial programs
2022-12-18 23:01:26 +0000 <EvanR> fusion basically requires thinking of stuff as compositions
2022-12-18 23:01:59 +0000 <EvanR> the IO type is great
2022-12-18 23:02:17 +0000 <EvanR> stash it in a data structure, send one through a channel, lol
2022-12-18 23:02:23 +0000 <Inst> it's not, one, IO is not trivially decomposable, no?
2022-12-18 23:02:24 +0000 <geekosaur> I don't find Haskell that hard. phrasing something well for the Haskell view of IO is hard, but usually worth it because it helps you separate concerns
2022-12-18 23:02:38 +0000 <Inst> More specifically, I'm comfortable with readFile / writeFile
2022-12-18 23:02:38 +0000 <geekosaur> you could sort of think of it as MVC taken to its limit
2022-12-18 23:02:47 +0000 <Inst> but you need to understand IO libs
2022-12-18 23:02:57 +0000 <Inst> then there's a preference for streaming IO over lazy IO / strict IO
2022-12-18 23:03:19 +0000 <EvanR> isn't there a preference of streaming everywhere?
2022-12-18 23:03:34 +0000 <geekosaur> and even more than composition, Haskell privileges continuations
2022-12-18 23:03:44 +0000 <Inst> continuations I don't get, unfortunately
2022-12-18 23:04:05 +0000 <Inst> Cont monad, I'm aware of, but don't really understand, nor do I understand how to program in CPS style
2022-12-18 23:04:25 +0000 <Inst> especially since, afaik, CPS doesn't present substantial performance benefits in Haskell
2022-12-18 23:04:34 +0000 <geekosaur> don't worry, almost nobody understands Cont 🙂
2022-12-18 23:04:40 +0000 <Inst> "mother of all monads"
2022-12-18 23:04:45 +0000 <Inst> i.e, all monads can be generated from Contd
2022-12-18 23:04:52 +0000 <Inst> ContT
2022-12-18 23:04:52 +0000 <EvanR> CPS versions of many libs exist for performance basically
2022-12-18 23:05:20 +0000 <EvanR> there's a CPS Writer monad
2022-12-18 23:05:22 +0000 <geekosaur> and the compiler rewrites everything it can to CPS
2022-12-18 23:05:33 +0000 <Inst> but the IO complaint basically comes down to, beyond IO readFile / writeFile, most IO is unergonomic / requires libraries to be ergonomic
2022-12-18 23:05:43 +0000 <Inst> is CPS writer monad cancer?
2022-12-18 23:05:46 +0000 <Inst> I'm told WriterT is cancer
2022-12-18 23:06:02 +0000 <Inst> as of 2020, still space-leaking like a universe
2022-12-18 23:06:12 +0000 <geekosaur> that's because of the limitations of WriterT
2022-12-18 23:06:12 +0000 <EvanR> I/O is unergonomic, that's not haskell's fault xD
2022-12-18 23:06:43 +0000 <EvanR> Writer is fine, but maybe the naming is to evocative
2022-12-18 23:06:46 +0000 <Inst> but the reason I'm headed to Racket next is because most IO things you want to do are handled by IO libs
2022-12-18 23:07:07 +0000 <Inst> and I find it very hard to "get" or master IO libs, in part because IO layer seems substantially harder to train / practice than pure layer
2022-12-18 23:07:14 +0000 <geekosaur> and there's not a lot of pressure to fix it because nobody to speak of uses it, because of its limitations (which have less to do with space leaks than with an earlier discussion you missed)
2022-12-18 23:07:33 +0000 <geekosaur> [18 20:38:05] <c_wraith> sort of, yeah. a good logger gets things onto disk as fast as possible
2022-12-18 23:07:33 +0000 <geekosaur> [18 20:38:26] <c_wraith> Writer accumulates things and completes (or fails) the whole computation before logging anything
2022-12-18 23:07:37 +0000 <Inst> I'm on Windows, and IIRc Hecate's working on GUI lib
2022-12-18 23:07:54 +0000 <Inst> I honestly dislike Monads and would prefer a different effect system if possible, tbh
2022-12-18 23:08:02 +0000 <geekosaur> but Writer looks like something for logging
2022-12-18 23:08:13 +0000shailangsa(~shailangs@host217-39-45-196.range217-39.btcentralplus.com) ()
2022-12-18 23:08:21 +0000 <Inst> whereas Writer keeps a log within pure code
2022-12-18 23:08:32 +0000 <EvanR> no, it's not good for logging period
2022-12-18 23:08:42 +0000 <Inst> then provides a dump of it on request
2022-12-18 23:08:55 +0000 <geekosaur> you've come to an odd place if you dislike monads
2022-12-18 23:08:57 +0000 <EvanR> you can't even do that with Writer xD
2022-12-18 23:09:09 +0000 <Hecate> I am nowhere near completion wrt to ghcup's GTK interface
2022-12-18 23:09:15 +0000 <Hecate> (help very much welcome btw)
2022-12-18 23:09:21 +0000 <Hecate> (GTK is kicking my ass)
2022-12-18 23:09:23 +0000 <geekosaur> and may be in trouble as the concept, if not the implementation, is making inroads in a number of languages
2022-12-18 23:09:24 +0000 <Inst> wish I could help you
2022-12-18 23:09:32 +0000 <monochrom> At this point I'm convinced that everyone disagree on what "logging" means.
2022-12-18 23:09:32 +0000 <dibblego> I don't even know what it means to dislike monads
2022-12-18 23:09:53 +0000 <Inst> dibblego: understanding / misunderstanding papers talking about limitations of monads
2022-12-18 23:10:06 +0000 <Hecate> The Applicative zealots are back at it again
2022-12-18 23:10:21 +0000 <Inst> the anti-monad argument comes as "monads are a transitional form of effect systems and there has to be a better way to do algebraic effects than with monads"
2022-12-18 23:10:48 +0000 <geekosaur> sadly, nobody's actually found one yet
2022-12-18 23:10:49 +0000 <dibblego> that argument is more to do with "effects" than monads
2022-12-18 23:10:52 +0000 <Inst> I'd think it's just rare to hate monads for other reasons than "monads are hard"
2022-12-18 23:10:59 +0000 <Inst> also, pure code isn't really pure ;)
2022-12-18 23:11:03 +0000 <Inst> because they side effect space and time
2022-12-18 23:11:10 +0000 <EvanR> monads aren't effect systems so that's an issue right there
2022-12-18 23:11:15 +0000 <Inst> which is where mtl etc, barris alexis king's efforts, suck
2022-12-18 23:11:18 +0000 <dibblego> "hate monads" invokes the same feeling as "hating the number 3"
2022-12-18 23:11:25 +0000 <Inst> I love the number 9
2022-12-18 23:11:32 +0000 <dibblego> I don't, because it's not 8
2022-12-18 23:11:32 +0000 <Inst> because it's the first number in the multiplication table my mother taught me
2022-12-18 23:11:57 +0000 <monochrom> 6 is very afraid.
2022-12-18 23:12:16 +0000 <EvanR> (:[]) 6
2022-12-18 23:12:17 +0000Lycurgus(~juan@user/Lycurgus)
2022-12-18 23:12:19 +0000 <Inst> i wonder if people are, erm, what's the term?
2022-12-18 23:12:26 +0000 <dibblego> one of the biggest limitations of 6 is that you cannot use it as an odd number
2022-12-18 23:12:34 +0000 <Inst> synaesthetic with numbers
2022-12-18 23:12:35 +0000 <Lycurgus> all good things are 3, monads, meh
2022-12-18 23:12:37 +0000 <dibblego> gotta be a better way
2022-12-18 23:13:04 +0000 <Inst> well, you can, by stapling it into a multiplication with an odd number, no?
2022-12-18 23:13:27 +0000 <dibblego> yeah that's the 6 hack
2022-12-18 23:14:04 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d) (Remote host closed the connection)
2022-12-18 23:14:56 +0000 <geekosaur> are we recapitulating that argument the other day which ended with "all primes are odd except 2, which makes it the oddest prime"?
2022-12-18 23:15:10 +0000 <dibblego> haha I missed that
2022-12-18 23:16:01 +0000 <Inst> the sad thing is, the many of the useful properties associated with the number 9 revolve around it being the largest single-digit number in base 10
2022-12-18 23:16:16 +0000LemanR(~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9)
2022-12-18 23:16:27 +0000perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-12-18 23:17:32 +0000 <Inst> btw, since people seem to be active
2022-12-18 23:17:38 +0000 <Inst> if i have code embedded into a closure
2022-12-18 23:17:51 +0000 <Inst> or rather, a definition within a definition as with where or let
2022-12-18 23:17:58 +0000 <Inst> there is no way to access the code, right?
2022-12-18 23:18:11 +0000 <Inst> since I tend to stuff crap into nested definitions these days
2022-12-18 23:20:46 +0000xacktm(~xacktm@user/xacktm)
2022-12-18 23:20:48 +0000 <dsal> You're being a bit loose with terminology. What do you mean "to access the code" ?
2022-12-18 23:21:46 +0000 <Inst> say, I have code nested within code to indicated organization
2022-12-18 23:21:50 +0000Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2022-12-18 23:22:01 +0000 <Inst> or to present an abstract interface denying access to the internals
2022-12-18 23:22:13 +0000 <Inst> how do I access the internals, then, for testing purposes?
2022-12-18 23:22:27 +0000 <glguy> You don't
2022-12-18 23:22:33 +0000 <Inst> a particularly egregious example would be the time I built a closure to prevent passing around a 33 mb Map around
2022-12-18 23:22:45 +0000 <Inst> can't you do something with template Haskell to take it out?
2022-12-18 23:22:49 +0000 <glguy> nope
2022-12-18 23:23:46 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net)
2022-12-18 23:24:05 +0000 <EvanR> you can nest functions in a where clause that are then packed into a record that gets returned for poor man's OOP
2022-12-18 23:24:48 +0000 <EvanR> if you don't actually want that but still want organization use modules
2022-12-18 23:25:45 +0000oopzzozzo(~Thunderbi@user/oopzzozzo)
2022-12-18 23:27:02 +0000fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 246 seconds)
2022-12-18 23:28:24 +0000Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Ping timeout: 260 seconds)
2022-12-18 23:28:46 +0000 <Inst> yeah but closures, i.e, being able to refer to parameters given on higher level
2022-12-18 23:29:05 +0000 <dsal> They can reach up, but you can't reach down.
2022-12-18 23:29:18 +0000 <Inst> i was just wondering why no one has considered that because nesting etc, or at least sub-modules, enhances code organization and also hides APIs
2022-12-18 23:29:36 +0000merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-12-18 23:29:59 +0000 <Inst> since it is a complaint with FP that there are too many functions, some of them are useful in a modularized state
2022-12-18 23:30:08 +0000 <Inst> some of them are merely convenience to enhance readability
2022-12-18 23:30:14 +0000 <dsal> Who's complained that there are too many functions?
2022-12-18 23:30:28 +0000 <Inst> people coming into FP from IP / mainstream programming
2022-12-18 23:31:18 +0000oopzzozzo(~Thunderbi@user/oopzzozzo) (Quit: oopzzozzo)
2022-12-18 23:31:23 +0000andreas303(andreas303@ip227.orange.bnc4free.com)
2022-12-18 23:31:31 +0000oopzzozzo(~Thunderbi@user/oopzzozzo)
2022-12-18 23:31:39 +0000 <dsal> I guess I've not seen that one. Mostly in other languages I see too many things that could be functions, but aren't so you have to learn some different behavior.
2022-12-18 23:32:25 +0000 <Inst> https://chrisdone.com/posts/haskell-lisp-philosophy-difference/
2022-12-18 23:32:28 +0000 <Inst> which he's retracted
2022-12-18 23:34:12 +0000LemanR(~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9) (Quit: Client closed)
2022-12-18 23:35:10 +0000 <EvanR> I think mainstream programming doesn't have enough functions
2022-12-18 23:35:14 +0000 <Inst> w/e, i'll get off venting about Haskell for a day
2022-12-18 23:35:25 +0000 <Inst> okay, maybe not
2022-12-18 23:35:27 +0000slack1256(~slack1256@186.11.29.60)
2022-12-18 23:36:15 +0000 <Inst> there are two cons of a FP approach (or, for that matter, a Lisp-like minimum syntax)
2022-12-18 23:36:22 +0000 <Inst> first, too many functions lying around that you have to learn and memorize
2022-12-18 23:36:25 +0000 <EvanR> for example, elixir has a function that maps a Map but only bringing the key along. Nothing built in to like fmap
2022-12-18 23:36:44 +0000LemanR(~LemanR@2607:fb90:54b0:6e01:9403:ba62:4ea3:9eb9)
2022-12-18 23:36:51 +0000 <Inst> no typeclasses in Elixir, right?
2022-12-18 23:37:06 +0000 <EvanR> you don't have to learn any functions, you can paste the code from those functions everywhere they would be used
2022-12-18 23:37:38 +0000 <EvanR> that that just works is another benefit of functional programming
2022-12-18 23:37:38 +0000 <Inst> which is less convenient than reading stuff, and arguably makes for less readable code
2022-12-18 23:37:41 +0000 <Inst> it creates a scalability issue
2022-12-18 23:38:15 +0000 <Inst> you can implement a MSP / IP-type minimum API with definition nesting, or for that matter, modules, but my experiment with modular layout was that there were too many modules
2022-12-18 23:38:38 +0000 <Inst> definition nesting creates the issue that subfunctions are hard to test
2022-12-18 23:38:54 +0000 <EvanR> yeah so why would you do it
2022-12-18 23:39:06 +0000kenaryn(~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
2022-12-18 23:39:07 +0000 <EvanR> that's a problem in every language that has inner functions
2022-12-18 23:39:41 +0000 <Inst> organization, i.e, i don't want a given function to be exposed to the public namespace
2022-12-18 23:39:51 +0000 <Inst> but the problem with not being exposed to the public namespace is, well, can't test
2022-12-18 23:40:12 +0000 <EvanR> namespace management is something you do at the module level
2022-12-18 23:40:20 +0000 <EvanR> not inside a function
2022-12-18 23:40:42 +0000 <EvanR> export or not what you want exported, or not
2022-12-18 23:41:12 +0000 <Inst> but with single-file modules, you end up with problems
2022-12-18 23:41:18 +0000 <Inst> from a UI perspective
2022-12-18 23:41:24 +0000 <Inst> having to switch screens, create more tabs, so on so forth
2022-12-18 23:41:53 +0000 <EvanR> I use bookmarks to go between parts of the same file or different files, seems the same
2022-12-18 23:42:01 +0000 <Inst> i guess for *nixers, you have grep, so not being able to ctrl f isn't that much of a deal
2022-12-18 23:42:26 +0000 <Inst> also, afaik, multi-modules, while supported in OCaml, aren't much used there
2022-12-18 23:42:56 +0000 <Inst> easiest way, tbh, might be to have a different export syntax
2022-12-18 23:43:02 +0000 <EvanR> probably because they actually want to be organized xD
2022-12-18 23:43:49 +0000 <Inst> to access let expressions and where clauses
2022-12-18 23:44:13 +0000 <dsal> I don't think I understand the problem. I use Haskell mostly because I find it easier to understand and refactor code vs. other stuff I've used.
2022-12-18 23:44:24 +0000 <EvanR> 100%
2022-12-18 23:44:44 +0000Kaiepi(~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds)
2022-12-18 23:44:47 +0000 <Inst> i guess, for the time being, i've evolved toward a style that's way too dependent on nested definitions
2022-12-18 23:45:04 +0000 <EvanR> yeah style takes time to figure out
2022-12-18 23:45:07 +0000 <Inst> which is one way to express code organization, and i've stated the drawbacks of other ways to do so
2022-12-18 23:45:26 +0000 <Inst> still, it's funny making 100 line functions in Haskell
2022-12-18 23:45:37 +0000 <EvanR> that sounds awful
2022-12-18 23:45:38 +0000 <dsal> It's not clear what it would even mean to "access a where" clause. My where clauses often close on values other where clauses defined from each other and params. In order to access one, you'd have to push a ton of state down.
2022-12-18 23:45:53 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2022-12-18 23:45:53 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2022-12-18 23:45:53 +0000wroathe(~wroathe@user/wroathe)
2022-12-18 23:45:53 +0000morb(~morb@pool-72-80-94-112.nycmny.fios.verizon.net) (Remote host closed the connection)
2022-12-18 23:46:03 +0000 <EvanR> maybe they want dynamic scoping xD
2022-12-18 23:46:05 +0000 <Inst> dsal: the main drawback of abusing nesting is weak testing
2022-12-18 23:46:10 +0000 <Inst> what is dynamic scoping?
2022-12-18 23:46:30 +0000 <EvanR> it's the opposite of lexical scoping
2022-12-18 23:46:32 +0000 <dsal> We've got things nearly that long in some work code, but that's because people mix in all kinds of tracing and logging and stuff.
2022-12-18 23:46:47 +0000 <EvanR> i.e. impossible to understand
2022-12-18 23:47:12 +0000 <dsal> Inst: One of the schools of testing argues that you should only test the API you present.
2022-12-18 23:47:13 +0000 <Inst> this would be an example
2022-12-18 23:47:14 +0000 <Inst> https://github.com/liamzee/Dicewarist/blob/master/app/Dicewarist.hs
2022-12-18 23:47:47 +0000 <geekosaur> lexical scoping means you can access bindings you are nested within. dynamic scoping means you can access bindings you were called from
2022-12-18 23:47:50 +0000fizbin(~fizbin@user/fizbin)
2022-12-18 23:48:28 +0000 <geekosaur> lexical scoping is therefore clean and easy to figure out, whereas dynamic scoping could lead to nasty surprises because it's all controlled by your caller(s)
2022-12-18 23:48:34 +0000 <EvanR> imagine if you could "access" equations in a where clause, but the free variables suddenly point somewhere else xD
2022-12-18 23:48:49 +0000 <EvanR> very "handy"
2022-12-18 23:48:50 +0000 <dsal> I like that it imports `OK (OK)`
2022-12-18 23:48:50 +0000 <Inst> the idea is that you're not actually supposed to program with it
2022-12-18 23:50:13 +0000 <dsal> Inst: Is there something in here you're wanting to fix?
2022-12-18 23:50:34 +0000 <dsal> My general approach is to write the tests I think I need and then look at a coverage report.
2022-12-18 23:51:12 +0000Kaiepi(~Kaiepi@108.175.84.104)
2022-12-18 23:51:32 +0000 <Inst> i mean wouldn't it be standard Haskell style to take out some of the where clausing?
2022-12-18 23:51:56 +0000 <dsal> For what reason?
2022-12-18 23:52:16 +0000 <Inst> because the where clausing isn't necessary
2022-12-18 23:52:19 +0000 <Inst> it improves readability
2022-12-18 23:52:33 +0000 <dsal> I find this super readable, so I need you to walk me a little bit.
2022-12-18 23:52:55 +0000 <dsal> "get rid of where clause" isn't helpful to me. Which ones? Why?
2022-12-18 23:53:41 +0000 <Inst> well, at least, expose functions to testing
2022-12-18 23:54:00 +0000 <Inst> this whole whereclausing thing, tbh, is a miracle
2022-12-18 23:54:40 +0000 <dsal> It's super hard to understand where you're coming from. I don't like naming things because naming things is hard, but why is naming things inherently a problem?
2022-12-18 23:56:42 +0000 <Inst> that's more like an aside, i.e, where clausing in Haskell is a key advantage of haskell code over other languages code
2022-12-18 23:56:57 +0000 <Inst> but it has the drawback that stuff defined within where clauses is not accessible to testing, but that's about it
2022-12-18 23:57:21 +0000 <Inst> i guess in another language, wherein larger and less modularized functions is a norm, there's no real trade-off, so the idea wouldn't be apparent
2022-12-18 23:57:27 +0000 <Inst> because you can't modularize in this way in other languages
2022-12-18 23:57:36 +0000 <dsal> "where clausing" sounds really bizarre. nobody says that. Just say "naming things"
2022-12-18 23:57:37 +0000 <Inst> it's inconvenient to do so
2022-12-18 23:57:54 +0000 <dsal> You can name things in most languages.
2022-12-18 23:57:56 +0000 <Inst> where makes it more specific to the where syntactical sugar
2022-12-18 23:58:09 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6111:8f0f:4f2:4e8d)
2022-12-18 23:58:37 +0000 <Inst> w/e, i don't want to cause frustration, and it's getting late
2022-12-18 23:58:41 +0000 <Inst> thanks for humoring me
2022-12-18 23:58:53 +0000crazazy``(~user@130.89.171.62) (Ping timeout: 268 seconds)
2022-12-18 23:58:55 +0000 <dsal> Heh. Sure. That particular example can be written in almost any language.