2023/04/22

2023-04-22 00:01:59 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 250 seconds)
2023-04-22 00:08:24 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2023-04-22 00:09:19 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 00:13:46 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 252 seconds)
2023-04-22 00:16:49 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-04-22 00:19:31 +0200falafel(~falafel@2603-8000-d700-115c-0d74-b978-eeca-e964.res6.spectrum.com)
2023-04-22 00:19:48 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-22 00:20:13 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 276 seconds)
2023-04-22 00:20:36 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 00:24:45 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-22 00:27:53 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
2023-04-22 00:33:09 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 00:34:44 +0200son0p(~ff@181.136.122.143)
2023-04-22 00:37:42 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 255 seconds)
2023-04-22 00:38:56 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-04-22 00:49:04 +0200ubert(~Thunderbi@p200300ecdf114f599e78396caae91165.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2023-04-22 00:49:08 +0200nate1(~nate@98.45.169.16)
2023-04-22 00:49:29 +0200ubert(~Thunderbi@p548c84d6.dip0.t-ipconnect.de)
2023-04-22 00:49:48 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 00:54:28 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-22 00:54:40 +0200nate1(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-04-22 00:54:50 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-22 00:55:25 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-22 00:58:31 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-04-22 01:03:07 +0200acidjnk(~acidjnk@p200300d6e715c4560d89bcbac05bf750.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-04-22 01:04:00 +0200dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-04-22 01:05:01 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-22 01:05:26 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-22 01:08:00 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-04-22 01:08:53 +0200dolio(~dolio@130.44.134.54)
2023-04-22 01:09:03 +0200delYsid(~user@user/delYsid) (ERC 5.4.1 (IRC client for GNU Emacs 30.0.50))
2023-04-22 01:09:28 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 01:10:31 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
2023-04-22 01:13:45 +0200jero98772(~jero98772@2800:484:1d84:9000::1) (Ping timeout: 265 seconds)
2023-04-22 01:15:05 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-22 01:25:31 +0200jero98772(~jero98772@2800:484:1d84:9000::6)
2023-04-22 01:28:11 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 01:28:32 +0200phma(phma@2001:5b0:211f:e428:9fb9:b7cc:2fd:9e9) (Read error: Connection reset by peer)
2023-04-22 01:28:56 +0200phma(phma@2001:5b0:211f:e428:9fb9:b7cc:2fd:9e9)
2023-04-22 01:32:10 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-22 01:32:10 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-22 01:32:10 +0200wroathe(~wroathe@user/wroathe)
2023-04-22 01:32:45 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-22 01:38:51 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 01:43:46 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-04-22 01:44:31 +0200gmg(~user@user/gehmehgeh)
2023-04-22 01:47:28 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 255 seconds)
2023-04-22 01:48:49 +0200mauke_(~mauke@user/mauke)
2023-04-22 01:50:05 +0200mauke(~mauke@user/mauke) (Ping timeout: 240 seconds)
2023-04-22 01:50:05 +0200mauke_mauke
2023-04-22 01:51:06 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 01:51:47 +0200PRCisDemocratic(~gnulinuxu@user/gnulinuxuser)
2023-04-22 01:52:46 +0200NiceBird(~NiceBird@185.133.111.196) (bbl)
2023-04-22 01:53:54 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
2023-04-22 01:54:40 +0200jero98772(~jero98772@2800:484:1d84:9000::6) (Ping timeout: 248 seconds)
2023-04-22 01:57:18 +0200barcisz(~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Client Quit)
2023-04-22 02:04:53 +0200jero98772(~jero98772@2800:484:1d84:9000::1)
2023-04-22 02:08:01 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2023-04-22 02:08:05 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-04-22 02:09:19 +0200PRCisDemocratic(~gnulinuxu@user/gnulinuxuser) (Quit: Client closed)
2023-04-22 02:09:22 +0200Lord_of_Life_Lord_of_Life
2023-04-22 02:10:27 +0200gnulinuxuser(~gnulinuxu@user/gnulinuxuser)
2023-04-22 02:20:13 +0200jero98772(~jero98772@2800:484:1d84:9000::1) (Read error: Connection reset by peer)
2023-04-22 02:22:06 +0200ryantrinkle(~ryantrink@209.91.235.83) (Ping timeout: 255 seconds)
2023-04-22 02:28:39 +0200gnulinuxuser(~gnulinuxu@user/gnulinuxuser) (Quit: Client closed)
2023-04-22 02:30:05 +0200ix(~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) (Ping timeout: 265 seconds)
2023-04-22 02:30:07 +0200gnulinuxuser28(~gnulinuxu@user/gnulinuxuser)
2023-04-22 02:31:50 +0200falafel(~falafel@2603-8000-d700-115c-0d74-b978-eeca-e964.res6.spectrum.com) (Ping timeout: 260 seconds)
2023-04-22 02:37:25 +0200jero98772(~jero98772@2800:484:1d84:9000::6)
2023-04-22 02:50:23 +0200ryantrinkle(~ryantrink@209.91.235.83)
2023-04-22 02:59:11 +0200fbytez(~uid@2001:bc8:2117:100::)
2023-04-22 03:00:03 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 265 seconds)
2023-04-22 03:02:21 +0200 <fbytez> Any ideas why I'm getting this libc error when trying to statically compile? https://paste.tomsmeding.com/quWcumdE
2023-04-22 03:03:15 +0200 <fbytez> Linux 5.19.0-38-generic #39~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 17 21:16:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
2023-04-22 03:03:39 +0200 <fbytez> The Glorious Glasgow Haskell Compilation System, version 9.2.7
2023-04-22 03:08:07 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 252 seconds)
2023-04-22 03:09:21 +0200 <fbytez> Same problem when using ghc 8.8.4 installed from the Ubuntu package manager.
2023-04-22 03:11:12 +0200 <int-e> pretty sure that's not a ghc problem... but a problem with the libc.a. Maybe caused by it being built with the --gc-sections linker flag? Maybe fixable by using a different linker (the bfd linker rather than gold)?
2023-04-22 03:11:45 +0200 <int-e> "maybe" -- these are ideas from googling the error message
2023-04-22 03:19:30 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2023-04-22 03:20:36 +0200 <int-e> fbytez: see also https://github.com/icfpcontest2020/starterkit-haskell/issues/2#issuecomment-774894327 which gives a ghc-specific flag for specifying a different linker
2023-04-22 03:25:05 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-22 03:29:41 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 03:35:13 +0200ubert(~Thunderbi@p548c84d6.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-04-22 03:35:19 +0200ub(~Thunderbi@p548c8f0b.dip0.t-ipconnect.de)
2023-04-22 03:37:34 +0200ububert
2023-04-22 03:55:17 +0200pyook(~puke@user/puke) (Ping timeout: 246 seconds)
2023-04-22 03:56:04 +0200 <fbytez> int-e, thanks. Using -optl-fuse-ld=bfd works except for another error/warning message: /builds/ghc/ghc/rts/Linker.c:615:0: error: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
2023-04-22 03:56:30 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2023-04-22 03:57:05 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-04-22 04:02:54 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-04-22 04:06:22 +0200Me-me(~Me-me@146.102.215.218.dyn.iprimus.net.au)
2023-04-22 04:12:33 +0200gnulinuxuser28(~gnulinuxu@user/gnulinuxuser) (Quit: Client closed)
2023-04-22 04:21:54 +0200pyook(~puke@user/puke)
2023-04-22 04:22:24 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-04-22 04:22:24 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-04-22 04:22:24 +0200wroathe(~wroathe@user/wroathe)
2023-04-22 04:26:08 +0200pyook(~puke@user/puke) (Ping timeout: 248 seconds)
2023-04-22 04:26:44 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-04-22 04:47:46 +0200rbancroft(~ryan@d104-205-58-199.abhsia.telus.net)
2023-04-22 04:50:51 +0200nate1(~nate@98.45.169.16)
2023-04-22 04:52:59 +0200rf(~rf@2605:59c8:1604:2210:3b9d:e321:bd23:2925) (Remote host closed the connection)
2023-04-22 04:53:17 +0200rf(~rf@2605:59c8:1604:2210:c524:bdf9:cb3f:d68d)
2023-04-22 04:55:25 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-04-22 04:56:29 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-04-22 04:56:29 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-04-22 04:56:29 +0200finn_elijaFinnElija
2023-04-22 04:58:25 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
2023-04-22 05:00:46 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2023-04-22 05:01:02 +0200jinsun(~jinsun@user/jinsun)
2023-04-22 05:02:19 +0200td_(~td@i53870936.versanet.de) (Ping timeout: 276 seconds)
2023-04-22 05:03:47 +0200td_(~td@i5387093E.versanet.de)
2023-04-22 05:14:07 +0200rf(~rf@2605:59c8:1604:2210:c524:bdf9:cb3f:d68d) (Remote host closed the connection)
2023-04-22 05:17:45 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-04-22 05:18:07 +0200accord(uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-04-22 05:24:46 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-22 05:26:10 +0200pyook(~puke@user/puke)
2023-04-22 05:30:05 +0200nate1(~nate@98.45.169.16)
2023-04-22 05:32:45 +0200pyook(~puke@user/puke) (Ping timeout: 240 seconds)
2023-04-22 05:36:30 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds)
2023-04-22 05:38:17 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-04-22 05:55:45 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-04-22 05:57:44 +0200pyook(~puke@user/puke)
2023-04-22 05:59:35 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 06:01:03 +0200 <jackdk> Attempting to statically link using glibc seems unwise
2023-04-22 06:01:37 +0200 <jackdk> I think everyone uses musl for that because otherwise you find the program still wants to dynamically load stuff (e.g., nsswitch, I think?)
2023-04-22 06:04:24 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-04-22 06:19:29 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-04-22 06:30:35 +0200nate1(~nate@98.45.169.16)
2023-04-22 06:35:45 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2023-04-22 06:39:19 +0200auri(~auri@fsf/member/auri) ()
2023-04-22 06:42:04 +0200vertym_(~UserNick@178.141.90.105)
2023-04-22 06:45:46 +0200vertym_(~UserNick@178.141.90.105) ()
2023-04-22 06:49:03 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-04-22 06:52:47 +0200wroathe(~wroathe@user/wroathe)
2023-04-22 06:53:02 +0200 <probie> Is there any way to create an (unboxed, mutable) vector which has "uninitialised" (neither read from, nor written to) elements, or am I going to be stuck with something like a (pinned) MutableByteArray# if I want that?
2023-04-22 06:55:42 +0200 <probie> I want to allocate an array which has large portions I won't use, and rely on the fact that my OS won't actually give me the page of memory until it's first used to avoid running out of memory
2023-04-22 06:57:00 +0200 <davean> What OS is that safe on? Thats safest on Linux but if you don't use a .... anyway ... you'll need to use storable.
2023-04-22 06:59:43 +0200jargon(~jargon@174-22-213-236.phnx.qwest.net) (Remote host closed the connection)
2023-04-22 07:00:02 +0200 <Maxdamantus> I'd imagine it would be pretty much equally safe on all OSes with memory protection, as long as you use a pointer produced yourself by `mmap` or whatever mechanism is used to allocate memory.
2023-04-22 07:00:52 +0200 <probie> Right, I can explicitly use the `MVector` constructor to build it. I hadn't realised that was exposed
2023-04-22 07:01:32 +0200magnolia_mayhem[(~ashinnvma@2001:470:69fc:105::2:e5ed)
2023-04-22 07:01:49 +0200 <davean> Maxdamantus: Nah, many don't overcommit, and none guarrentee overcommit that I know of. Linux is very eager about it but still ... there are edge case against it. There are some ways to fix that with mmap though.
2023-04-22 07:01:55 +0200auri(~auri@fsf/member/auri)
2023-04-22 07:02:03 +0200 <segfaultfizzbuzz> what about using BeOS
2023-04-22 07:02:24 +0200 <Maxdamantus> davean: Linux doesn't overcommit by default, but that just means it doesn't allow the "free memory" counter to drop below 0.
2023-04-22 07:02:37 +0200 <Maxdamantus> davean: it doesn't actually zero out memory when you `mmap` it.
2023-04-22 07:04:04 +0200 <segfaultfizzbuzz> https://www.youtube.com/watch?v=ggCODBIfWKY the future of computing
2023-04-22 07:04:34 +0200 <Maxdamantus> eg I know that at least some versions of the JVM will mmap lots of memory as soon as you start it, and ultimately that just means that Linux reduces the amount of memory it considers to be "free". It doesn't create pages until you try to access it.
2023-04-22 07:04:51 +0200nate1(~nate@98.45.169.16)
2023-04-22 07:05:00 +0200 <segfaultfizzbuzz> you can move windows on the screen and play music at the same time without the music being interrupted on BeOS
2023-04-22 07:05:33 +0200 <probie> If the future is "BeOS", you should take a look at the Haiku project. I don't think it's too relevant to Haskell, although I think some people have managed to get GHC to build on it
2023-04-22 07:06:27 +0200 <probie> (build on Haiku that is, I have no idea about BeOS)
2023-04-22 07:07:26 +0200 <segfaultfizzbuzz> haha i am mostly just joking around but lol ghc on haiku
2023-04-22 07:09:42 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2023-04-22 07:11:33 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2023-04-22 07:22:42 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-04-22 07:25:24 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-04-22 07:25:43 +0200ub(~Thunderbi@p200300ecdf2ac335c2e6749b36def79d.dip0.t-ipconnect.de)
2023-04-22 07:25:52 +0200ubert(~Thunderbi@p548c8f0b.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2023-04-22 07:25:52 +0200ububert
2023-04-22 07:35:45 +0200ub(~Thunderbi@p548c8f0b.dip0.t-ipconnect.de)
2023-04-22 07:36:32 +0200ubert(~Thunderbi@p200300ecdf2ac335c2e6749b36def79d.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-04-22 07:36:32 +0200ububert
2023-04-22 07:36:33 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
2023-04-22 07:39:17 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-04-22 07:40:01 +0200nate1(~nate@98.45.169.16)
2023-04-22 07:44:01 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2023-04-22 07:44:01 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2023-04-22 07:44:04 +0200allbery_bgeekosaur
2023-04-22 07:44:51 +0200shinjipf6(~shinjipf@137.184.4.49)
2023-04-22 07:44:54 +0200thegeekinside(~thegeekin@189.180.119.50) (Ping timeout: 252 seconds)
2023-04-22 07:45:04 +0200mniip_(mniip@libera/staff/mniip)
2023-04-22 07:45:10 +0200sgarcia_(sgarcia@swarm.znchost.com)
2023-04-22 07:45:18 +0200bgamari_(~bgamari@64.223.233.113)
2023-04-22 07:45:18 +0200goldstein(~goldstein@goldstein.rs)
2023-04-22 07:45:21 +0200ub(~Thunderbi@p548c8f0b.dip0.t-ipconnect.de)
2023-04-22 07:45:34 +0200tabemann__(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2023-04-22 07:45:47 +0200shinjipf(~shinjipf@137.184.4.49) (Quit: Ping timeout (120 seconds))
2023-04-22 07:45:48 +0200shinjipf6shinjipf
2023-04-22 07:45:59 +0200nate1(~nate@98.45.169.16) (Ping timeout: 293 seconds)
2023-04-22 07:45:59 +0200pieguy128(~pieguy128@bas1-montreal02-65-92-162-12.dsl.bell.ca) (Ping timeout: 261 seconds)
2023-04-22 07:45:59 +0200ubert(~Thunderbi@p548c8f0b.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-04-22 07:45:59 +0200GoldsteinQ(~goldstein@goldstein.rs) (Ping timeout: 256 seconds)
2023-04-22 07:45:59 +0200shailangsa(~shailangs@host165-120-169-78.range165-120.btcentralplus.com) (Ping timeout: 256 seconds)
2023-04-22 07:45:59 +0200bgamari(~bgamari@64.223.233.113) (Ping timeout: 256 seconds)
2023-04-22 07:45:59 +0200mniip(mniip@libera/staff/mniip) (Quit: This page is intentionally left blank)
2023-04-22 07:45:59 +0200sgarcia(sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com)
2023-04-22 07:45:59 +0200ububert
2023-04-22 07:46:02 +0200tabemann_(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2023-04-22 07:46:02 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-04-22 07:46:03 +0200pieguy128_(~pieguy128@bras-base-mtrlpq5031w-grc-56-65-92-162-12.dsl.bell.ca)
2023-04-22 07:48:06 +0200Maxdaman1us(~Maxdamant@user/maxdamantus)
2023-04-22 07:49:42 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
2023-04-22 07:49:52 +0200Maxdaman1usMaxdamantus
2023-04-22 07:59:58 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-04-22 07:59:59 +0200justachereddit-bot
2023-04-22 08:00:07 +0200reddit-botjustache
2023-04-22 08:19:57 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de)
2023-04-22 08:28:13 +0200shailangsa_(~shailangs@host165-120-169-78.range165-120.btcentralplus.com)
2023-04-22 08:32:53 +0200rekahsoft(~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Ping timeout: 250 seconds)
2023-04-22 08:34:15 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-04-22 09:00:37 +0200 <dminuoso> oddline: I think its still a bad diagnostic.
2023-04-22 09:00:58 +0200 <dminuoso> oddline: If the role of UArray is at fault, the diagnostic here is completely misleading.
2023-04-22 09:01:07 +0200 <dminuoso> UArray is not even being mentioned.
2023-04-22 09:04:36 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-04-22 09:07:15 +0200acidjnk(~acidjnk@p200300d6e715c456ad9bc6995a058b5d.dip0.t-ipconnect.de)
2023-04-22 09:20:24 +0200tr_ev(~trev@user/trev)
2023-04-22 09:21:29 +0200tr_ev(~trev@user/trev) (Client Quit)
2023-04-22 09:21:40 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-04-22 09:21:46 +0200tr_ev(~trev@user/trev)
2023-04-22 09:22:29 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-04-22 09:22:40 +0200tr_evtrev
2023-04-22 09:23:12 +0200trev(~trev@user/trev) (Client Quit)
2023-04-22 09:23:44 +0200trev(~trev@user/trev)
2023-04-22 09:52:03 +0200random-jellyfish(~random-je@user/random-jellyfish)
2023-04-22 09:54:12 +0200ardell(~ardell@user/ardell)
2023-04-22 09:54:37 +0200nate1(~nate@98.45.169.16)
2023-04-22 09:57:14 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 10:00:01 +0200nate1(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2023-04-22 10:00:55 +0200ardell(~ardell@user/ardell) (Quit: Konversation terminated!)
2023-04-22 10:01:54 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-04-22 10:03:25 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:21d4:e288:9164:f829) (Remote host closed the connection)
2023-04-22 10:03:44 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-04-22 10:04:28 +0200random-jellyfish(~random-je@user/random-jellyfish) (Quit: Client closed)
2023-04-22 10:04:41 +0200random-jellyfish(~random-je@user/random-jellyfish)
2023-04-22 10:10:35 +0200random-jellyfish(~random-je@user/random-jellyfish) (Quit: random-jellyfish)
2023-04-22 10:13:48 +0200jmilan(~jmilan@195.242.182.249)
2023-04-22 10:15:10 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-04-22 10:18:22 +0200coot(~coot@213.134.170.228)
2023-04-22 10:33:05 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-04-22 10:42:31 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2023-04-22 10:46:01 +0200trev(~trev@user/trev) (Ping timeout: 240 seconds)
2023-04-22 10:46:12 +0200trev(~trev@user/trev)
2023-04-22 10:52:40 +0200trev(~trev@user/trev) (Read error: Connection reset by peer)
2023-04-22 10:52:54 +0200trev(~trev@user/trev)
2023-04-22 10:58:15 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de)
2023-04-22 11:00:04 +0200christiansen[m](~christian@2001:470:69fc:105::2:f23d) (Quit: You have been kicked for being idle)
2023-04-22 11:01:46 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
2023-04-22 11:03:15 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
2023-04-22 11:04:32 +0200jmilan(~jmilan@195.242.182.249) (Quit: Client closed)
2023-04-22 11:10:23 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-04-22 11:11:41 +0200yax__(~pi@103.59.74.155)
2023-04-22 11:12:21 +0200yax__(~pi@103.59.74.155) (Client Quit)
2023-04-22 11:15:40 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-22 11:16:46 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net)
2023-04-22 11:18:50 +0200phma(phma@2001:5b0:211f:e428:9fb9:b7cc:2fd:9e9) (Read error: Connection reset by peer)
2023-04-22 11:20:20 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2023-04-22 11:30:28 +0200phma(~phma@host-67-44-208-203.hnremote.net)
2023-04-22 11:33:00 +0200phma(~phma@host-67-44-208-203.hnremote.net) (Read error: Connection reset by peer)
2023-04-22 11:34:25 +0200gurkenglas(~gurkengla@dynamic-046-114-177-200.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
2023-04-22 11:34:32 +0200phma(~phma@2001:5b0:211f:5218:9152:3e57:9d1f:30e6)
2023-04-22 11:39:59 +0200gurkenglas(~gurkengla@dynamic-046-114-179-219.46.114.pool.telefonica.de)
2023-04-22 11:51:14 +0200trev(~trev@user/trev) (Quit: trev)
2023-04-22 11:51:41 +0200trev(~trev@user/trev)
2023-04-22 11:55:43 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-04-22 12:01:25 +0200vglfr(~vglfr@88.155.8.48)
2023-04-22 12:02:04 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-04-22 12:05:15 +0200trev(~trev@user/trev) (Read error: Connection reset by peer)
2023-04-22 12:05:29 +0200trev(~trev@user/trev)
2023-04-22 12:15:03 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2023-04-22 12:17:21 +0200kmein(~weechat@user/kmein)
2023-04-22 12:17:51 +0200trev(~trev@user/trev) (Ping timeout: 265 seconds)
2023-04-22 12:18:08 +0200zer0bitz_(~zer0bitz@2001:2003:f443:d600:90ce:fd4d:93ec:8c55)
2023-04-22 12:19:23 +0200zer0bitz(~zer0bitz@2001:2003:f443:d600:28e6:b5d5:3c01:ef5f) (Ping timeout: 248 seconds)
2023-04-22 12:21:09 +0200alternateved(~user@77-253-195-69.adsl.inetia.pl)
2023-04-22 12:21:17 +0200coot(~coot@213.134.170.228) (Quit: coot)
2023-04-22 12:24:24 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net) (Remote host closed the connection)
2023-04-22 12:24:44 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net)
2023-04-22 12:25:59 +0200jmilan(~jmilan@195.242.182.249)
2023-04-22 12:28:17 +0200trev(~trev@user/trev)
2023-04-22 12:32:38 +0200__monty__(~toonn@user/toonn)
2023-04-22 12:45:19 +0200accord(uid568320@id-568320.hampstead.irccloud.com)
2023-04-22 12:49:47 +0200pavonia(~user@user/siracusa)
2023-04-22 12:50:08 +0200dontdieych(~alarm@132.226.169.184)
2023-04-22 12:50:58 +0200Bocaneri(~sauvin@user/Sauvin)
2023-04-22 12:51:21 +0200BocaneriGuest4705
2023-04-22 12:54:13 +0200Sauvin(~sauvin@user/Sauvin) (Ping timeout: 276 seconds)
2023-04-22 12:57:33 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 13:06:28 +0200gurkenglas(~gurkengla@dynamic-046-114-179-219.46.114.pool.telefonica.de) (Ping timeout: 252 seconds)
2023-04-22 13:07:02 +0200dontdieych(~alarm@132.226.169.184) (Quit: WeeChat 3.8)
2023-04-22 13:12:26 +0200[exa](~exa@user/exa/x-3587197)
2023-04-22 13:15:23 +0200vglfr(~vglfr@88.155.8.48) (Read error: Connection reset by peer)
2023-04-22 13:18:17 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54f843-214.dhcp.inet.fi)
2023-04-22 13:19:48 +0200zer0bitz_(~zer0bitz@2001:2003:f443:d600:90ce:fd4d:93ec:8c55) (Ping timeout: 260 seconds)
2023-04-22 13:25:06 +0200jmilan(~jmilan@195.242.182.249) (Quit: Client closed)
2023-04-22 13:30:18 +0200jmilan(~jmilan@195.242.182.249)
2023-04-22 13:30:45 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2023-04-22 13:31:19 +0200nate1(~nate@98.45.169.16)
2023-04-22 13:36:10 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2023-04-22 13:41:29 +0200unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36)
2023-04-22 13:43:32 +0200 <unit73e> hello. I just found out ruby bundle is kind of weird and there's a some of borrowed tech from haskell. I need for a serializer.
2023-04-22 13:43:41 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 13:45:40 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-22 13:48:49 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
2023-04-22 14:10:33 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-04-22 14:12:36 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net) (Remote host closed the connection)
2023-04-22 14:16:43 +0200alternateved(~user@77-253-195-69.adsl.inetia.pl) (Ping timeout: 260 seconds)
2023-04-22 14:27:38 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-22 14:33:09 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-04-22 14:33:46 +0200 <justsomeguy> What is the best package for creating resoruces on AWS in Haskell?
2023-04-22 14:34:33 +0200 <justsomeguy> I'm somewhat familiar with using the python bindings for the CDK and also boto3, but I feel a little disoriented when it comes to haskell.
2023-04-22 14:36:01 +0200 <justsomeguy> The ones I've found so far are amazonka and cdk-haskell. amazonka seems lower-level than boto3 -- it looks like the http API for AWS, instead. I haven't tried cdk-haskell, but I bet it's like the other CDK implementations. What's the equivalent of boto3?
2023-04-22 14:38:20 +0200mei(~mei@user/mei) (Quit: mei)
2023-04-22 14:38:35 +0200 <unit73e> @justsomeguy, no idea. usually I start here and pick the one I find the best: https://hackage.haskell.org/packages/search?terms=aws
2023-04-22 14:38:35 +0200 <lambdabot> Unknown command, try @list
2023-04-22 14:38:41 +0200 <unit73e> justsomeguy, no idea. usually I start here and pick the one I find the best: https://hackage.haskell.org/packages/search?terms=aws
2023-04-22 14:38:54 +0200 <unit73e> fail with the @ it's a other chat services thing
2023-04-22 14:39:45 +0200 <unit73e> it appears like aws is the go to package
2023-04-22 14:41:57 +0200 <unit73e> there's no real best in haskell afaik, you just pick the one you feel confortable with
2023-04-22 14:42:06 +0200 <unit73e> as far as packages go, imo of course
2023-04-22 14:42:40 +0200 <justsomeguy> I think I'm going to have to write a blog post that gives a survey of the various AWS related packages after I try a few out.
2023-04-22 14:43:13 +0200 <unit73e> that's a good idea
2023-04-22 14:46:30 +0200jero98772(~jero98772@2800:484:1d84:9000::6) (Remote host closed the connection)
2023-04-22 14:48:43 +0200 <justsomeguy> Surprisingly, chatgpt has been able to give me a few good working examples. :)
2023-04-22 14:51:44 +0200acidjnk(~acidjnk@p200300d6e715c456ad9bc6995a058b5d.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-04-22 14:54:31 +0200unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 260 seconds)
2023-04-22 15:02:01 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
2023-04-22 15:07:21 +0200Guest4705Sauvin
2023-04-22 15:07:58 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2023-04-22 15:09:28 +0200vglfr(~vglfr@88.155.8.48)
2023-04-22 15:09:45 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2023-04-22 15:19:16 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-22 15:19:55 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-22 15:22:18 +0200jmilan(~jmilan@195.242.182.249) (Ping timeout: 260 seconds)
2023-04-22 15:22:36 +0200mei(~mei@user/mei)
2023-04-22 15:23:25 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds)
2023-04-22 15:23:36 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2023-04-22 15:48:57 +0200ryantrinkle(~ryantrink@209.91.235.83) (Ping timeout: 255 seconds)
2023-04-22 15:54:08 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2023-04-22 15:54:49 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-22 16:01:13 +0200gurkenglas(~gurkengla@dynamic-046-114-178-072.46.114.pool.telefonica.de)
2023-04-22 16:03:56 +0200ryantrinkle(~ryantrink@140.174.241.172)
2023-04-22 16:05:38 +0200Me-me(~Me-me@146.102.215.218.dyn.iprimus.net.au) (Quit: Going offline, see ya! (www.adiirc.com))
2023-04-22 16:08:24 +0200 <fbytez> jackdk, sounds good to me. How do I instruct ghc to link to musl libc instead?
2023-04-22 16:13:04 +0200 <hammond> if I had function that did [String]->String and took the strings inside the list and concatinated them recursivly and returned a string, would there be a way to overload a function like that to take a list [String] that if it only has 1 element in the array instead of concatinating it recursivly it would do something else and return a string?
2023-04-22 16:13:45 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2023-04-22 16:14:42 +0200 <hammond> or do I have to write a different function, that handles the case of there being one element inside the list [String] and simply call that.
2023-04-22 16:14:47 +0200 <jean-paul[m]> What do you mean "recursively"?
2023-04-22 16:16:06 +0200 <jean-paul[m]> You can pattern match on a list of one element: f [x] = ... but I'm not sure if that's what you're looking for.
2023-04-22 16:19:12 +0200 <hammond> https://pastebin.com/fvfXj7Gu <---
2023-04-22 16:21:06 +0200 <hammond> if I put a pattern match in there that says something like length xs == 1 it will be called for lists of size n+1.
2023-04-22 16:22:52 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-04-22 16:23:40 +0200 <hammond> in java I would write something like String(List<String> a ) { if(a.size()==1){/*do something here*/} else{ /*loop thru it*/ } }
2023-04-22 16:23:53 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-04-22 16:24:00 +0200vglfr(~vglfr@88.155.8.48) (Ping timeout: 248 seconds)
2023-04-22 16:26:09 +0200 <probie> hammond: It's probably not particularly idiomatic, but what stops you doing this in Haskell (e.g. `f (x:xs) = if null xs then {- do something here -} else {- loop through it -}`)?
2023-04-22 16:26:43 +0200 <ncf> make another function with a pattern [x] that does what you want and a catch-all pattern that calls composeString
2023-04-22 16:27:14 +0200 <ncf> or refactor your program so that you don't need to special-case lists of length 1
2023-04-22 16:27:49 +0200 <[Leary]> :t \xs f -> concat . intersperse " " <$> for xs f
2023-04-22 16:27:50 +0200 <lambdabot> Applicative f => [a] -> (a -> f [Char]) -> f [Char]
2023-04-22 16:27:55 +0200 <[Leary]> Something like that.
2023-04-22 16:29:28 +0200gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-04-22 16:31:30 +0200 <hammond> ok thx
2023-04-22 16:40:26 +0200Ranhir(~Ranhir@157.97.53.139) (Remote host closed the connection)
2023-04-22 16:40:43 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-04-22 16:49:51 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 16:57:51 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-22 16:58:29 +0200ddellacosta(~ddellacos@143.244.47.84) (Quit: WeeChat 3.8)
2023-04-22 16:59:44 +0200ddellacosta(~ddellacos@143.244.47.84)
2023-04-22 17:02:20 +0200 <monochrom> What if a.size()==0 ?
2023-04-22 17:03:02 +0200 <monochrom> But more importantly you should analogize Haskell [a] with Java Stream<a>, not List.
2023-04-22 17:07:40 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net)
2023-04-22 17:08:53 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-22 17:09:20 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-22 17:20:30 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-04-22 17:21:00 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-22 17:21:49 +0200Ranhir(~Ranhir@157.97.53.139)
2023-04-22 17:22:01 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds)
2023-04-22 17:25:01 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2023-04-22 17:30:23 +0200rf(~rf@2605:59c8:1604:2210:49b1:9a7a:6cf8:68fc)
2023-04-22 17:32:12 +0200nate1(~nate@98.45.169.16)
2023-04-22 17:34:56 +0200hueso(~root@user/hueso) (Quit: hueso)
2023-04-22 17:37:24 +0200nate1(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2023-04-22 17:37:50 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-04-22 17:39:14 +0200Alex_test(~al_test@178.34.150.15) (Ping timeout: 265 seconds)
2023-04-22 17:39:34 +0200AlexZenon(~alzenon@178.34.150.15) (Ping timeout: 276 seconds)
2023-04-22 17:43:40 +0200Alex_test(~al_test@178.34.150.15)
2023-04-22 17:43:53 +0200AlexZenon(~alzenon@178.34.150.15)
2023-04-22 17:43:59 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-04-22 17:44:56 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-04-22 17:47:08 +0200hueso(~root@user/hueso)
2023-04-22 17:50:10 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-22 17:51:05 +0200heraldo(~heraldo@user/heraldo) (Ping timeout: 240 seconds)
2023-04-22 17:51:10 +0200acidjnk(~acidjnk@p200300d6e715c4732d0e415c422b1d76.dip0.t-ipconnect.de)
2023-04-22 17:55:07 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net) (Remote host closed the connection)
2023-04-22 17:55:18 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-04-22 17:55:41 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net)
2023-04-22 17:56:07 +0200justsomeguy(~justsomeg@user/justsomeguy)
2023-04-22 17:58:01 +0200rf(~rf@2605:59c8:1604:2210:49b1:9a7a:6cf8:68fc) (Ping timeout: 252 seconds)
2023-04-22 18:00:12 +0200jesser[m](~jessermat@2001:470:69fc:105::d5ae) (Quit: You have been kicked for being idle)
2023-04-22 18:03:16 +0200rf(~rf@2605:59c8:1604:2210:5f25:9811:549b:cf83)
2023-04-22 18:05:22 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 18:05:22 +0200heraldo(~heraldo@user/heraldo) (Client Quit)
2023-04-22 18:06:59 +0200machinedgod(~machinedg@198.53.218.113)
2023-04-22 18:09:47 +0200econo(uid147250@user/econo)
2023-04-22 18:14:51 +0200hueso(~root@user/hueso) (Quit: hueso)
2023-04-22 18:16:37 +0200ubert(~Thunderbi@p548c8f0b.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2023-04-22 18:16:46 +0200ub(~Thunderbi@84.140.143.11)
2023-04-22 18:19:03 +0200ububert
2023-04-22 18:19:15 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-04-22 18:20:02 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-04-22 18:26:57 +0200hueso(~root@user/hueso)
2023-04-22 18:33:36 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
2023-04-22 18:38:03 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-22 18:52:18 +0200 <ski> hammond : note that `length xs == 1' is not idiomatic, is inefficient (since it requires traversing the list to the end). it's better to match `xs' on a pattern `[x]', or (if you must use `Bool'eans) at least use `not (null xs) && null (tail xs)'
2023-04-22 18:54:00 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-22 18:57:40 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-22 19:01:59 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit)
2023-04-22 19:03:49 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-04-22 19:05:51 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-04-22 19:06:22 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2023-04-22 19:08:21 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
2023-04-22 19:08:40 +0200use-value(~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
2023-04-22 19:11:58 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-04-22 19:18:27 +0200 <hpc> or if you're still dead-set on being unidiomatic, not (null xs) is equivalent to unsafeCoerce xs :D
2023-04-22 19:19:23 +0200 <tomsmeding> (don't do that)
2023-04-22 19:21:27 +0200 <jean-paul[m]> wait what? how are those two equivalent?
2023-04-22 19:22:00 +0200 <tomsmeding> jean-paul[m]: [] and False are both the first constructor, and (:) and True are both the second constructor
2023-04-22 19:22:15 +0200 <tomsmeding> things would go horribly wrong were you to actually read the fields of the constructors -- but fortunately, True and False have no fields
2023-04-22 19:22:31 +0200 <tomsmeding> also this only works because everything here is lifted etc
2023-04-22 19:25:33 +0200skioccasionally misses `Nat' in lambdabot
2023-04-22 19:25:55 +0200tomsmedinglooks questioningly at ski
2023-04-22 19:26:51 +0200 <hpc> it's basically [()]
2023-04-22 19:27:06 +0200 <ski> well, you could say `genericLength xs == (1 :: Nat)'
2023-04-22 19:27:28 +0200 <hpc> oh, that's way better than what i was going to say lol
2023-04-22 19:27:41 +0200 <tomsmeding> oh I see
2023-04-22 19:27:59 +0200 <hpc> i was going to coerce the list again
2023-04-22 19:28:04 +0200 <ski> (:
2023-04-22 19:32:13 +0200 <tomsmeding> @let data Nat = Z | S Nat deriving (Show, Eq, Ord)
2023-04-22 19:32:14 +0200 <lambdabot> Defined.
2023-04-22 19:32:23 +0200 <tomsmeding> @let instance Num Nat where { Z + n = n ; S m + n = S (m + n) ; Z * _ = Z ; S m * n = n + m * n ; negate _ = error "negate on Nat" ; abs = id ; signum = const 1 ; fromInteger n | n < 0 = error "fromInteger to Nat on negative number" | otherwise = let { go 0 = Z ; go m = S (go (m-1)) } in go n }
2023-04-22 19:32:24 +0200 <lambdabot> Defined.
2023-04-22 19:32:43 +0200 <tomsmeding> > genericLength [1..] == (1 :: Nat)
2023-04-22 19:32:44 +0200 <lambdabot> False
2023-04-22 19:33:16 +0200 <tomsmeding> groovy
2023-04-22 19:33:33 +0200 <hpc> it's actually haskell, groovy is a jvm language :P
2023-04-22 19:33:38 +0200 <tomsmeding> :p
2023-04-22 19:38:36 +0200 <ski> (well, `signum Z = Z', i guess)
2023-04-22 19:38:44 +0200 <tomsmeding> hmm
2023-04-22 19:38:58 +0200 <ski> > signum 0
2023-04-22 19:39:00 +0200 <lambdabot> 0
2023-04-22 19:39:03 +0200 <tomsmeding> @let instance Num Nat where { Z + n = n ; S m + n = S (m + n) ; Z * _ = Z ; S m * n = n + m * n ; negate _ = error "negate on Nat" ; abs = id ; signum Z = Z ; signum _ = 1 ; fromInteger n | n < 0 = error "fromInteger to Nat on negative number" | otherwise = let { go 0 = Z ; go m = S (go (m-1)) } in go n }
2023-04-22 19:39:04 +0200 <lambdabot> /sandbox/tmp/.L.hs:161:10: error:
2023-04-22 19:39:04 +0200 <lambdabot> Duplicate instance declarations:
2023-04-22 19:39:04 +0200 <lambdabot> instance [safe] Num Nat -- Defined at /sandbox/tmp/.L.hs:161:10
2023-04-22 19:39:12 +0200 <tomsmeding> ...
2023-04-22 19:39:13 +0200 <ski> @undefine
2023-04-22 19:39:13 +0200 <lambdabot> Undefined.
2023-04-22 19:39:21 +0200 <tomsmeding> does that undefine everything
2023-04-22 19:39:23 +0200 <ski> yes
2023-04-22 19:39:34 +0200 <tomsmeding> should I add this to the yahb2 prelude
2023-04-22 19:39:44 +0200 <ski> (it used to be that `@define' also did that. alas, no more)
2023-04-22 19:40:09 +0200 <tomsmeding> did @define define everything?
2023-04-22 19:40:15 +0200 <ski> it undefined everything
2023-04-22 19:40:26 +0200 <tomsmeding> that's delightfully surprising
2023-04-22 19:40:32 +0200 <tomsmeding> @let data Nat = Z | S Nat deriving (Show, Eq, Ord)
2023-04-22 19:40:32 +0200 <lambdabot> Defined.
2023-04-22 19:40:45 +0200 <tomsmeding> @let instance Num Nat where { Z + n = n ; S m + n = S (m + n) ; Z * _ = Z ; S m * n = n + m * n ; negate _ = error "negate on Nat" ; abs = id ; signum Z = Z ; signum _ = 1 ; fromInteger n | n < 0 = error "fromInteger to Nat on negative number" | otherwise = let { go 0 = Z ; go m = S (go (m-1)) } in go n }
2023-04-22 19:40:47 +0200 <lambdabot> Defined.
2023-04-22 19:40:47 +0200 <ski> edit distance of two, so it spell-corrected
2023-04-22 19:40:51 +0200 <tomsmeding> lol
2023-04-22 19:41:02 +0200 <ski> but sure, feel free to add it, tomsmeding
2023-04-22 19:41:20 +0200 <ski> tomsmeding : nice for surprising people :)
2023-04-22 19:42:43 +0200mmhat(~mmh@p200300f1c7132c95ee086bfffe095315.dip0.t-ipconnect.de)
2023-04-22 19:47:07 +0200yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
2023-04-22 19:47:19 +0200yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2023-04-22 19:49:35 +0200 <tomsmeding> % Data.List.genericLength [1..] :: Nat
2023-04-22 19:49:35 +0200 <yahb2> S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S (S ...
2023-04-22 19:51:22 +0200 <ski> % (0 :: Nat) < fix S
2023-04-22 19:51:22 +0200 <yahb2> True
2023-04-22 19:51:32 +0200mmhat(~mmh@p200300f1c7132c95ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-04-22 19:51:42 +0200 <tomsmeding> % infinity = fix S
2023-04-22 19:51:42 +0200 <yahb2> <no output>
2023-04-22 19:52:59 +0200 <tomsmeding> % 0 * infinity
2023-04-22 19:52:59 +0200 <yahb2> Z
2023-04-22 19:53:14 +0200 <ski> btw, another trick for `genericLength xs <= (fromIntegral n :: Nat)' is to use `length (take n xs) <= n'
2023-04-22 19:53:30 +0200 <tomsmeding> ski: < in both cases?
2023-04-22 19:53:45 +0200 <ski> if you prefer, i guess
2023-04-22 19:53:54 +0200 <tomsmeding> well `length (take n xs) <= n` is always true
2023-04-22 19:54:23 +0200 <ski> ah, right
2023-04-22 19:55:14 +0200 <ski> (i was thinking about wanting to avoid `_ < 0' being `False', and didn't consider the other end of that edit appropriately)
2023-04-22 19:56:04 +0200 <tomsmeding> I mean, using `take (n+1)` fixes the problem
2023-04-22 19:57:45 +0200Sgeo(~Sgeo@user/sgeo)
2023-04-22 20:00:50 +0200 <tomsmeding> omg cabal doesn't print 'Up to date' any more on 'cabal run'
2023-04-22 20:01:00 +0200 <tomsmeding> celebrations
2023-04-22 20:03:28 +0200 <tomsmeding> no more '| tail +2'
2023-04-22 20:04:03 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-ccb5-f017-368a-649d.rev.sfr.net) (Ping timeout: 260 seconds)
2023-04-22 20:04:40 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-256b-4615-12e3-a2f3.rev.sfr.net)
2023-04-22 20:06:47 +0200 <geekosaur> -v0 works too…
2023-04-22 20:09:35 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2023-04-22 20:09:47 +0200phma(~phma@2001:5b0:211f:5218:9152:3e57:9d1f:30e6) (Quit: Konversation terminated!)
2023-04-22 20:09:53 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-256b-4615-12e3-a2f3.rev.sfr.net) (Ping timeout: 260 seconds)
2023-04-22 20:10:14 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-9154-7cd5-8877-b96c.rev.sfr.net)
2023-04-22 20:10:33 +0200phma(phma@2001:5b0:211f:5218:9152:3e57:9d1f:30e6)
2023-04-22 20:13:15 +0200 <hammond> I have a Maybe Double and I want to print the a and not the Just a. how do I do that? or do I always need to keep using <$> ? (I'm very beginner)
2023-04-22 20:13:42 +0200hololeap(~quassel@user/hololeap) (Remote host closed the connection)
2023-04-22 20:14:03 +0200 <tomsmeding> hammond: what should happen if it's a Nothing?
2023-04-22 20:14:23 +0200machinedgod(~machinedg@198.53.218.113) (Ping timeout: 265 seconds)
2023-04-22 20:15:14 +0200 <hammond> well...
2023-04-22 20:15:22 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
2023-04-22 20:15:25 +0200 <hammond> for now just 0.0
2023-04-22 20:15:27 +0200hololeap(~quassel@user/hololeap)
2023-04-22 20:15:44 +0200 <ski> @type fromMaybe 0.0
2023-04-22 20:15:45 +0200 <lambdabot> Fractional a => Maybe a -> a
2023-04-22 20:16:00 +0200 <monochrom> Perhaps better: Don't start with Maybe Double in the first place.
2023-04-22 20:16:14 +0200 <ski> > map (fromMaybe 0.0) [Nothing,Nothing,Just 2,Just 3,Nothing,Just 5]
2023-04-22 20:16:15 +0200 <lambdabot> [0.0,0.0,2.0,3.0,0.0,5.0]
2023-04-22 20:16:31 +0200 <ski> yea, a good question is where does the `Maybe' come from ?
2023-04-22 20:16:38 +0200 <hammond> well im parsing a string from a webpage to a double and read crashed and im using maybeRead
2023-04-22 20:16:59 +0200 <ski> why did it "crash" ?
2023-04-22 20:17:29 +0200 <monochrom> So that means you still don't have a plan for parse errors.
2023-04-22 20:17:37 +0200 <hammond> the regex didn't read I imagine. I will fix the regex, but I can't fix all cases.
2023-04-22 20:18:03 +0200 <ski> you need to decide on what would be reasonable to do, in case you can't parse a `Double'
2023-04-22 20:18:57 +0200 <ski> ("just give any random result or behaviour" isn't "what would be reasonable", typically)
2023-04-22 20:19:24 +0200 <monochrom> This is one of those times when what Hutton said about "programming is hard, Haskell just exposes that fact up front" holds.
2023-04-22 20:19:51 +0200merijn(~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
2023-04-22 20:20:22 +0200 <monochrom> Other languages shoves this issue under the rug. Haskell keeps you honest. You try to parse input, you need a plan B for parse errors sooner or later.
2023-04-22 20:20:30 +0200 <ski> (also, pretty sure `maybeRead' doesn't use a regex)
2023-04-22 20:20:42 +0200 <tomsmeding> (was it readMaybe perhaps?)
2023-04-22 20:21:19 +0200skifigured it was a hand-rolled one, on top of `reads' .. perhaps an unjustified assumption
2023-04-22 20:22:00 +0200tomsmedingassumed they didn't reach for 'reads' when they haven't got Maybe down pat yet
2023-04-22 20:22:20 +0200 <monochrom> readMaybe is still easier to use than reads.
2023-04-22 20:24:44 +0200madjestic(~madjestic@88.159.247.120)
2023-04-22 20:25:09 +0200 <monochrom> NaN is also a candidate.
2023-04-22 20:25:50 +0200 <ski> > (reads :: ReadS Double) "NaN"
2023-04-22 20:25:51 +0200 <lambdabot> [(NaN,"")]
2023-04-22 20:26:14 +0200 <monochrom> I have a phone app that tells me how many cinema loyalty points I have (and more ways to earn/use points etc). One day something went wrong and it legit said "NaN" for my number of points. :)
2023-04-22 20:26:25 +0200 <monochrom> I think I still have the screenshot heh.
2023-04-22 20:26:51 +0200 <ski> one would have to wonder what operation they were using on them, to be able to arrive at that
2023-04-22 20:27:30 +0200 <tomsmeding> ski: probably parsing :p
2023-04-22 20:28:16 +0200 <monochrom> Probably just connection failure -> no string or unexpected string -> fromMaybe NaN.
2023-04-22 20:28:34 +0200 <xerox> +undefined ==> NaN
2023-04-22 20:29:24 +0200tomsmedingis somewhat amused that +undefined != +null
2023-04-22 20:30:38 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-04-22 20:35:39 +0200 <hammond> the thing im giving maybeRead is a result from a regex. btw. ::[[String]] then i do string !! 0 !! 5 which is prolly terrible.
2023-04-22 20:35:42 +0200 <hammond> horrible.
2023-04-22 20:36:08 +0200 <hammond> i like the maybe idea though.
2023-04-22 20:37:48 +0200 <hammond> but thx for ur discussion guize. have a hard time wrapping my head around this maybe construct.
2023-04-22 20:37:53 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-9154-7cd5-8877-b96c.rev.sfr.net) (Ping timeout: 260 seconds)
2023-04-22 20:38:05 +0200 <tomsmeding> hammond: is Haskell your first programming language?
2023-04-22 20:38:13 +0200 <hammond> Java
2023-04-22 20:38:21 +0200 <tomsmeding> hammond: do you know Optional in Java?
2023-04-22 20:38:42 +0200 <hammond> I heard about it when I was reading on Haskell.
2023-04-22 20:38:45 +0200 <tomsmeding> that's what Maybe is, just with a different name
2023-04-22 20:38:46 +0200 <tomsmeding> ah :D
2023-04-22 20:42:30 +0200 <ski> hammond : a simplistic way to think about it : we use `Maybe' in Haskell where something could validly be `null' in Java. of course, an object in Java could always be `null' unless you ensure it can't be, for any situation. in Haskell, if we don't use `Maybe', then it can't be `Nothing', which is much nicer
2023-04-22 20:43:41 +0200 <ski> hammond : "then i do string !! 0 !! 5 which is prolly terrible" -- is the list (of lists) expected to be a singleton list ? having an element list that has five elements ? in that case, you could match against `[[a,b,c,d,e]]' and use `e' instead
2023-04-22 20:46:57 +0200 <geekosaur> a,b,c,d,e,f?
2023-04-22 20:47:30 +0200 <ski> ah, yes :)
2023-04-22 20:51:07 +0200coot(~coot@213.134.170.228)
2023-04-22 20:51:42 +0200 <hammond> https://pastebin.com/DkLbq81y <--- I thought that would work fine for maybes, but the compiler tells me it gives me an extra term f1 in front of the Double. which idk what it is.
2023-04-22 20:51:51 +0200 <hammond> functor?
2023-04-22 20:52:46 +0200 <hammond> nice ski i see
2023-04-22 20:52:47 +0200 <geekosaur> why are yoiu using pure?
2023-04-22 20:52:55 +0200 <hammond> idk
2023-04-22 20:53:13 +0200 <geekosaur> that's what it can't figure out, it expects an Applicative type for pure to work\
2023-04-22 20:53:40 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-04-22 20:53:48 +0200 <monochrom> Did some kind of AI told you to? >:)
2023-04-22 20:53:50 +0200 <geekosaur> and if you remove that because you just want the Double, you have reinvented fromMaybe
2023-04-22 20:54:34 +0200 <hammond> oh
2023-04-22 20:54:38 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-22 20:54:56 +0200 <hammond> took half a day...
2023-04-22 20:55:00 +0200 <hammond> terrible
2023-04-22 20:55:02 +0200 <hammond> thx
2023-04-22 20:55:18 +0200 <monochrom> Sometimes I actually stick with that case-of and not change it to fromMaybe.
2023-04-22 20:56:01 +0200 <monochrom> More verbose but I like to see the branching and I don't like to remember fromMaybe vs maybe and argument order.
2023-04-22 20:56:19 +0200 <ski> also if you already have other matching
2023-04-22 20:57:24 +0200 <monochrom> Kind of my secret way of "how do I get rid of the parens in maybe xyz (\x -> blahblah)?" (Answer: use case-of and layout :) )
2023-04-22 20:59:59 +0200 <monochrom> Oddly enough when it's lists, whenever I see an opportunity for foldr, I'll take it.
2023-04-22 21:00:46 +0200 <monochrom> So I'm inconsistent. I write my own case-of instead of Maybe's catamorphism, and I use [a]'s catamorphism instead of my own case-of and recursion.
2023-04-22 21:02:05 +0200 <ski> perhaps there should be a `cata'-`of'
2023-04-22 21:02:22 +0200 <monochrom> That would be nice.
2023-04-22 21:02:42 +0200 <monochrom> That may also be Hagino's "data and co-data" language :)
2023-04-22 21:02:42 +0200 <ski> (Charity had something along those lines .. also for anamorphisms)
2023-04-22 21:02:48 +0200skigrins
2023-04-22 21:03:02 +0200 <tomsmeding> ski: where it automatically replaces the recursive positions with a recursive application of your cata-of block?
2023-04-22 21:03:13 +0200 <ski> something like that, yes
2023-04-22 21:03:47 +0200 <tomsmeding> I feel like that shouldn't be too hard to imitate with Generics and a type class, though perhaps with suboptimal syntax
2023-04-22 21:04:13 +0200 <monochrom> It's also the only kind of ADT pattern matching in calculi of constructions.
2023-04-22 21:04:35 +0200 <fbytez> https://paste.tomsmeding.com/J3vd2Jmr -- How should I be writing those `let`s to perform exhaustive matching?
2023-04-22 21:04:36 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-04-22 21:04:53 +0200 <tomsmeding> fbytez: use case instead?
2023-04-22 21:05:07 +0200 <tomsmeding> you can't give multiple options with 'let'
2023-04-22 21:05:23 +0200 <fbytez> Right. Would you mind giving me a small example, please.
2023-04-22 21:05:54 +0200 <fbytez> Or even just a link to some relevant documentation.
2023-04-22 21:06:43 +0200 <monochrom> My https://github.com/treblacy/ep/blob/main/ep.hs has an example.
2023-04-22 21:07:19 +0200 <fbytez> Thankyou.
2023-04-22 21:07:49 +0200 <tomsmeding> fbytez: https://paste.tomsmeding.com/PO2PWacT
2023-04-22 21:08:31 +0200 <ski> (details to be worked out .. would be nice to support para and apo too)
2023-04-22 21:08:38 +0200 <fbytez> Much appreciated, thanks.
2023-04-22 21:08:56 +0200 <tomsmeding> fbytez: if you don't need to run IO in the other cases, then you don't have to use '<- syntax and can simply use 'let (to, msg_query) = case ...'
2023-04-22 21:09:11 +0200 <tomsmeding> but then you'll need to supply an alternative value for those variables even in the non-matching case :)
2023-04-22 21:09:11 +0200 <fbytez> Right.
2023-04-22 21:09:22 +0200 <fbytez> Very helpful, thanks.
2023-04-22 21:09:53 +0200euandreh(~Thunderbi@189.6.18.7)
2023-04-22 21:10:04 +0200 <ski> fbytez : also, brackets redundant in `(strMax : query)' there
2023-04-22 21:10:20 +0200 <fbytez> Yeah, I noticed that after looking at monochrom's link.
2023-04-22 21:10:58 +0200 <fbytez> I think I had an example that used the brackets in mind when I wrote it.
2023-04-22 21:14:42 +0200paulpaul1076(~textual@95.29.5.210)
2023-04-22 21:15:18 +0200 <fbytez> tomsmeding, I think I recall someone telling me that `return` is deprecated and I ought to use `pure`, is that right?
2023-04-22 21:15:56 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-31e5-983b-3a75-bb14.rev.sfr.net)
2023-04-22 21:23:23 +0200 <tomsmeding> fbytez: "deprecated" is too strong. They mean the same thing (whenever both are valid, which is often in most code), and some people feel that 'return' should be removed from the Monad class. (I don't disagree.) There are fewer people that feel that noone should ever use 'return' any more.
2023-04-22 21:23:41 +0200 <tomsmeding> Let's say: some people believe that 'return' _should_ be deprecated. Others don't. :)
2023-04-22 21:24:13 +0200 <tomsmeding> but if you want to use 'pure', do your thing: whenever 'return' is valid, 'pure' is, so it's always a correct choice
2023-04-22 21:24:22 +0200 <tomsmeding> I used 'return' out of habit
2023-04-22 21:24:51 +0200 <ski> istr Idris supports syntax like `do A a <- getA | B -> error "it is B"; logShow a'
2023-04-22 21:25:08 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-31e5-983b-3a75-bb14.rev.sfr.net) (Ping timeout: 260 seconds)
2023-04-22 21:25:14 +0200 <tomsmeding> ski: agda has a similar thing, spelling your '|' as 'where'
2023-04-22 21:25:15 +0200 <ski> (can't seem to find documentation on it atm, though, apart from one other external page referring to the notation)
2023-04-22 21:25:21 +0200 <fbytez> tomsmeding, thanks.
2023-04-22 21:25:50 +0200 <tomsmeding> ( ski: encountered it today in some agda code in the wild, didn't know about it before https://github.com/jespercockx/ataca/blob/master/src/Ataca/Core.agda#L94 )
2023-04-22 21:26:04 +0200skiuses `return' when there's a `Monad' constraint
2023-04-22 21:26:13 +0200tomsmedingtoo
2023-04-22 21:26:30 +0200 <fbytez> `return` is little more specific than `pure`?
2023-04-22 21:26:38 +0200 <tomsmeding> :t return
2023-04-22 21:26:39 +0200 <lambdabot> Monad m => a -> m a
2023-04-22 21:26:40 +0200 <tomsmeding> :t pure
2023-04-22 21:26:42 +0200 <lambdabot> Applicative f => a -> f a
2023-04-22 21:26:48 +0200 <tomsmeding> every Monad is also an Applicative
2023-04-22 21:26:59 +0200 <tomsmeding> and the definition of 'return' is simply 'pure'
2023-04-22 21:27:00 +0200 <ski> a bit like using `liftM' (or `liftA') instead of `fmap' (or `(<$>)')
2023-04-22 21:27:12 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-d884-593f-d788-d6c8.rev.sfr.net)
2023-04-22 21:27:16 +0200 <ski> `return' predates `pure'
2023-04-22 21:27:18 +0200alexherbo2(~alexherbo@2a02-842a-8180-4601-d884-593f-d788-d6c8.rev.sfr.net) (Remote host closed the connection)
2023-04-22 21:27:22 +0200 <tomsmeding> or using 'map' instead of 'fmap' :)
2023-04-22 21:27:25 +0200 <ski> yep
2023-04-22 21:27:28 +0200 <fbytez> I think I get it, thanks.
2023-04-22 21:27:34 +0200 <ski> or `++' in place of `<>'
2023-04-22 21:28:07 +0200 <ski> (iirc, `mplus' used to be named `++', just like `fmap' was named `map')
2023-04-22 21:28:32 +0200 <ski> (this was in Haskell 1.4, i think)
2023-04-22 21:28:52 +0200 <ski> najs, tomsmeding
2023-04-22 21:29:49 +0200 <tomsmeding> you know what? I would like syntax for early-exiting out of a do block
2023-04-22 21:30:10 +0200 <ski> tomsmeding : does it continue with the next command, in both cases ? if it does, i assume it ensures that the same variables are bound
2023-04-22 21:30:11 +0200 <tomsmeding> and for shits and giggles make that syntax 'return'
2023-04-22 21:30:11 +0200 <geekosaur> glwt
2023-04-22 21:30:32 +0200 <ski> i've sometimes wanted `if' and `case' syntax in `do'
2023-04-22 21:31:07 +0200 <tomsmeding> ski: it would skip the rest of the do-block that the statement is in. 1. This clearly only works as compiler syntax because library code cannot know where the do-block ends. 2. This clearly only works if the do-block has return-type ()
2023-04-22 21:31:15 +0200 <ski> like `do if ... then {(x,y) <- ...} else {...; x <- ...; ...; y <- ...; ...}; ...'
2023-04-22 21:31:28 +0200 <tomsmeding> that would be neat too
2023-04-22 21:32:05 +0200 <ski> (also, `if' and `case', and `let' wrapping declarations (SML has `local'-`in'-`end' for the last thing))
2023-04-22 21:33:03 +0200 <ski> "2. This clearly only works if the do-block has return-type ()" ?
2023-04-22 21:33:41 +0200 <tomsmeding> ski: oh that's false, the "return statement" should of course take an argument
2023-04-22 21:33:44 +0200 <tomsmeding> ignore (2.)
2023-04-22 21:33:51 +0200nate1(~nate@98.45.169.16)
2023-04-22 21:33:58 +0200 <ski> why not `do x <- ... where {... -> return (... :: String)}; ...; return (... : String)' ?
2023-04-22 21:34:01 +0200 <ski> ah
2023-04-22 21:35:31 +0200jil(~user@vps-15050500.vps.ovh.net)
2023-04-22 21:35:35 +0200 <jil> hi
2023-04-22 21:35:42 +0200 <ski> lo
2023-04-22 21:36:23 +0200 <tomsmeding> geekosaur: it took until now to interpret your abbreviation, but yes lol
2023-04-22 21:38:36 +0200nate1(~nate@98.45.169.16) (Ping timeout: 255 seconds)
2023-04-22 21:40:32 +0200ss4(~wootehfoo@user/wootehfoot)
2023-04-22 21:40:51 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 255 seconds)
2023-04-22 21:43:17 +0200drdo(~drdo@bl14-14-164.dsl.telepac.pt) (Ping timeout: 250 seconds)
2023-04-22 21:55:37 +0200drdo(~drdo@bl14-14-164.dsl.telepac.pt)
2023-04-22 22:02:09 +0200wroathe(~wroathe@50.205.197.50)
2023-04-22 22:02:09 +0200wroathe(~wroathe@50.205.197.50) (Changing host)
2023-04-22 22:02:09 +0200wroathe(~wroathe@user/wroathe)
2023-04-22 22:05:16 +0200madjestic(~madjestic@88.159.247.120) (Quit: leaving)
2023-04-22 22:13:13 +0200Sgeo(~Sgeo@user/sgeo) (Ping timeout: 276 seconds)
2023-04-22 22:16:14 +0200merijn(~merijn@86.86.29.250)
2023-04-22 22:19:17 +0200madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2023-04-22 22:21:15 +0200jero98772(~jero98772@2800:484:1d84:9000::2)
2023-04-22 22:21:48 +0200gurkenglas(~gurkengla@dynamic-046-114-178-072.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
2023-04-22 22:22:03 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 248 seconds)
2023-04-22 22:24:02 +0200trev(~trev@user/trev) (Quit: trev)
2023-04-22 22:28:19 +0200michalz(~michalz@185.246.207.203)
2023-04-22 22:28:37 +0200gurkenglas(~gurkengla@dynamic-046-114-178-072.46.114.pool.telefonica.de)
2023-04-22 22:28:48 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2023-04-22 22:33:47 +0200img(~img@user/img)
2023-04-22 22:36:59 +0200opticblast(~Thunderbi@172.58.85.88)
2023-04-22 22:37:23 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-04-22 22:43:35 +0200ix(~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe)
2023-04-22 22:45:15 +0200cyphase(~cyphase@user/cyphase)
2023-04-22 22:48:23 +0200gmg(~user@user/gehmehgeh)
2023-04-22 22:50:59 +0200merijn(~merijn@86.86.29.250) (Ping timeout: 265 seconds)
2023-04-22 22:51:45 +0200coot(~coot@213.134.170.228) (Quit: coot)
2023-04-22 23:00:31 +0200dolio(~dolio@130.44.134.54) (Read error: Connection reset by peer)
2023-04-22 23:00:45 +0200dolio(~dolio@130.44.134.54)
2023-04-22 23:03:01 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-04-22 23:03:29 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-04-22 23:05:17 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-04-22 23:11:15 +0200L29Ah(~L29Ah@wikipedia/L29Ah) ()
2023-04-22 23:14:08 +0200ryantrinkle(~ryantrink@140.174.241.172) (Read error: Connection reset by peer)
2023-04-22 23:27:19 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-04-22 23:33:14 +0200ryantrinkle(~ryantrink@140.174.253.180)
2023-04-22 23:34:39 +0200Guest26(~Guest26@85.249.45.137)
2023-04-22 23:34:46 +0200 <Guest26> @pl
2023-04-22 23:34:46 +0200 <lambdabot> (line 1, column 1):
2023-04-22 23:34:46 +0200 <lambdabot> unexpected end of input
2023-04-22 23:34:46 +0200 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
2023-04-22 23:35:02 +0200 <Guest26> @pl (+) (toBits $ (/=) (rem a 2) $ rem b 2) $ (*) 2 $ xorWorker (div a 2) (div b 2) $ l - 1
2023-04-22 23:35:02 +0200 <lambdabot> toBits (rem a 2 /= rem b 2) + 2 * xorWorker (div a 2) (div b 2) (l - 1)
2023-04-22 23:35:24 +0200 <Guest26> @pl xorWorker a b l = (+) (toBits $ (/=) (rem a 2) $ rem b 2) $ (*) 2 $ xorWorker (div a 2) (div b 2) $ l - 1
2023-04-22 23:35:24 +0200 <lambdabot> xorWorker = fix (ap (ap . (((.) . (+) . toBits) .) . (. flip rem 2) . (/=) . flip rem 2) . ((((2 *) .) .) .) . flip flip (subtract 1) . ((flip . ((.) .)) .) . flip flip (flip div 2) . ((.) .) . (.
2023-04-22 23:35:25 +0200 <lambdabot> flip div 2))
2023-04-22 23:35:34 +0200 <Guest26> what the
2023-04-22 23:36:16 +0200 <Guest26> @pl countBits a = (+)1 $ countBits $ div a 2
2023-04-22 23:36:16 +0200 <lambdabot> countBits = fix (((1 +) .) . (. flip div 2))
2023-04-22 23:36:23 +0200 <Guest26> @pf
2023-04-22 23:36:23 +0200 <lambdabot> Maybe you meant: pl bf
2023-04-22 23:36:28 +0200 <jade[m]> lmaoo
2023-04-22 23:36:45 +0200 <int-e> Guest26: it's only semi-jokingly called "pointless"
2023-04-22 23:37:25 +0200 <Guest26> how do i make the function pointful
2023-04-22 23:37:38 +0200 <int-e> @unpl fix (((1 +) .) . (. flip div 2))
2023-04-22 23:37:38 +0200 <lambdabot> fix (\ x x0 -> 1 + x (div x0 2))
2023-04-22 23:37:38 +0200 <Guest26> i remember there being a command in lambdabot for that
2023-04-22 23:38:54 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-04-22 23:38:54 +0200 <int-e> . o O ( countBits _ = undefined )
2023-04-22 23:39:29 +0200 <int-e> :t bitSize
2023-04-22 23:39:29 +0200 <lambdabot> Bits a => a -> Int
2023-04-22 23:39:34 +0200 <int-e> :t popCount
2023-04-22 23:39:35 +0200 <lambdabot> Bits a => a -> Int
2023-04-22 23:39:59 +0200 <int-e> > map ($ 10) [bitSize, popCount]
2023-04-22 23:40:01 +0200 <lambdabot> [*Exception: Data.Bits.bitSize(Integer)
2023-04-22 23:40:06 +0200 <int-e> Oh.
2023-04-22 23:41:42 +0200emmanuelux_(~emmanuelu@user/emmanuelux)
2023-04-22 23:42:04 +0200 <int-e> (I forgot that `bitSize` returns the number of bits in a finite integer type, rather than, say, the most significant bit of a value.)
2023-04-22 23:42:18 +0200 <int-e> :t countLeadingZeros
2023-04-22 23:42:19 +0200 <lambdabot> FiniteBits b => b -> Int
2023-04-22 23:42:25 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-04-22 23:42:51 +0200Sgeo(~Sgeo@user/sgeo)
2023-04-22 23:44:32 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 246 seconds)
2023-04-22 23:53:51 +0200michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2023-04-22 23:56:34 +0200ss4(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2023-04-22 23:56:34 +0200heraldo(~heraldo@user/heraldo)
2023-04-22 23:57:38 +0200unit73e(~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36)