2023/03/06

2023-03-06 00:00:05 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-06 00:09:39 +0100gastus(~gastus@185.6.123.155) (Ping timeout: 255 seconds)
2023-03-06 00:09:47 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-03-06 00:09:47 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-03-06 00:09:47 +0100finn_elijaFinnElija
2023-03-06 00:11:09 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2023-03-06 00:11:26 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-06 00:17:19 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-06 00:20:17 +0100johnjaye(~pi@173.209.64.74)
2023-03-06 00:20:42 +0100 <johnjaye> i'm looking at the ghcup install script. as far as i can see it sets the prefix itself to $HOME/.ghcup correct?
2023-03-06 00:20:46 +0100 <johnjaye> so there is no way to install somewhere else?
2023-03-06 00:23:41 +0100michalz(~michalz@185.246.204.105) (Remote host closed the connection)
2023-03-06 00:24:44 +0100solzao(~zelador@187.61.153.177)
2023-03-06 00:25:05 +0100mrcsno(~mrcsno@user/mrcsno)
2023-03-06 00:25:42 +0100 <monochrom> See https://www.haskell.org/ghcup/guide/#env-variables GHCUP_INSTALL_BASE_PREFIX
2023-03-06 00:25:57 +0100 <monochrom> or even GHCUP_USE_XDG_DIRS
2023-03-06 00:27:06 +0100Tuplanolla(~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
2023-03-06 00:27:21 +0100 <mauke> the relevant lines in the install script are 37-55
2023-03-06 00:29:53 +0100 <mauke> heh. "see XDG support above" (actual section is immediately below)
2023-03-06 00:30:36 +0100 <monochrom> oh haha
2023-03-06 00:34:31 +0100king_gs(~Thunderbi@187.201.41.239)
2023-03-06 00:39:53 +0100abhixec(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2023-03-06 00:39:59 +0100irrgit_(~irrgit@176.113.74.130) (Remote host closed the connection)
2023-03-06 00:41:02 +0100irrgit_(~irrgit@146.70.27.218)
2023-03-06 00:42:19 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8)
2023-03-06 00:42:37 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-03-06 00:51:38 +0100 <hammond> so i'm learning haskell, and i saw this example init xs = reverse (tail(reverse xs)) and the lecturer says not to worry about how many functions you end up using the haskell compiler will make it effecient in the end.
2023-03-06 00:51:45 +0100 <johnjaye> monochrom: ah so i need to just insert my own value for that variable after line 55?
2023-03-06 00:52:59 +0100 <hammond> I was wondering if I repeat the reverse tail functions a million times in my code would the compiler resolve it to the same thing in the end?
2023-03-06 00:53:13 +0100 <mauke> hammond: same as what?
2023-03-06 00:53:49 +0100 <hammond> not reverse tail, reverse reverse.
2023-03-06 00:54:04 +0100 <hammond> just calling the function reverse.
2023-03-06 00:54:23 +0100 <hpc> hammond: doing anything a million times is going be slow, but the point is these aren't like say, python functions
2023-03-06 00:54:33 +0100 <hpc> in python, function calls are object lookups and all sorts of other goofy stuff
2023-03-06 00:54:33 +0100 <mauke> I don't think it would because the difference would be observable
2023-03-06 00:54:52 +0100 <hpc> in c++, function calls might be a bunch of pointer dereferencing because it's a virtual function
2023-03-06 00:54:58 +0100 <mauke> that is, reverse . reverse is not the identity on infinite lists
2023-03-06 00:55:10 +0100 <hpc> in haskell, a function call might be just a jmp
2023-03-06 00:55:30 +0100 <davean> hpc: Composing 1 million reverses and calling it might be half a million calls to id, which is 0 calls to id. Should be fast :)
2023-03-06 00:55:44 +0100 <hpc> > fix id -- infinite speed!
2023-03-06 00:55:46 +0100 <lambdabot> *Exception: <<loop>>
2023-03-06 00:55:47 +0100 <hpc> :P
2023-03-06 00:56:05 +0100 <mauke> > reverse (reverse [0 ..])
2023-03-06 00:56:12 +0100 <jackdk> > fix error -- remains my favourite
2023-03-06 00:56:15 +0100 <lambdabot> mueval-core: Time limit exceeded
2023-03-06 00:56:15 +0100 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex...
2023-03-06 00:56:16 +0100mechap(~mechap@user/mechap) (Quit: WeeChat 3.8)
2023-03-06 00:56:28 +0100 <hpc> basically, the point is worrying about function calls in haskell is like worrying about semicolons in java
2023-03-06 00:57:00 +0100 <hammond> well
2023-03-06 00:57:02 +0100 <mauke> if you use PHP, you never have to use semicolons
2023-03-06 00:57:17 +0100 <mauke> that's what makes it so efficient
2023-03-06 00:57:43 +0100 <mauke> > init [0 ..]
2023-03-06 00:57:45 +0100 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2...
2023-03-06 00:57:49 +0100 <jackdk> PHP = Purescript/Haskell/Postgres stack?
2023-03-06 00:58:32 +0100 <mauke> instead of ; you just write ?><?php
2023-03-06 01:00:31 +0100 <hammond> I'm just trying to see if the compiler can tell this, two reverses on a list is the same as though i didn't do anything to it, and instead of calling the function, it decides not to call it at all.
2023-03-06 01:00:48 +0100 <monochrom> Sigh your lecturer is wrong too.
2023-03-06 01:00:59 +0100 <hammond> ok
2023-03-06 01:01:01 +0100 <mauke> it is not the same as doing nothing
2023-03-06 01:01:06 +0100 <mauke> see my example above
2023-03-06 01:01:06 +0100 <monochrom> The compiler doesn't know this.
2023-03-06 01:01:11 +0100 <hammond> so i have to be careful
2023-03-06 01:01:27 +0100 <monochrom> The real reason you don't worry about efficiency at this stage is solely that you're just starting.
2023-03-06 01:01:46 +0100 <mauke> yes, but more for reasons of "will this terminate at all?", not efficiency per se
2023-03-06 01:02:01 +0100 <monochrom> We don't even talk about performance in front of C beginners.
2023-03-06 01:02:58 +0100euandreh(~Thunderbi@189.6.18.7) (Quit: euandreh)
2023-03-06 01:03:40 +0100johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-03-06 01:04:06 +0100jwiegley(~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2023-03-06 01:04:32 +0100 <monochrom> At the beginner level the most you can do is stay at the leve of big-O.
2023-03-06 01:04:37 +0100 <johnjaye> surprised ghc is written in c, i thought it would be c++
2023-03-06 01:05:24 +0100 <mauke> ?? it's written in Haskell
2023-03-06 01:05:24 +0100 <lambdabot> it's written in Haskell
2023-03-06 01:05:49 +0100 <johnjaye> well don't tell wikipedia that.
2023-03-06 01:05:56 +0100 <johnjaye> > Written in Haskell and C
2023-03-06 01:05:58 +0100 <lambdabot> <hint>:1:9: error: parse error on input ‘in’
2023-03-06 01:06:54 +0100 <monochrom> > "written in Haskell and C" == "written in C"
2023-03-06 01:06:56 +0100 <lambdabot> False
2023-03-06 01:07:34 +0100 <monochrom> (P.S. No, no one knows what you "meant".)
2023-03-06 01:08:27 +0100mauke_(~mauke@user/mauke)
2023-03-06 01:08:29 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9169:384f:bf1b:a487) (Remote host closed the connection)
2023-03-06 01:08:33 +0100 <hpc> ghc is written in c the same way gcc is written in assembly
2023-03-06 01:08:44 +0100 <mauke_> "GHC itself is written in Haskell,[11] but the runtime system for Haskell, essential to run programs, is written in C and C--."
2023-03-06 01:08:50 +0100 <mauke_> as I was saying
2023-03-06 01:09:35 +0100mauke(~mauke@user/mauke) (Ping timeout: 248 seconds)
2023-03-06 01:09:36 +0100mauke_mauke
2023-03-06 01:10:36 +0100 <johnjaye> so the c isn't necessarily even part of the algorithm, it's just glue to enable you to run the compiler?
2023-03-06 01:11:02 +0100 <johnjaye> like the gnu assembler makes those start and exit routines when you assemble a file
2023-03-06 01:11:34 +0100 <dsal> You can just look. https://github.com/ghc/ghc has a "Languages" section which describes the repo as a whole.
2023-03-06 01:12:30 +0100 <mauke> ... which is a wild guess and highly inaccurate
2023-03-06 01:13:23 +0100 <mauke> for example, all the tests are mislabeled as "Terra"
2023-03-06 01:13:23 +0100king_gs(~Thunderbi@187.201.41.239) (Read error: Connection reset by peer)
2023-03-06 01:14:50 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-03-06 01:16:16 +0100 <dsal> Well, sure, but it takes you to what it considers C code and you can look around. I don't think it confuses C code for Haskell code.
2023-03-06 01:17:49 +0100 <mauke> if you put it in a file called something.c, sure it will
2023-03-06 01:18:06 +0100 <dsal> Does the ghc code do that a lot?
2023-03-06 01:19:39 +0100mrcsnomrcsno_afk
2023-03-06 01:20:03 +0100 <mauke> probably not, but are you going to check all the .c and .h files? :-)
2023-03-06 01:20:15 +0100CiaoSen(~Jura@p200300c9570e91002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-06 01:20:44 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Remote host closed the connection)
2023-03-06 01:20:46 +0100 <mauke> oh hell yeah, it misdetects 118 files as Raku
2023-03-06 01:20:51 +0100 <mauke> (they're actually Python)
2023-03-06 01:21:28 +0100 <dsal> No. Just pointing out that the code's there if someone wants to ponder which parts are haskell and which parts are c. You don't have to trust the github tool, but it does take you things it identifies.
2023-03-06 01:22:26 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-06 01:22:26 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-06 01:22:26 +0100wroathe(~wroathe@user/wroathe)
2023-03-06 01:24:00 +0100gurkenglas(~gurkengla@dynamic-046-114-177-117.46.114.pool.telefonica.de) (Ping timeout: 248 seconds)
2023-03-06 01:24:00 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-06 01:27:51 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
2023-03-06 01:28:51 +0100acidjnk_new(~acidjnk@p200300d6e715c44791275394656fcc6d.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-03-06 01:29:06 +0100stackdroid18(14094@de1.hashbang.sh) (Quit: hasta la vista... tchau!)
2023-03-06 01:33:14 +0100mmhat(~mmh@p200300f1c72dcd21ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-06 01:34:40 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2023-03-06 01:35:42 +0100bilegeek_(~bilegeek@161.sub-174-208-233.myvzw.com)
2023-03-06 01:36:10 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-06 01:37:30 +0100jumper149(~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.8)
2023-03-06 01:38:12 +0100bilegeek(~bilegeek@2600:1008:b021:4218:6410:3e2f:ccc:adc4) (Ping timeout: 255 seconds)
2023-03-06 01:38:53 +0100pera(~pera@user/pera) (Quit: leaving)
2023-03-06 01:43:56 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9169:384f:bf1b:a487)
2023-03-06 02:03:41 +0100andrewboltachev(~andrey@178.141.199.8) (Quit: Leaving.)
2023-03-06 02:10:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-03-06 02:13:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 02:17:04 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-03-06 02:20:09 +0100xff0x(~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 255 seconds)
2023-03-06 02:29:04 +0100grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
2023-03-06 02:47:09 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-06 02:51:25 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-06 03:02:44 +0100sagax(~sagax_nb@user/sagax) (Quit: Konversation terminated!)
2023-03-06 03:10:04 +0100alecs(~alecs@host-79-44-188-195.retail.telecomitalia.it) (Quit: WeeChat 3.8)
2023-03-06 03:10:10 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2023-03-06 03:11:12 +0100vglfr(~vglfr@145.224.100.65) (Ping timeout: 248 seconds)
2023-03-06 03:21:22 +0100bilegeek_(~bilegeek@161.sub-174-208-233.myvzw.com) (Remote host closed the connection)
2023-03-06 03:21:24 +0100azimut_(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2023-03-06 03:21:41 +0100bilegeek_(~bilegeek@161.sub-174-208-233.myvzw.com)
2023-03-06 03:21:56 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-06 03:23:18 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2023-03-06 03:23:57 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
2023-03-06 03:24:37 +0100Lord_of_Life_Lord_of_Life
2023-03-06 03:31:20 +0100justsomeguy(~justsomeg@user/justsomeguy)
2023-03-06 03:33:30 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-03-06 03:45:37 +0100emmanuelux_(~emmanuelu@user/emmanuelux)
2023-03-06 03:47:53 +0100Lycurgus(~juan@user/Lycurgus)
2023-03-06 03:48:42 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds)
2023-03-06 03:49:06 +0100emmanuelux_(~emmanuelu@user/emmanuelux) (Client Quit)
2023-03-06 03:51:12 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 248 seconds)
2023-03-06 03:52:46 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-03-06 03:55:32 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2023-03-06 03:57:15 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2023-03-06 04:03:58 +0100razetime(~Thunderbi@117.254.34.243)
2023-03-06 04:07:34 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-03-06 04:07:34 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-03-06 04:07:34 +0100finn_elijaFinnElija
2023-03-06 04:14:51 +0100hugo(znc@verdigris.lysator.liu.se)
2023-03-06 04:20:31 +0100mmhat(~mmh@p200300f1c72dcd21ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-06 04:23:16 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2023-03-06 04:32:37 +0100td_(~td@i5387093C.versanet.de) (Ping timeout: 268 seconds)
2023-03-06 04:34:22 +0100td_(~td@i53870927.versanet.de)
2023-03-06 04:34:40 +0100mmhat(~mmh@p200300f1c7052b40ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-06 04:37:08 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2023-03-06 04:41:58 +0100razetime(~Thunderbi@117.254.34.243) (Remote host closed the connection)
2023-03-06 04:42:57 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-06 04:43:46 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 04:48:39 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-06 04:54:50 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-06 04:56:17 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2023-03-06 04:56:51 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2023-03-06 05:04:37 +0100mbuf(~Shakthi@49.207.178.186)
2023-03-06 05:07:59 +0100tusko(~yeurt@user/tusko)
2023-03-06 05:09:16 +0100 <tusko> I am brand-new to Haskell. I'm trying to compile hello world. It seems I can do this with `ghc --dynamic main.hs`, but I also use emacs with haskell-mode and when I isssue haskell-compile it tries to build this file with cabal.
2023-03-06 05:09:31 +0100 <tusko> Is cabal usually involved in building software written in Haskell?
2023-03-06 05:09:51 +0100 <sclv> yes
2023-03-06 05:10:44 +0100 <tusko> Ok, so I will need to plan to write a .cabal file in every project directory. Is there a minimal example for what this file should contain?
2023-03-06 05:11:19 +0100 <sclv> “cabal init” will generate one for you
2023-03-06 05:11:32 +0100 <mauke> https://cabal.readthedocs.io/en/stable/getting-started.html
2023-03-06 05:12:08 +0100 <tusko> thank you very much
2023-03-06 05:12:09 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-03-06 05:12:50 +0100 <mauke> why --dynamic, though?
2023-03-06 05:14:23 +0100razetime(~Thunderbi@117.254.34.243)
2023-03-06 05:15:42 +0100 <tusko> It was telling me it couldn't find Prelude
2023-03-06 05:15:48 +0100 <tusko> that made it find
2023-03-06 05:16:15 +0100 <mauke> interesting. what OS is this on?
2023-03-06 05:17:26 +0100Sgeo(~Sgeo@user/sgeo)
2023-03-06 05:17:59 +0100trev(~trev@user/trev)
2023-03-06 05:18:04 +0100 <tusko> UwUntu
2023-03-06 05:18:52 +0100johnjaye(~pi@173.209.64.74) (Ping timeout: 268 seconds)
2023-03-06 05:19:36 +0100 <jackdk> what
2023-03-06 05:20:12 +0100johnjaye(~pi@173.209.64.74)
2023-03-06 05:21:25 +0100 <mauke> https://uwuntuos.site/about-uwuntu/
2023-03-06 05:22:55 +0100razetime(~Thunderbi@117.254.34.243) (Ping timeout: 248 seconds)
2023-03-06 05:23:48 +0100grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2023-03-06 05:26:28 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-03-06 05:30:42 +0100ix(~ix@213.205.192.31)
2023-03-06 05:39:25 +0100razetime(~Thunderbi@117.254.34.243)
2023-03-06 05:42:51 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
2023-03-06 05:43:54 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 255 seconds)
2023-03-06 05:45:14 +0100cassaundra(~cassaundr@c-73-25-18-25.hsd1.or.comcast.net)
2023-03-06 05:45:23 +0100cassaundra(~cassaundr@c-73-25-18-25.hsd1.or.comcast.net) (Changing host)
2023-03-06 05:45:23 +0100cassaundra(~cassaundr@user/cassaundra)
2023-03-06 06:06:40 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
2023-03-06 06:09:15 +0100razetime(~Thunderbi@117.254.34.243) (Quit: See You Space Cowboy)
2023-03-06 06:12:21 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-03-06 06:13:11 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-03-06 06:24:23 +0100jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-06 06:26:36 +0100 <Inst> ugh
2023-03-06 06:26:42 +0100 <Inst> is the limitation on unboxed literals still extant?
2023-03-06 06:26:52 +0100 <Inst> also, might there be a reason I might not want to use unboxed types?
2023-03-06 06:27:06 +0100 <Inst> unboxed tuples, rather, i.e, it has to be immediately consumed, can't be affixed to a value
2023-03-06 06:31:41 +0100adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2023-03-06 06:32:02 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-03-06 06:32:09 +0100 <Inst> groan, this is a pain, it turns out I can't assign unboxed tuples to a variable
2023-03-06 06:32:21 +0100 <Inst> best I can do is to have a datatype made from unboxed values, and it'll still be a lifted type
2023-03-06 06:36:39 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 255 seconds)
2023-03-06 06:38:46 +0100Midjak(~Midjak@82.66.147.146)
2023-03-06 06:41:01 +0100jakalx(~jakalx@base.jakalx.net)
2023-03-06 06:41:05 +0100ghostbuster(~admin@user/ghostbuster) (Quit: WeeChat 3.6)
2023-03-06 06:45:17 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 06:47:03 +0100razetime(~Thunderbi@117.254.34.243)
2023-03-06 06:47:55 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17) (Ping timeout: 248 seconds)
2023-03-06 06:48:53 +0100bilegeek_(~bilegeek@161.sub-174-208-233.myvzw.com) (Quit: Leaving)
2023-03-06 06:53:14 +0100razetime(~Thunderbi@117.254.34.243) (Quit: See You Space Cowboy)
2023-03-06 06:56:26 +0100Square2(~Square4@user/square)
2023-03-06 06:57:44 +0100abhixec(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
2023-03-06 07:05:48 +0100jinsun(~jinsun@user/jinsun) (Ping timeout: 255 seconds)
2023-03-06 07:07:20 +0100mncheck(~mncheck@193.224.205.254)
2023-03-06 07:11:41 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2023-03-06 07:17:28 +0100tubogram44(~tubogram@user/tubogram) (Quit: See ya later!)
2023-03-06 07:18:58 +0100kenran(~user@user/kenran)
2023-03-06 07:19:07 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-06 07:24:58 +0100andrewboltachev(~andrey@178.141.199.8)
2023-03-06 07:25:11 +0100tubogram44(~tubogram@user/tubogram)
2023-03-06 07:26:00 +0100mcglk(~mcglk@131.191.19.145) (Quit: (seeya))
2023-03-06 07:33:17 +0100tdammers(~tdammers@219-131-178-143.ftth.glasoperator.nl)
2023-03-06 07:34:32 +0100ix(~ix@213.205.192.31) (Ping timeout: 268 seconds)
2023-03-06 07:44:41 +0100ix(~ix@213.205.192.31)
2023-03-06 07:47:32 +0100vglfr(~vglfr@145.224.100.65)
2023-03-06 07:48:01 +0100mcglk(~mcglk@131.191.19.145)
2023-03-06 07:48:02 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-03-06 07:50:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-06 07:50:34 +0100Maxdamantus(~Maxdamant@user/maxdamantus) (Quit: Lost terminal)
2023-03-06 07:57:07 +0100Maxdamantus(~Maxdamant@user/maxdamantus)
2023-03-06 08:02:00 +0100freeside_(~mengwong@103.252.202.85) (Ping timeout: 260 seconds)
2023-03-06 08:04:10 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-06 08:10:14 +0100califax(~califax@user/califx) (Ping timeout: 255 seconds)
2023-03-06 08:11:33 +0100califax(~califax@user/califx)
2023-03-06 08:15:21 +0100jakalx(~jakalx@base.jakalx.net) ()
2023-03-06 08:15:38 +0100AmyMalik(ellenor@callbox.trd.is) (Quit: Bye Open Projects!)
2023-03-06 08:16:11 +0100jakalx(~jakalx@base.jakalx.net)
2023-03-06 08:17:22 +0100Ellenor(ellenor@callbox.trd.is)
2023-03-06 08:18:19 +0100pyook(~pyook@user/puke)
2023-03-06 08:19:32 +0100 <dminuoso> 08:15:02 Inst | [05:26:51] also, might there be a reason I might not want to use unboxed types?
2023-03-06 08:19:37 +0100 <dminuoso> Premature optimization
2023-03-06 08:20:03 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 255 seconds)
2023-03-06 08:20:10 +0100 <Inst> this is going to be a rewrite
2023-03-06 08:20:31 +0100 <Inst> also does anyone know if there's good tutorials for streamly? I'm trying to learn the library right now, not sure how to use it in such a way that I don't blow up my face
2023-03-06 08:20:33 +0100dcoutts(~duncan@82.15.57.30) (Ping timeout: 252 seconds)
2023-03-06 08:21:21 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 08:21:23 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 08:24:09 +0100 <jackdk> My answer to any streaming question more complicated than "I want to connect this conduit source to this conduit sink": Just use `streaming`.
2023-03-06 08:33:39 +0100 <dminuoso> jackdk: I feel like streaming has an unintuitive interface for a beginner.
2023-03-06 08:34:03 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-06 08:34:37 +0100 <[exa]> beginners ain't gonna magically become advanced themselves
2023-03-06 08:34:42 +0100 <dminuoso> `Stream can be used wherever FreeT or Coroutine are used.`
2023-03-06 08:34:55 +0100 <dminuoso> If his is the introductory line of `streaming`, I really do wonder whether the authors do not want fresh beginners to use their library.
2023-03-06 08:35:41 +0100 <dminuoso> (The rest of the paragraph isnt much better)
2023-03-06 08:36:13 +0100ix(~ix@213.205.192.31) (Read error: Connection reset by peer)
2023-03-06 08:37:20 +0100jinsun(~jinsun@user/jinsun)
2023-03-06 08:38:14 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2023-03-06 08:38:28 +0100EllenorAmyMalik
2023-03-06 08:38:45 +0100 <dminuoso> Im sure that if you understand streaming, its easy to work with. But really the entire documentation of it seems to invite only users who already have semigroupoids, kan-extensions and free in their dependencies.
2023-03-06 08:39:49 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-03-06 08:41:21 +0100ix(~ix@213.205.192.31)
2023-03-06 08:42:59 +0100 <jackdk> The description on its hackage page is a lot better
2023-03-06 08:43:48 +0100Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2023-03-06 08:47:18 +0100ix(~ix@213.205.192.31) (Read error: Connection reset by peer)
2023-03-06 08:48:47 +0100michalz(~michalz@185.246.204.107)
2023-03-06 08:52:30 +0100zeenk(~zeenk@2a02:2f04:a20d:f900::7fe)
2023-03-06 08:52:35 +0100ix(~ix@213.205.192.31)
2023-03-06 08:57:15 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2023-03-06 08:57:19 +0100freeside(~mengwong@103.252.202.85)
2023-03-06 08:57:55 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-03-06 08:59:58 +0100random-jellyfish(~random-je@user/random-jellyfish)
2023-03-06 09:01:17 +0100gastus(~gastus@185.6.123.188)
2023-03-06 09:04:59 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-03-06 09:07:30 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-06 09:14:15 +0100acidjnk_new(~acidjnk@p200300d6e715c447314bc12d87d6546d.dip0.t-ipconnect.de)
2023-03-06 09:14:31 +0100 <mauke> heh. streaming has atrocious documentation
2023-03-06 09:15:13 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 09:15:14 +0100 <mauke> a good chunk of it is unhinged ranting, and halfway through it just stops
2023-03-06 09:15:34 +0100 <mauke> like, mid-sentence
2023-03-06 09:17:20 +0100 <mauke> and yeah, it is written for people who already know and understand the library
2023-03-06 09:18:34 +0100akegalj(~akegalj@93-138-138-203.adsl.net.t-com.hr)
2023-03-06 09:18:34 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Read error: Connection reset by peer)
2023-03-06 09:18:46 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 09:22:31 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-06 09:24:19 +0100irrgit__(~irrgit@146.70.27.242)
2023-03-06 09:24:44 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2023-03-06 09:24:52 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:1d87:971:a878:a02f)
2023-03-06 09:25:15 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-06 09:27:16 +0100irrgit_(~irrgit@146.70.27.218) (Ping timeout: 252 seconds)
2023-03-06 09:28:16 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Remote host closed the connection)
2023-03-06 09:29:28 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 09:37:21 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net)
2023-03-06 09:43:17 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-03-06 09:45:04 +0100MasseR46(thelounge@2001:bc8:47a0:1521::1) (Quit: The Lounge - https://thelounge.chat)
2023-03-06 09:46:47 +0100MasseR46(thelounge@2001:bc8:47a0:1521::1)
2023-03-06 09:48:05 +0100 <freeside> "unexpected end to stream"
2023-03-06 09:49:19 +0100wrengr(~wrengr@201.59.83.34.bc.googleusercontent.com) (Remote host closed the connection)
2023-03-06 09:55:29 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2023-03-06 10:00:06 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-06 10:01:50 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
2023-03-06 10:02:24 +0100lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-06 10:02:39 +0100jespada(~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
2023-03-06 10:03:22 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-03-06 10:05:54 +0100 <mauke> https://hackage.haskell.org/package/streaming-0.2.3.1/docs/Streaming.html#v:untilJust
2023-03-06 10:06:31 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Remote host closed the connection)
2023-03-06 10:11:31 +0100npm_i_kurbus(~npm_i_kur@user/kurbus)
2023-03-06 10:16:17 +0100npm_i_kurbus(~npm_i_kur@user/kurbus) (Client Quit)
2023-03-06 10:17:03 +0100 <dminuoso> The one thing that makes servant bearable, is that it has a very easy documentation detailing how to get started an how to do simple things.
2023-03-06 10:17:06 +0100Inst(~Inst@2601:6c4:4081:54f0:4dc:ae3f:dfd:1774) (Read error: Connection reset by peer)
2023-03-06 10:17:10 +0100 <dminuoso> And very thoroguh documentation.
2023-03-06 10:17:23 +0100 <dminuoso> It makes you almost not even notice the sheer complexity of the type tricks that happen.
2023-03-06 10:17:37 +0100 <dminuoso> At any rate, this is a solveable problem for `streaming`.
2023-03-06 10:18:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-03-06 10:20:57 +0100Guest65(~Guest65@192.234.91.20)
2023-03-06 10:22:38 +0100xiliuya(~xiliuya@user/xiliuya)
2023-03-06 10:23:14 +0100gehmehgeh(~user@user/gehmehgeh)
2023-03-06 10:23:55 +0100cfricke(~cfricke@user/cfricke)
2023-03-06 10:26:56 +0100gehmehgehgmg
2023-03-06 10:27:40 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de) (Quit: leaving)
2023-03-06 10:31:27 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9169:384f:bf1b:a487) (Remote host closed the connection)
2023-03-06 10:31:33 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-06 10:40:21 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net) (Read error: Connection reset by peer)
2023-03-06 10:40:35 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net)
2023-03-06 10:45:16 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2023-03-06 10:46:06 +0100acidjnk_new(~acidjnk@p200300d6e715c447314bc12d87d6546d.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2023-03-06 10:50:46 +0100zeenk(~zeenk@2a02:2f04:a20d:f900::7fe) (Quit: Konversation terminated!)
2023-03-06 11:04:49 +0100xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
2023-03-06 11:05:22 +0100mixfix41(~sdenynine@user/mixfix41)
2023-03-06 11:09:36 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Remote host closed the connection)
2023-03-06 11:09:47 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 255 seconds)
2023-03-06 11:10:14 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
2023-03-06 11:10:39 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 11:11:02 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Remote host closed the connection)
2023-03-06 11:11:30 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 11:13:40 +0100xiliuya(~xiliuya@user/xiliuya) (Quit: leaving)
2023-03-06 11:14:34 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 11:18:27 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
2023-03-06 11:21:05 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net)
2023-03-06 11:24:28 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2023-03-06 11:27:43 +0100mmhat(~mmh@p200300f1c7052b40ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-06 11:28:05 +0100mmhat(~mmh@p200300f1c7052b52ee086bfffe095315.dip0.t-ipconnect.de)
2023-03-06 11:28:16 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Read error: Connection reset by peer)
2023-03-06 11:28:26 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 11:29:35 +0100Guest65(~Guest65@192.234.91.20) (Quit: Client closed)
2023-03-06 11:29:36 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net) (Ping timeout: 255 seconds)
2023-03-06 11:30:27 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-06 11:30:37 +0100__monty__(~toonn@user/toonn)
2023-03-06 11:31:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9169:384f:bf1b:a487)
2023-03-06 11:37:50 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:9169:384f:bf1b:a487) (Ping timeout: 260 seconds)
2023-03-06 11:47:33 +0100cheater_(~Username@user/cheater)
2023-03-06 11:48:12 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-03-06 11:49:30 +0100cheater__(~Username@user/cheater)
2023-03-06 11:50:29 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-06 11:50:35 +0100cheater__cheater
2023-03-06 11:52:25 +0100cheater_(~Username@user/cheater) (Ping timeout: 260 seconds)
2023-03-06 11:56:25 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2023-03-06 11:56:47 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-03-06 12:08:05 +0100xff0x(~xff0x@ai098135.d.east.v6connect.net)
2023-03-06 12:10:17 +0100acidjnk_new(~acidjnk@p200300d6e715c447314bc12d87d6546d.dip0.t-ipconnect.de)
2023-03-06 12:11:00 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 255 seconds)
2023-03-06 12:11:37 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 12:11:56 +0100ix(~ix@213.205.192.31) (Ping timeout: 246 seconds)
2023-03-06 12:13:26 +0100 <fendor[m]> small lens question, when I have a lens like (lens .~ val) orig, what's the infix notation of that?
2023-03-06 12:13:27 +0100 <Jade[m]1> Why do I get an error for `instance Num a => Num (a -> a) where` (`Illegal instance declaration for ‘Num (a -> a)’ (All instance types must be of the form (T a1 ... an)`)
2023-03-06 12:13:27 +0100 <fendor[m]> I came up with `orig & lens .~ val`
2023-03-06 12:13:27 +0100 <fendor[m]> just now
2023-03-06 12:13:27 +0100 <fendor[m]> good enough or could it be better?
2023-03-06 12:15:29 +0100 <kuribas> Jade[m]1: most likely you are missing an argument
2023-03-06 12:15:43 +0100 <kuribas> Jade[m]1: to a function that returns an integer.
2023-03-06 12:16:38 +0100 <kuribas> > (*) 2 + 3
2023-03-06 12:16:39 +0100 <lambdabot> error:
2023-03-06 12:16:39 +0100 <lambdabot> • No instance for (Num (Integer -> Integer))
2023-03-06 12:16:39 +0100 <lambdabot> arising from a use of ‘e_123’
2023-03-06 12:16:57 +0100 <ncf> fendor[m]: that's the standard idiom
2023-03-06 12:17:18 +0100 <Jade[m]1> No, I get the error when trying to create that instance
2023-03-06 12:17:51 +0100 <ncf> Jade[m]1: i think you need FlexibleInstances
2023-03-06 12:18:11 +0100 <ncf> or make that b -> a
2023-03-06 12:18:19 +0100 <fendor[m]> ncf, thank you!
2023-03-06 12:18:20 +0100 <Jade[m]1> mhm, it says that but I'd like to know what it allows
2023-03-06 12:20:19 +0100 <ncf> well, it tells you
2023-03-06 12:20:33 +0100 <ncf> T a1 ... an where a1 ... an are *distinct type variables*
2023-03-06 12:21:20 +0100 <kenran> (How) Is it possible to "dispatch" on certain types depending on runtime information? Example: Someone sends me some JSON, and there's some "type information" in there. Now after reading I want to use that on the type level. I don't know if my question makes sense without more context, but maybe you can point me to blog posts or other stuff that surely already exists :)
2023-03-06 12:22:37 +0100 <ncf> the general answer is dependent types, the haskell answer is probably singletons
2023-03-06 12:23:50 +0100 <kenran> ncf: dang, I feared as much. I guess I'll have to get familiar with singletons then. Our work application contains three services and does IPC with other Haskell binaries, so it arises quite often and is always a little painful.
2023-03-06 12:24:01 +0100 <kenran> thanks!
2023-03-06 12:25:32 +0100 <opqdonut> kenran: you won't necessarily need any fancy stuff. You can do something like `case messageType of "foo" -> handle (parseFoo message); "bar" -> handle (parseBar message)`
2023-03-06 12:25:55 +0100 <opqdonut> where handle is a type class method, and parseFoo and parseBar produce concrete Foo and Bar outputs
2023-03-06 12:27:22 +0100 <kenran> opqdonut: ahh thank you, that should fit in quite nicely in most places!
2023-03-06 12:27:47 +0100 <opqdonut> if you want something just a bit fancier, you can have a type like `data AnyMessage = FooMessage Foo | BarMessage Bar | ...`
2023-03-06 12:29:36 +0100dcoutts(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 248 seconds)
2023-03-06 12:33:35 +0100dcoutts(~duncan@host213-122-124-241.range213-122.btcentralplus.com)
2023-03-06 12:33:43 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d)
2023-03-06 12:35:57 +0100 <dminuoso> 12:13:27 fendor[m] | good enough or could it be better?
2023-03-06 12:36:38 +0100 <dminuoso> fendor[m]: An infix operator can take two arguments, you have a total of three things (whole, lens and part), that by itself means the minimum number of operators is two.
2023-03-06 12:37:05 +0100 <dminuoso> fendor[m]: So I have a genuine question: How can you reasonably expect this to become shorter?
2023-03-06 12:38:12 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d) (Ping timeout: 246 seconds)
2023-03-06 12:44:20 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net)
2023-03-06 12:46:33 +0100dcoutts(~duncan@host213-122-124-241.range213-122.btcentralplus.com) (Ping timeout: 255 seconds)
2023-03-06 12:49:43 +0100dcoutts_(~duncan@cpc69403-oxfd27-2-0-cust285.4-3.cable.virginm.net) (Ping timeout: 252 seconds)
2023-03-06 12:50:02 +0100biberu(~biberu@user/biberu) (Ping timeout: 252 seconds)
2023-03-06 12:51:07 +0100random-jellyfish(~random-je@user/random-jellyfish) (Quit: Client closed)
2023-03-06 12:55:10 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-06 12:55:46 +0100mechap(~mechap@user/mechap)
2023-03-06 12:56:07 +0100MajorBiscuit(~MajorBisc@145.94.156.212)
2023-03-06 12:58:42 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-03-06 12:59:07 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-06 13:09:36 +0100cheater_(~Username@user/cheater)
2023-03-06 13:12:11 +0100cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2023-03-06 13:12:21 +0100cheater_cheater
2023-03-06 13:21:15 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-03-06 13:23:25 +0100use-value(~Thunderbi@2a00:23c6:8a03:2f01:3577:7d35:34e6:6624)
2023-03-06 13:26:15 +0100polyphem_(~rod@2a02:810d:840:8754:39cf:f589:aabf:df80)
2023-03-06 13:26:30 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Remote host closed the connection)
2023-03-06 13:27:44 +0100mixfix41(~sdenynine@user/mixfix41) (Ping timeout: 248 seconds)
2023-03-06 13:29:50 +0100akegalj(~akegalj@93-138-138-203.adsl.net.t-com.hr) (Ping timeout: 260 seconds)
2023-03-06 13:30:22 +0100lyle(~lyle@104.246.145.237)
2023-03-06 13:39:32 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-06 13:42:13 +0100tusko(~yeurt@user/tusko) (Remote host closed the connection)
2023-03-06 13:42:36 +0100ub(~Thunderbi@p548c84ba.dip0.t-ipconnect.de)
2023-03-06 13:43:11 +0100ubert(~Thunderbi@p548c9fde.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-06 13:43:12 +0100ububert
2023-03-06 13:43:41 +0100tusko(~yeurt@user/tusko)
2023-03-06 13:45:57 +0100ubert1(~Thunderbi@2a02:8109:abc0:6434:69a1:e4e8:f403:6d0a)
2023-03-06 13:48:32 +0100acidjnk_new(~acidjnk@p200300d6e715c447314bc12d87d6546d.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-06 13:50:23 +0100cheater(~Username@user/cheater)
2023-03-06 13:50:40 +0100akegalj(~akegalj@89-164-104-80.dsl.iskon.hr)
2023-03-06 13:52:35 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-03-06 13:55:48 +0100cheater_(~Username@user/cheater)
2023-03-06 13:57:33 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-03-06 13:57:33 +0100cheater_cheater
2023-03-06 13:59:04 +0100mei(~mei@user/mei) (Quit: mei)
2023-03-06 14:00:46 +0100mei(~mei@user/mei)
2023-03-06 14:01:30 +0100CiaoSen(~Jura@p200300c9570e91002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2023-03-06 14:02:31 +0100cheater_(~Username@user/cheater)
2023-03-06 14:03:36 +0100gurkenglas(~gurkengla@dynamic-046-114-177-117.46.114.pool.telefonica.de)
2023-03-06 14:03:48 +0100cheater__(~Username@user/cheater)
2023-03-06 14:05:30 +0100cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2023-03-06 14:05:33 +0100cheater__cheater
2023-03-06 14:06:54 +0100acidjnk_new(~acidjnk@p200300d6e715c447314bc12d87d6546d.dip0.t-ipconnect.de)
2023-03-06 14:07:37 +0100cheater_(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-06 14:13:17 +0100cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2023-03-06 14:14:13 +0100cheater(~Username@user/cheater)
2023-03-06 14:14:14 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-03-06 14:19:17 +0100Inst(~Inst@2601:6c4:4081:54f0:d8ed:99cb:5666:6ba0)
2023-03-06 14:19:32 +0100 <Inst> gah, this is killing me, is anyone running a windows machine and using sdl2?
2023-03-06 14:20:23 +0100 <Inst> i'm getting some weird behavior, like, sdl2 seemingly contaminates builds, even if it's not explicitly imported, it just has to be in the package dependencies listing
2023-03-06 14:20:44 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 246 seconds)
2023-03-06 14:23:05 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-06 14:25:00 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-03-06 14:25:23 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-06 14:25:25 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Client Quit)
2023-03-06 14:26:08 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Excess Flood)
2023-03-06 14:26:38 +0100 <geekosaur> make sure you don't have any package environments sitting around
2023-03-06 14:30:42 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-06 14:31:35 +0100 <Inst> bleh, i'll look for the haskell games guys because they're the ones maintaining sdl2
2023-03-06 14:31:40 +0100 <Inst> let's see if we can reproduce this crap
2023-03-06 14:34:35 +0100mechap(~mechap@user/mechap) (Ping timeout: 260 seconds)
2023-03-06 14:35:10 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 260 seconds)
2023-03-06 14:36:07 +0100mechap(~mechap@131.170.185.81.rev.sfr.net)
2023-03-06 14:36:21 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-06 14:37:06 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2023-03-06 14:37:52 +0100king_gs(~Thunderbi@187.201.41.239)
2023-03-06 14:38:00 +0100king_gs(~Thunderbi@187.201.41.239) (Remote host closed the connection)
2023-03-06 14:41:03 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 256 seconds)
2023-03-06 14:43:32 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-06 14:44:20 +0100mmhat(~mmh@p200300f1c7052b52ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
2023-03-06 14:45:03 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 248 seconds)
2023-03-06 14:46:22 +0100ix(~ix@213.205.192.31)
2023-03-06 14:46:55 +0100jle`(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2023-03-06 14:54:08 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net)
2023-03-06 14:54:20 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 252 seconds)
2023-03-06 14:54:49 +0100jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2023-03-06 14:57:40 +0100Fischmiep(~Fischmiep@user/Fischmiep)
2023-03-06 14:59:30 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-06 15:00:41 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-06 15:02:02 +0100Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 246 seconds)
2023-03-06 15:03:59 +0100dcoutts(~duncan@host86-175-43-163.range86-175.btcentralplus.com)
2023-03-06 15:04:35 +0100thegeekinside(~thegeekin@189.141.115.134)
2023-03-06 15:07:02 +0100 <kuribas> kenran: typically you would use a sum type for that.
2023-03-06 15:08:55 +0100mei(~mei@user/mei) (Quit: mei)
2023-03-06 15:12:03 +0100alex`(~user@45.red-83-36-44.dynamicip.rima-tde.net) (Remote host closed the connection)
2023-03-06 15:14:09 +0100Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2023-03-06 15:15:05 +0100mei(~mei@user/mei)
2023-03-06 15:18:26 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2023-03-06 15:18:57 +0100 <kuribas> kenran: don't even think about going to singletons or dependent types.
2023-03-06 15:18:58 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-03-06 15:20:26 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-06 15:23:36 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-06 15:25:35 +0100polyphem_(~rod@2a02:810d:840:8754:39cf:f589:aabf:df80) (Ping timeout: 248 seconds)
2023-03-06 15:25:51 +0100ChanServ+o litharge
2023-03-06 15:25:53 +0100litharge-bo lambdap237!*@static.167.190.119.168.clients.your-server.de$##fix-your-connection litharge
2023-03-06 15:26:15 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-06 15:26:34 +0100ph88(~ph88@ip5b426553.dynamic.kabel-deutschland.de) (Quit: Leaving)
2023-03-06 15:26:40 +0100polyphem_(~rod@2a02:810d:840:8754:224e:f6ff:fe5e:bc17)
2023-03-06 15:27:04 +0100mechap(~mechap@131.170.185.81.rev.sfr.net) (Quit: WeeChat 3.8)
2023-03-06 15:30:38 +0100ix(~ix@213.205.192.31) (Ping timeout: 252 seconds)
2023-03-06 15:35:35 +0100gurkenglas(~gurkengla@dynamic-046-114-177-117.46.114.pool.telefonica.de) (Ping timeout: 260 seconds)
2023-03-06 15:35:44 +0100kenran(~user@user/kenran) (Remote host closed the connection)
2023-03-06 15:35:56 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d)
2023-03-06 15:37:32 +0100gurkenglas(~gurkengla@dynamic-046-114-156-015.46.114.pool.telefonica.de)
2023-03-06 15:40:30 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d) (Ping timeout: 260 seconds)
2023-03-06 15:44:56 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-06 15:46:34 +0100cheater(~Username@user/cheater)
2023-03-06 15:46:55 +0100td_(~td@i53870927.versanet.de) (Quit: waking up from the american dream ...)
2023-03-06 15:48:20 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-03-06 15:53:12 +0100ix(~ix@213.205.192.31)
2023-03-06 15:54:11 +0100td_(~td@i53870927.versanet.de)
2023-03-06 15:54:11 +0100akegalj(~akegalj@89-164-104-80.dsl.iskon.hr) (Ping timeout: 246 seconds)
2023-03-06 16:00:05 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-03-06 16:00:05 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-03-06 16:00:05 +0100wroathe(~wroathe@user/wroathe)
2023-03-06 16:00:48 +0100cheater_(~Username@user/cheater)
2023-03-06 16:02:18 +0100cheater(~Username@user/cheater) (Ping timeout: 255 seconds)
2023-03-06 16:02:23 +0100cheater_cheater
2023-03-06 16:06:54 +0100Sgeo(~Sgeo@user/sgeo)
2023-03-06 16:08:53 +0100acidjnk_new(~acidjnk@p200300d6e715c447314bc12d87d6546d.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-03-06 16:08:55 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-03-06 16:13:07 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-06 16:14:15 +0100cheater(~Username@user/cheater)
2023-03-06 16:16:51 +0100son0p(~ff@181.136.122.143) (Ping timeout: 268 seconds)
2023-03-06 16:18:41 +0100califax(~califax@user/califx) (Remote host closed the connection)
2023-03-06 16:19:02 +0100califax(~califax@user/califx)
2023-03-06 16:19:20 +0100akegalj_(~akegalj@89-164-104-80.dsl.iskon.hr)
2023-03-06 16:20:12 +0100szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-06 16:21:48 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-03-06 16:24:26 +0100grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
2023-03-06 16:34:07 +0100gurkenglas(~gurkengla@dynamic-046-114-156-015.46.114.pool.telefonica.de) (Ping timeout: 252 seconds)
2023-03-06 16:35:56 +0100Lycurgus(~juan@user/Lycurgus)
2023-03-06 16:43:42 +0100mei(~mei@user/mei) (Remote host closed the connection)
2023-03-06 16:44:29 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 255 seconds)
2023-03-06 16:44:36 +0100mei(~mei@user/mei)
2023-03-06 16:48:29 +0100andrewboltachev(~andrey@178.141.199.8) (Quit: Leaving.)
2023-03-06 16:50:46 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
2023-03-06 16:51:24 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2023-03-06 16:52:00 +0100grnman_(~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 248 seconds)
2023-03-06 16:53:53 +0100acidjnk_new(~acidjnk@p200300d6e715c410d9ae1c6a8a63c597.dip0.t-ipconnect.de)
2023-03-06 17:02:11 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:1d87:971:a878:a02f) (Quit: WeeChat 2.8)
2023-03-06 17:02:29 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 268 seconds)
2023-03-06 17:03:03 +0100mncheck(~mncheck@193.224.205.254) (Ping timeout: 255 seconds)
2023-03-06 17:04:26 +0100Guest|6(~Guest|6@194.83.11.20)
2023-03-06 17:04:47 +0100Guest|6(~Guest|6@194.83.11.20) (Client Quit)
2023-03-06 17:08:06 +0100mbuf(~Shakthi@49.207.178.186) (Quit: Leaving)
2023-03-06 17:08:21 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2023-03-06 17:10:08 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-03-06 17:13:22 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7)
2023-03-06 17:13:29 +0100king_gs(~Thunderbi@2806:103e:29:1779:19a5:ca6b:2f79:45e7) (Client Quit)
2023-03-06 17:13:55 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d)
2023-03-06 17:18:45 +0100Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
2023-03-06 17:18:52 +0100ghostbuster(~admin@user/ghostbuster)
2023-03-06 17:29:36 +0100AlexZenon(~alzenon@178.34.160.55) (Ping timeout: 255 seconds)
2023-03-06 17:29:51 +0100Alex_test(~al_test@178.34.160.55) (Ping timeout: 248 seconds)
2023-03-06 17:30:23 +0100AlexNoo(~AlexNoo@178.34.160.55) (Ping timeout: 248 seconds)
2023-03-06 17:33:03 +0100AlexNoo(~AlexNoo@178.34.160.55)
2023-03-06 17:33:30 +0100 <fendor[m]> miscommunication on my end, the question was not, can I shave off a character, but what's the idiomatic way to do it. Just because it type-checks does not mean it is idiomatic
2023-03-06 17:33:31 +0100 <Jade[m]1> Is there a way to simplify this?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/6610463f8537237c06ce48eccbe2004e5bde…>)
2023-03-06 17:34:34 +0100 <Jade[m]1> especially because I need to do the exact same destructuring 5-6 times; Would it make sense to have a `destructure :: Function a -> (a -> a, Function a, String)` or is there a more idiomatic way?
2023-03-06 17:35:11 +0100 <merijn> Jade[m]1: You don't have to destructure, you can just use the fields as accessors inline
2023-03-06 17:35:25 +0100Alex_test(~al_test@178.34.160.55)
2023-03-06 17:35:47 +0100 <Jade[m]1> Ohh, right
2023-03-06 17:36:06 +0100 <kuribas> Why are people going to advanced types, when they don't even know how to model in boring haskell?
2023-03-06 17:36:22 +0100AlexZenon(~alzenon@178.34.160.55)
2023-03-06 17:36:28 +0100 <merijn> Jade[m]1: Like https://paste.tomsmeding.com/MQId86pg
2023-03-06 17:36:29 +0100 <mauke> Jade[m]1: destructure is just positional pattern matching
2023-03-06 17:36:31 +0100 <mauke> that still works
2023-03-06 17:36:39 +0100 <merijn> kuribas: Because they get overly carried away
2023-03-06 17:36:45 +0100 <merijn> mauke: I guess that works too, yeah
2023-03-06 17:37:14 +0100 <merijn> kuribas: "some types are good, so more types must be better!"
2023-03-06 17:37:56 +0100Jade[m]1sent a hs code block: https://libera.ems.host/_matrix/media/v3/download/libera.chat/62fa37287df6511e7f18a5e0cce6430b9d57…
2023-03-06 17:38:07 +0100 <Jade[m]1> yep, a lot better
2023-03-06 17:38:43 +0100 <Jade[m]1> mauke: yeah, I even used it in the `toString`
2023-03-06 17:39:02 +0100 <Jade[m]1> I know this, just didn't think of it haha
2023-03-06 17:39:20 +0100 <mauke> Jade[m]1: no, your toString uses field accessors
2023-03-06 17:40:17 +0100 <Jade[m]1> yeah that's what I meant
2023-03-06 17:41:01 +0100 <mauke> are you confusing merijn and me?
2023-03-06 17:41:58 +0100 <Jade[m]1> Didn't look at the names sorry
2023-03-06 17:42:36 +0100 <Jade[m]1> I meant to say that I knew field accessors existed and that I used them in the `toString` but simply didn't think of them because I had the match anyways
2023-03-06 17:43:09 +0100 <mauke> MkFunction f f' s + MkFunction g g' t = MkFunction (\x -> f x + g x) (f' + g') (s <> " + " <> t)
2023-03-06 17:43:33 +0100ix(~ix@213.205.192.31) (Ping timeout: 255 seconds)
2023-03-06 17:43:58 +0100 <Jade[m]1> ahh, yeah
2023-03-06 17:44:27 +0100 <Jade[m]1> I don't think I like positional destructuring of records for my purposes then
2023-03-06 17:45:20 +0100MajorBiscuit(~MajorBisc@145.94.156.212) (Ping timeout: 248 seconds)
2023-03-06 17:47:28 +0100sadmax(~user@64.130.91.66)
2023-03-06 17:47:32 +0100 <kuribas> you can destructure records on labels.
2023-03-06 17:48:04 +0100npmania1(~Thunderbi@45.8.223.206)
2023-03-06 17:48:14 +0100 <kuribas> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/record_puns.html
2023-03-06 17:48:41 +0100 <hellwolf[m]> who'd be able to help to update https://wiki.haskell.org/User_groups page with two more entries?
2023-03-06 17:48:41 +0100 <Jade[m]1> I know of that language extension yeah
2023-03-06 17:49:45 +0100npmania(~Thunderbi@45.8.223.254) (Ping timeout: 256 seconds)
2023-03-06 17:49:45 +0100npmania1npmania
2023-03-06 17:49:49 +0100 <kuribas> unpopular opinion: haskell is a bad language for doing type level computation.
2023-03-06 17:50:24 +0100 <int-e> How is that unpopular? I guess most people have no opinion on that at all.
2023-03-06 17:50:41 +0100 <ncf> pretty sure most people who have an opinion on that agree that the current situation is terrible lol
2023-03-06 17:50:43 +0100 <int-e> Which does make it unpopular, I suppose. Technically.
2023-03-06 17:50:47 +0100 <geekosaur> I run into enough people who think it is
2023-03-06 17:50:56 +0100 <kuribas> But it's a great language for the algebraic approach to programming, using composition and parametricity.
2023-03-06 17:51:00 +0100 <geekosaur> (…seriously, use idris)
2023-03-06 17:51:31 +0100 <kuribas> int-e: well, the fact that so many hackage libraries use type level features.
2023-03-06 17:51:33 +0100 <int-e> It'd be more interesting to ask how many people think that they need type level computations.
2023-03-06 17:52:39 +0100 <int-e> kuribas: It's cool and shiny?
2023-03-06 17:53:00 +0100 <geekosaur> just don't make me use singletons. they're an absolutely miserable simulation of real dependent types
2023-03-06 17:53:06 +0100 <kuribas> I think it's a status symbol. Use GADTs and type families to show that you belong to the "cool crowd".
2023-03-06 17:53:54 +0100mechap(~mechap@user/mechap)
2023-03-06 17:54:22 +0100 <ncf> sounds like what the average non-haskeller would say about haskell
2023-03-06 17:55:27 +0100telser(~quassel@user/telser)
2023-03-06 17:56:21 +0100 <int-e> I don't think of GADTs or type families as type-level computations, necessarily. They can be, sure, but most are just pretty direct mappings? Notably associated type families for type classes.
2023-03-06 17:57:12 +0100 <geekosaur> ^
2023-03-06 17:57:52 +0100gnalzo(~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
2023-03-06 18:01:15 +0100 <ncf> also i think you need GADTs to define free applicatives?
2023-03-06 18:03:22 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-03-06 18:03:44 +0100mixfix41(~sdenynine@user/mixfix41)
2023-03-06 18:08:39 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d) (Remote host closed the connection)
2023-03-06 18:09:24 +0100euandreh(~Thunderbi@189.6.18.7)
2023-03-06 18:14:36 +0100pyook(~pyook@user/puke) (Ping timeout: 255 seconds)
2023-03-06 18:18:03 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-03-06 18:24:48 +0100remexre(~remexre@user/remexre) (Ping timeout: 252 seconds)
2023-03-06 18:25:16 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-03-06 18:27:55 +0100sadmax(~user@64.130.91.66) (Remote host closed the connection)
2023-03-06 18:28:33 +0100biberu(~biberu@user/biberu)
2023-03-06 18:29:03 +0100sadmax(~user@64.130.91.66)
2023-03-06 18:29:46 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 18:35:05 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2023-03-06 18:37:20 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2023-03-06 18:40:31 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-03-06 18:40:58 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2023-03-06 18:41:53 +0100CiaoSen(~Jura@p200300c9570e91002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-03-06 18:45:16 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2023-03-06 18:45:23 +0100econo(uid147250@user/econo)
2023-03-06 18:45:46 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2023-03-06 18:48:50 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2023-03-06 18:52:03 +0100hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-03-06 18:52:07 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-06 19:03:55 +0100cheater(~Username@user/cheater) (Ping timeout: 246 seconds)
2023-03-06 19:05:43 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-03-06 19:12:15 +0100azimut(~azimut@gateway/tor-sasl/azimut)
2023-03-06 19:13:21 +0100remexre(~remexre@user/remexre)
2023-03-06 19:15:39 +0100hugo-(znc@verdigris.lysator.liu.se)
2023-03-06 19:16:51 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 19:19:20 +0100qhong_(~qhong@rescomp-21-400677.stanford.edu)
2023-03-06 19:19:44 +0100cheater(~Username@user/cheater)
2023-03-06 19:21:51 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2023-03-06 19:22:59 +0100qhong(~qhong@DN160vrd000d6kpg009l6c0000ep.stanford.edu) (Ping timeout: 264 seconds)
2023-03-06 19:23:47 +0100Guest31(~Guest31@rrcs-74-219-213-86.central.biz.rr.com)
2023-03-06 19:24:00 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-06 19:24:16 +0100whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-03-06 19:24:24 +0100 <Guest31> I'm wondering if I'm starting to go crazy, but I've been using haskell for personal work - and am considering introducing it at work as a form of documentation for some code in another language
2023-03-06 19:24:48 +0100 <Guest31> I just find reading through well written haskell code can be self documenting
2023-03-06 19:25:04 +0100 <Guest31> And solving a problem in haskell can inform how to solve it in another language
2023-03-06 19:25:11 +0100 <Guest31> Wondering if anybody has similar experiences
2023-03-06 19:26:40 +0100tusko(~yeurt@user/tusko) (Remote host closed the connection)
2023-03-06 19:27:19 +0100tusko(~yeurt@user/tusko)
2023-03-06 19:32:08 +0100 <geekosaur> I think that's been mentioned here before?
2023-03-06 19:32:11 +0100freeside(~mengwong@103.252.202.85) (Ping timeout: 260 seconds)
2023-03-06 19:35:59 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
2023-03-06 19:36:44 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2023-03-06 19:37:39 +0100cheater(~Username@user/cheater)
2023-03-06 19:38:04 +0100 <Guest31> where is here?
2023-03-06 19:41:16 +0100 <geekosaur> either this IRC channel or possibly #haskell-offtopic
2023-03-06 19:41:31 +0100 <geekosaur> I just did a search of my logs and the incident I thought was it wasn't
2023-03-06 19:42:15 +0100 <geekosaur> (because Haskell has previously been mistaken for pseudocode describing an algorithm)
2023-03-06 19:43:43 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-03-06 19:47:16 +0100akegalj_(~akegalj@89-164-104-80.dsl.iskon.hr) (Quit: leaving)
2023-03-06 19:52:20 +0100caryhartline(~caryhartl@cpe-76-187-114-220.tx.res.rr.com)
2023-03-06 19:52:51 +0100freeside(~mengwong@103.252.202.85)
2023-03-06 19:57:32 +0100Sciencentistguy5(~sciencent@hacksoc/ordinary-member)
2023-03-06 20:00:14 +0100Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 255 seconds)
2023-03-06 20:00:15 +0100Sciencentistguy5Sciencentistguy
2023-03-06 20:00:20 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 20:11:53 +0100sadmax(~user@64.130.91.66) (Remote host closed the connection)
2023-03-06 20:15:34 +0100tusko(~yeurt@user/tusko) (Remote host closed the connection)
2023-03-06 20:15:34 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-03-06 20:15:46 +0100 <[exa]> Guest31: pretty common with haskell I'd say
2023-03-06 20:16:00 +0100tusko(~yeurt@user/tusko)
2023-03-06 20:16:49 +0100gmg(~user@user/gehmehgeh)
2023-03-06 20:18:23 +0100 <[exa]> Guest31: as one of common reasons, the equational reasoning (haskell-style way of declaring stuff) is much much easier to follow than the common ways of operational reasoning
2023-03-06 20:21:19 +0100wrengr(~wrengr@201.59.83.34.bc.googleusercontent.com)
2023-03-06 20:21:25 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2023-03-06 20:22:31 +0100ubert1(~Thunderbi@2a02:8109:abc0:6434:69a1:e4e8:f403:6d0a) (Remote host closed the connection)
2023-03-06 20:22:54 +0100gmg(~user@user/gehmehgeh)
2023-03-06 20:25:59 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 255 seconds)
2023-03-06 20:26:15 +0100 <[exa]> haskeline question: is there any good way to run withInterrupt when InputT is deeper in the stack? (It stinks a bit of unliftIO or something similar...) Or should I completely avoid doing that?
2023-03-06 20:27:29 +0100 <monochrom> Yes it's the unliftIO situation all over again.
2023-03-06 20:29:42 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-03-06 20:30:01 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-06 20:31:41 +0100 <[exa]> ok, well, great.
2023-03-06 20:31:49 +0100 <[exa]> thanks for confirm :D
2023-03-06 20:32:03 +0100Guest31(~Guest31@rrcs-74-219-213-86.central.biz.rr.com) (Ping timeout: 260 seconds)
2023-03-06 20:32:42 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-03-06 20:33:00 +0100solzao(~zelador@187.61.153.177) (Read error: Connection reset by peer)
2023-03-06 20:33:11 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d)
2023-03-06 20:33:20 +0100xsarnik0(xsarnik@lounge.fi.muni.cz)
2023-03-06 20:33:31 +0100xstill_6(xstill@fimu/xstill)
2023-03-06 20:33:52 +0100yaroot_(~yaroot@2400:4052:ac0:d900:1cf4:2aff:fe51:c04c)
2023-03-06 20:34:04 +0100terrorjack8(~terrorjac@2a01:4f8:1c1e:4e8c::)
2023-03-06 20:34:11 +0100ggranberry_(sid267884@id-267884.uxbridge.irccloud.com)
2023-03-06 20:34:16 +0100econo_(uid147250@user/econo)
2023-03-06 20:34:17 +0100eL_Bart0-(eL_Bart0@dietunichtguten.org)
2023-03-06 20:34:21 +0100img_(~img@user/img)
2023-03-06 20:34:25 +0100manwithl-(~manwithlu@2406:da14:b37:1300:8c42:7d16:8950:6c74)
2023-03-06 20:34:26 +0100kraftwerk28_(~kraftwerk@178.62.210.83)
2023-03-06 20:34:26 +0100xelxebar_(~xelxebar@wilsonb.com)
2023-03-06 20:34:36 +0100cheater(~Username@user/cheater) (Ping timeout: 252 seconds)
2023-03-06 20:34:50 +0100TimWolla_(~timwolla@2a01:4f8:150:6153:beef::6667)
2023-03-06 20:35:00 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
2023-03-06 20:36:35 +0100juri__(~juri@84-19-175-179.pool.ovpn.com)
2023-03-06 20:36:43 +0100lyle1(~lyle@104.246.145.237)
2023-03-06 20:36:45 +0100finstern1s(~X@23.226.237.192)
2023-03-06 20:37:06 +0100mal1(~mal@ns2.wyrd.be)
2023-03-06 20:37:08 +0100stilgart_(~Christoph@chezlefab.net)
2023-03-06 20:37:12 +0100farn__(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2023-03-06 20:37:32 +0100robobub(uid248673@id-248673.uxbridge.irccloud.com)
2023-03-06 20:37:35 +0100econo(uid147250@user/econo) (Ping timeout: 248 seconds)
2023-03-06 20:37:35 +0100xelxebar(~xelxebar@wilsonb.com) (Ping timeout: 248 seconds)
2023-03-06 20:37:35 +0100ggranberry(uid267884@id-267884.uxbridge.irccloud.com) (Ping timeout: 248 seconds)
2023-03-06 20:37:35 +0100lyle(~lyle@104.246.145.237) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100finsternis(~X@23.226.237.192) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100img(~img@user/img) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100hellwolf[m](~hellwolfm@2001:470:69fc:105::3:6a4) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100juri_(~juri@84-19-175-179.pool.ovpn.com) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100manwithluck(~manwithlu@2406:da14:b37:1300:8c42:7d16:8950:6c74) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:4e8c::) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100lieven(~mal@ns2.wyrd.be) (Ping timeout: 248 seconds)
2023-03-06 20:37:36 +0100kraftwerk28(~kraftwerk@178.62.210.83) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100aaRabbit[m](~rootsandw@2001:470:69fc:105::2:ca2e) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100stilgart(~Christoph@chezlefab.net) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100farn_(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100yaroot(~yaroot@p3431218-ipngn9301souka.saitama.ocn.ne.jp) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100xstill_(xstill@fimu/xstill) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100xsarnik(xsarnik@lounge.fi.muni.cz) (Ping timeout: 248 seconds)
2023-03-06 20:37:37 +0100econo_econo
2023-03-06 20:37:37 +0100terrorjack8terrorjack
2023-03-06 20:37:39 +0100ggranberry_ggranberry
2023-03-06 20:37:39 +0100finstern1sfinsternis
2023-03-06 20:37:39 +0100yaroot_yaroot
2023-03-06 20:37:39 +0100TimWolla_TimWolla
2023-03-06 20:37:45 +0100xstill_6xstill_
2023-03-06 20:37:45 +0100xsarnik0xsarnik
2023-03-06 20:38:22 +0100tomboy64(~tomboy64@user/tomboy64)
2023-03-06 20:38:50 +0100gurkenglas(~gurkengla@dynamic-046-114-156-015.46.114.pool.telefonica.de)
2023-03-06 20:38:57 +0100cheater(~Username@user/cheater)
2023-03-06 20:39:24 +0100hellwolf[m](~hellwolfm@2001:470:69fc:105::3:6a4)
2023-03-06 20:39:53 +0100qhong_qhong
2023-03-06 20:41:50 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2023-03-06 20:45:48 +0100segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-03-06 20:46:10 +0100 <segfaultfizzbuzz> so >>> is just function composition?
2023-03-06 20:46:58 +0100 <monochrom> I wouldn't say "just" but you can use it for forward function composition.
2023-03-06 20:49:40 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com)
2023-03-06 20:51:50 +0100aaRabbit[m](~rootsandw@2001:470:69fc:105::2:ca2e)
2023-03-06 20:53:43 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-06 20:54:51 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-06 21:03:08 +0100Midjak(~Midjak@82.66.147.146)
2023-03-06 21:05:50 +0100rustisafungus(~segfaultf@12.172.217.142)
2023-03-06 21:06:32 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com) (Quit: ZZZzzz…)
2023-03-06 21:06:41 +0100 <rustisafungus> i'm confused, what is "forward" or "left to right" vs "right to left"? i thought we were working with associative operations here...?
2023-03-06 21:07:14 +0100 <ncf> f ∘ g = g >>> f
2023-03-06 21:07:18 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com)
2023-03-06 21:07:43 +0100a_coll(~acoll@45.92.120.189)
2023-03-06 21:08:01 +0100sammelweis_(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-06 21:08:04 +0100 <geekosaur> associative, but not commutative
2023-03-06 21:08:15 +0100sadmax(~user@64.130.91.66)
2023-03-06 21:09:16 +0100 <rustisafungus> oh hell, that's right, you can reverse the order of operations, ok that's confusing as i kinda expect the syntax of the language to normalize order of operations
2023-03-06 21:09:32 +0100segfaultfizzbuzz(~segfaultf@12.172.217.142) (Ping timeout: 248 seconds)
2023-03-06 21:09:32 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 248 seconds)
2023-03-06 21:09:33 +0100dekster(~Albina_Pa@181.119.160.58)
2023-03-06 21:09:33 +0100dekster074AAK5I4
2023-03-06 21:09:33 +0100074AAK5I4(~Albina_Pa@181.119.160.58) (K-Lined)
2023-03-06 21:11:01 +0100 <dminuoso> rustisafungus: What do you mean by "expect the syntax of the language to normalize order of operations"?
2023-03-06 21:11:22 +0100waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-03-06 21:11:52 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com) (Ping timeout: 252 seconds)
2023-03-06 21:12:15 +0100shapr(~user@68.54.166.125) (Ping timeout: 255 seconds)
2023-03-06 21:12:38 +0100 <rustisafungus> i naievely expect that if f is on the left and g is on the right that the ordering of f and g will always be the same
2023-03-06 21:12:51 +0100 <rustisafungus> but in haskell, you can insert operations which can flip that
2023-03-06 21:13:00 +0100 <dminuoso> What does "ordering of f and g" even mean?
2023-03-06 21:13:10 +0100 <dminuoso> Left and right dont have any intrinsic meaning
2023-03-06 21:13:27 +0100 <dminuoso> Are you perhaps trying to imply evaluation order?
2023-03-06 21:13:39 +0100 <rustisafungus> foo f bar g i kinda expect evaluation order here to always have f earlier and g later
2023-03-06 21:13:49 +0100 <rustisafungus> (or precisely the opposite of that )
2023-03-06 21:13:54 +0100 <dminuoso> Its better than that.
2023-03-06 21:13:59 +0100 <dminuoso> Evaluation order is unspecified.
2023-03-06 21:14:03 +0100 <rustisafungus> but the reality is that depending on what foo and bar are, the eval order can be whatever
2023-03-06 21:14:10 +0100 <dminuoso> Nope
2023-03-06 21:14:13 +0100 <rustisafungus> dminuoso: aaaaaaaaaaaaaaaaa why do you folks do this?
2023-03-06 21:14:34 +0100 <dminuoso> rustisafungus: because for the most part the evaluation order is irrelevant.
2023-03-06 21:14:45 +0100 <rustisafungus> 🤯
2023-03-06 21:15:17 +0100 <dminuoso> rustisafungus: Consider a math expression like `(3 + 2) * (7 + 1)` - would you agree that the order of evaluating this is irrelevant to both the meaning of the expression and the result?
2023-03-06 21:15:37 +0100son0p(~ff@181.136.122.143)
2023-03-06 21:16:00 +0100 <rustisafungus> yes but 1 / (a + b) is not the same as 1 + (a / b)
2023-03-06 21:16:11 +0100 <dminuoso> Sure, but that's something entirely different.
2023-03-06 21:16:29 +0100 <rustisafungus> ??
2023-03-06 21:17:00 +0100 <dminuoso> rustisafungus: Imagine my math problem not as a program to write, but perhaps an excercise from school.
2023-03-06 21:17:11 +0100 <dminuoso> So lets say you are tasked with calculating the result of that expression
2023-03-06 21:17:22 +0100 <dminuoso> You might start writing down the entirety of the expression first
2023-03-06 21:17:39 +0100 <rustisafungus> i understand that the for a fixed AST the order of eval doesn't matter
2023-03-06 21:17:43 +0100 <dminuoso> And then decide `lets first add 3 + 2` together, and write on a subsequent line `= 5 * (7 + 1)`
2023-03-06 21:17:45 +0100 <dminuoso> Or....
2023-03-06 21:18:02 +0100 <dminuoso> You might decide to first add 7 + 1 together and write on a subsequent line `= (3 + 2) * 8`
2023-03-06 21:18:04 +0100 <rustisafungus> but if f and g don't commute, then swapping f and g changes the result
2023-03-06 21:18:10 +0100 <dminuoso> Sure
2023-03-06 21:18:11 +0100 <dminuoso> However.
2023-03-06 21:18:28 +0100 <rustisafungus> and depending on how i write haskell code, i think i get either (f.g) or (g.f) right?
2023-03-06 21:18:36 +0100 <rustisafungus> even if f is to the "left" of g in the source code
2023-03-06 21:18:37 +0100 <dminuoso> The order of calculation has nothing to do with where you place arguments
2023-03-06 21:18:39 +0100 <dminuoso> say:
2023-03-06 21:18:43 +0100 <dminuoso> (3 + 2) * (7 + 1)
2023-03-06 21:18:45 +0100 <dminuoso> vs
2023-03-06 21:18:48 +0100 <dminuoso> (3 * 2) + (7 + 1)
2023-03-06 21:18:56 +0100 <dminuoso> In *both* cases, the "evaluation order" is unspecified.
2023-03-06 21:19:03 +0100 <dminuoso> That is, its completely irrelevant how you evaluate it.
2023-03-06 21:19:59 +0100 <dminuoso> swapping symbols around by itself doesnt "change the evalation order", because there wasnt an instrinsic evaluation order to begin with
2023-03-06 21:20:08 +0100 <dminuoso> it changes the meaning of the program
2023-03-06 21:20:11 +0100 <dminuoso> not the evaluation order
2023-03-06 21:20:16 +0100 <rustisafungus> i don't care about AST eval order for fixed AST, that's not concerning (if ignore IO etc)
2023-03-06 21:20:49 +0100 <dminuoso> You do seem to care about it:
2023-03-06 21:20:55 +0100 <dminuoso> 21:13:39 rustisafungus | foo f bar g i kinda expect evaluation order here to always have f earlier and g later
2023-03-06 21:21:07 +0100 <dminuoso> Whether `f` or `g` is evaluated first, does not (generally) matter
2023-03-06 21:21:11 +0100 <rustisafungus> well, not eval order--call it "AST order" then
2023-03-06 21:21:18 +0100 <rustisafungus> sorry that was me being imperative
2023-03-06 21:21:26 +0100 <dminuoso> Not necessarily imperative actually'
2023-03-06 21:21:27 +0100 <rustisafungus> "effective eval order" rather than "actual eval order"
2023-03-06 21:21:35 +0100 <c_wraith> "order" isnt really what you mean, though
2023-03-06 21:21:42 +0100 <c_wraith> What you seem to mean is "parse tree"
2023-03-06 21:21:59 +0100 <dminuoso> rustisafungus: We call this evaluation strategies. What most imperative programming languages have is `call-by-value`
2023-03-06 21:22:01 +0100 <dminuoso> And it should be noted
2023-03-06 21:22:08 +0100 <rustisafungus> not eval i am very sorry i ever said eval
2023-03-06 21:22:14 +0100 <dminuoso> That in plenty of languages the evaluation orders of parameters themselves is unspecified
2023-03-06 21:22:16 +0100 <dminuoso> Notably: C.
2023-03-06 21:22:17 +0100 <rustisafungus> c_wraith: yes i think i mean parse tree or AST
2023-03-06 21:22:24 +0100 <monochrom> Yes, with lazy evaluation, you now have to dissociate parsing (tree structure) with orde of evaluation.
2023-03-06 21:22:25 +0100 <rustisafungus> dminuoso: oh wow really
2023-03-06 21:22:29 +0100 <dminuoso> In f if you write foo(bar(), quux(), baz()) it is unspecified which argument is evaluated first.
2023-03-06 21:22:33 +0100 <dminuoso> *In C
2023-03-06 21:22:44 +0100 <dminuoso> THe only guarantee you *do* get is that they are evaluated before foo is entered.
2023-03-06 21:22:45 +0100 <c_wraith> yeah, it makes writing recursive descent parsers by hand in C really annoying
2023-03-06 21:23:01 +0100 <monochrom> Because "False && (undefined && undefined)" totally does not mean "evaluate (undefined && undefined) first".
2023-03-06 21:23:18 +0100 <rustisafungus> i don't want to emphasize evaluation order here
2023-03-06 21:23:51 +0100 <monochrom> In fact, if I asked you about "0 * (2398493 * 239085)", I doubt that you would evaluate "2398493 * 239085" first.
2023-03-06 21:24:07 +0100 <rustisafungus> monochrom: again that's eval order
2023-03-06 21:24:31 +0100acidjnk_new(~acidjnk@p200300d6e715c410d9ae1c6a8a63c597.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2023-03-06 21:24:58 +0100 <dminuoso> rustisafungus: as opposed to what?
2023-03-06 21:25:10 +0100 <monochrom> haha
2023-03-06 21:25:24 +0100 <monochrom> OK OK we're on the same page now.
2023-03-06 21:25:41 +0100 <dminuoso> I do have a vague idea what they are on about.
2023-03-06 21:25:43 +0100 <rustisafungus> sorry, i should probably just hush down, but if you do really want to discuss this, my comment is relevant only if f and g don't commute in general
2023-03-06 21:26:47 +0100 <rustisafungus> and so like i said if, as the programmer, i look at a line of code, i see f somewhere on the left and g somewhere on the right, i expect f to be "later" (not in eval order but in some kind of AST/chaining/parse tree kind of order) and g to be "earlier"
2023-03-06 21:26:58 +0100 <dminuoso> Oh I see.
2023-03-06 21:27:07 +0100 <rustisafungus> but if i understand correctly, when i look at a line of code which goes
2023-03-06 21:27:15 +0100 <dminuoso> Haskell code can vary wildly in this respect
2023-03-06 21:27:23 +0100 <rustisafungus> a b c f d e g q w r
2023-03-06 21:27:29 +0100 <dminuoso> Especially because the evaluation order isnt pinned
2023-03-06 21:27:41 +0100 <c_wraith> I mean, so can C code. foo() * bar() + baz() / quux()
2023-03-06 21:27:52 +0100 <dminuoso> `f <$> foo` vs `foo <&> f`> vs `fooM >>= q` vs `q =<< q`
2023-03-06 21:27:53 +0100 <rustisafungus> there is a horrendous number of possible permutations of those functions a thru r
2023-03-06 21:27:57 +0100 <c_wraith> how does that parse? I have no idea!
2023-03-06 21:28:06 +0100 <rustisafungus> and to really know what is being specified or going on, i have to know the behavior of all of those functions
2023-03-06 21:28:26 +0100 <rustisafungus> which seems pretty onerous imo, and it's hard to imagine that the occasional improvement in expressiveness of the language is worth that kind of ambiguity
2023-03-06 21:28:53 +0100 <rustisafungus> i'm not saying C is great either
2023-03-06 21:28:55 +0100 <dminuoso> I guess this problem is amplified in languages that use functions as first class values a lot.
2023-03-06 21:29:28 +0100 <c_wraith> Any language with a recursive syntax is going to have issues related to this, and that's almost all of them
2023-03-06 21:29:37 +0100 <rustisafungus> oh it's intrinsic to recursion?
2023-03-06 21:29:48 +0100 <c_wraith> not recursion in the program
2023-03-06 21:29:51 +0100 <c_wraith> recursion in the syntax
2023-03-06 21:29:54 +0100 <rustisafungus> i mean doesn't lisp have a totally unambiguous parse tree/AST?
2023-03-06 21:30:00 +0100 <c_wraith> can you embed an expression in an expression?
2023-03-06 21:30:16 +0100 <c_wraith> if you bad macros, sure
2023-03-06 21:30:19 +0100 <c_wraith> *ban
2023-03-06 21:30:24 +0100 <dminuoso> rustisafungus: I mean this becomes a matter of API design really quickly.
2023-03-06 21:30:35 +0100 <monochrom> People do have heated (and pointless IMO) debates on "readability" when code order differs from what they intuitively (religiously IMO) expect of effect order.
2023-03-06 21:30:46 +0100 <dminuoso> For instance, do you have `append :: a -> [a] -> [a]` or `append :: [a] -> a -> [a]`
2023-03-06 21:30:51 +0100 <dminuoso> There's arguments for both
2023-03-06 21:31:01 +0100 <monochrom> I simply undefine "readability" as meaningless.
2023-03-06 21:31:05 +0100 <dminuoso> rustisafungus: ^- I think this goes into what you are thinking about, right?
2023-03-06 21:31:24 +0100 <dminuoso> (whether argument order itself is indicative or some underlying behavior)
2023-03-06 21:31:26 +0100 <dminuoso> *of some
2023-03-06 21:32:00 +0100 <c_wraith> monochrom: I'm not sure it's completely meaningless. There are limits that intend to probe just how bad readability can be, like intercal or whitespace
2023-03-06 21:32:02 +0100 <rustisafungus> dminuoso: in that case you can have a type error to help protect you, but in general there may not be type errors
2023-03-06 21:32:20 +0100 <dminuoso> rustisafungus: sure, say `append :: T.Text -> T.Text -> T.Text` then
2023-03-06 21:32:40 +0100 <dminuoso> Haskell having sections makes this even more complicated
2023-03-06 21:33:03 +0100 <dminuoso> since some functions have their argument order such that application to a single argument or section usage reads nicer.
2023-03-06 21:33:09 +0100 <dminuoso> x `elem` [1,2,3,4]
2023-03-06 21:33:13 +0100 <rustisafungus> i am not familar with sections,...
2023-03-06 21:34:04 +0100 <dminuoso> rustisafungus: sections is something like the first argument in: filter (> 3) [1..10]
2023-03-06 21:34:12 +0100 <dminuoso> Or infix notation for arbitrary functions
2023-03-06 21:34:27 +0100 <dminuoso> There'd different design decisions depending on how you anticipate a function is used
2023-03-06 21:34:48 +0100fnurglewitz(uid263868@id-263868.lymington.irccloud.com)
2023-03-06 21:34:52 +0100 <dminuoso> is it going to be applied to a single argument? Or a section? if a section, which argument is likely used more? or do you use it in infix position with backticks?
2023-03-06 21:35:08 +0100 <dminuoso> or maybe you want something that reads nicely when used as an argument all by itself?
2023-03-06 21:35:24 +0100 <dminuoso> And for some of these functions we provide multiple versions to let you decide
2023-03-06 21:35:24 +0100 <rustisafungus> hm ok, maybe i am unsophisticated
2023-03-06 21:35:27 +0100 <dminuoso> % import Data.Functor
2023-03-06 21:35:27 +0100 <yahb2> <no output>
2023-03-06 21:35:31 +0100 <dminuoso> % :t (<$>)
2023-03-06 21:35:31 +0100 <yahb2> (<$>) :: Functor f => (a -> b) -> f a -> f b
2023-03-06 21:35:33 +0100 <dminuoso> % :t (<&>)
2023-03-06 21:35:33 +0100 <yahb2> (<&>) :: Functor f => f a -> (a -> b) -> f b
2023-03-06 21:35:36 +0100 <dminuoso> We just give you both here.
2023-03-06 21:35:41 +0100 <rustisafungus> yeah i never understood that aesthetic
2023-03-06 21:35:52 +0100 <rustisafungus> in my view of the world there should be only one way...
2023-03-06 21:36:06 +0100 <dminuoso> Let me give you a code excerpt where I really like <&>
2023-03-06 21:36:14 +0100 <rustisafungus> i think if programmers want "readability" or "aesthetics" then perhaps we need something like a css file for that
2023-03-06 21:37:21 +0100 <dminuoso> rustisafungus: https://gist.github.com/dminuoso/a897218d0fab3194592a2f926f2ea8c1
2023-03-06 21:37:37 +0100 <dminuoso> This aligns and reads very nicely
2023-03-06 21:38:04 +0100 <dminuoso> When looking at the large file, its visually immediately clear that the only changing thing between each case is just the constructor on the right hand side
2023-03-06 21:38:13 +0100 <dminuoso> If you used <$> it wouldnt be evident at first glance
2023-03-06 21:38:35 +0100 <dminuoso> And this also emphasizes the parser structure a bit better
2023-03-06 21:38:43 +0100 <dminuoso> "get this thing and then stuff it inside that other thing"
2023-03-06 21:38:46 +0100 <rustisafungus> hmm ok
2023-03-06 21:39:33 +0100 <rustisafungus> i usually use whitespace alignment to achieve that, but to each his or her own
2023-03-06 21:40:16 +0100 <rustisafungus> i gotta run, thanks for the chat folks bye
2023-03-06 21:40:57 +0100 <monochrom> Nothing is perfect ("perfect", another meaningless word) so there will not be only one way. There will be multiple ways because they arise from different trade-offs.
2023-03-06 21:41:31 +0100 <monochrom> (Well either meaningless or self-contradictory)
2023-03-06 21:41:54 +0100 <dminuoso> This certainly goes towards different design philosophies.
2023-03-06 21:42:12 +0100 <dminuoso> Some languages like to constrain their user such that there is only one way to do or represent something
2023-03-06 21:42:28 +0100lyle1(~lyle@104.246.145.237) (Quit: WeeChat 3.8)
2023-03-06 21:42:33 +0100 <dminuoso> This can be seen as advantageous because its easy to learn "the way everybody does it", but it also severely limits your options to express thought.
2023-03-06 21:42:56 +0100 <dminuoso> Imagine the number of phrases you could ever utter was constrained to those listed in a small book.
2023-03-06 21:43:05 +0100 <monochrom> Yeah see, even that is making one particular trade-off and does not represent the will of other people.
2023-03-06 21:44:02 +0100 <monochrom> But on top of that, 1984 made a great mockery of that trade-off.
2023-03-06 21:44:48 +0100 <monochrom> It's why I'm liberally minded and prefer if you optimize for something else, anything else.
2023-03-06 21:44:52 +0100rustisafungus(~segfaultf@12.172.217.142) (Ping timeout: 252 seconds)
2023-03-06 21:45:49 +0100 <dminuoso> I mean mathematics is generally on the other end of the spectrum. Every paper makes up their own symbols, denotations, proof structure, font, and everything. It's the ultimate expression of thought, but it becomes very hard to understand something without first reshaping your mind to the shape you think the author had.
2023-03-06 21:46:05 +0100 <dminuoso> There'
2023-03-06 21:46:29 +0100 <monochrom> I don't think mathematics is that badly diverse.
2023-03-06 21:46:30 +0100 <dminuoso> (Or well, not sure whether its the extreme, but its at least far out there)
2023-03-06 21:46:45 +0100 <monochrom> If you s/Every paper/Every area/ then sure.
2023-03-06 21:46:56 +0100 <dminuoso> Sure. Lets go with that.
2023-03-06 21:47:17 +0100 <monochrom> Note for example how all type system papers use almost identical notation.
2023-03-06 21:47:58 +0100 <c_wraith> My favorite thing about SPJ's papers is that in his papers, code blocks are actually readable. The font looks like code, and is the content is written like code. No greek letters anywhere!
2023-03-06 21:48:07 +0100 <darkling> There's usually a convergence of notation after a few years or decades.
2023-03-06 21:48:18 +0100 <c_wraith> (actually, my favorite thing is that his papers are well written. the code stuff is second)
2023-03-06 21:48:18 +0100 <monochrom> So standardized to the point that everyone trying to write a tutorial aiming at absolute beginners still can't free themselves of the horizontal-line notation.
2023-03-06 21:48:20 +0100 <dminuoso> darkling: at least for a period.
2023-03-06 21:49:05 +0100 <dminuoso> I suppose there's at least an intrinsic moticator to reuse some styles because you want your publication to be peer reviewed and cited.
2023-03-06 21:49:28 +0100 <dminuoso> If nobody understood a thing you expressed, it would be hard to publish anything or get a high impact factor your professor really cares about.
2023-03-06 21:49:36 +0100 <dminuoso> But it's like you said very domain specific
2023-03-06 21:50:06 +0100 <dminuoso> Which is still fine, since generally a type theory paper will probably not be cared much for by someone who studies topology
2023-03-06 21:50:11 +0100 <monochrom> But then math : every area uses a different notation :: programming : every language community uses a different notation and vocab
2023-03-06 21:51:01 +0100 <monochrom> math : real analysis papers saying 0 is not a natural number :: programming : SML saying functor just means parameterized modules
2023-03-06 21:53:51 +0100 <monochrom> Ample evidence that they are social constructs, much as I hate that conclusion. :)
2023-03-06 21:56:55 +0100pavonia(~user@user/siracusa)
2023-03-06 21:59:00 +0100burakcan-burakcank
2023-03-06 21:59:52 +0100cheater_(~Username@user/cheater)
2023-03-06 22:00:16 +0100ft(~ft@p3e9bc443.dip0.t-ipconnect.de)
2023-03-06 22:01:08 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 22:01:52 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)
2023-03-06 22:01:58 +0100cheater_cheater
2023-03-06 22:05:38 +0100 <ncf> homotopy type theory has entered the chat
2023-03-06 22:05:56 +0100mal1lieven
2023-03-06 22:10:18 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d) (Remote host closed the connection)
2023-03-06 22:11:38 +0100ddellacosta(~ddellacos@146.70.166.10) (Quit: WeeChat 3.8)
2023-03-06 22:13:38 +0100ddellacosta(~ddellacos@146.70.166.10)
2023-03-06 22:13:49 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2023-03-06 22:15:11 +0100talismanick(~talismani@c-98-238-242-189.hsd1.ca.comcast.net)
2023-03-06 22:22:51 +0100coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 248 seconds)
2023-03-06 22:31:59 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com)
2023-03-06 22:32:09 +0100segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-03-06 22:34:35 +0100talismanick(~talismani@c-98-238-242-189.hsd1.ca.comcast.net) (Ping timeout: 248 seconds)
2023-03-06 22:34:56 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-06 22:36:13 +0100trev(~trev@user/trev) (Remote host closed the connection)
2023-03-06 22:40:33 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 255 seconds)
2023-03-06 22:49:54 +0100sammelweis_(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-06 22:50:57 +0100a_coll(~acoll@45.92.120.189) (Remote host closed the connection)
2023-03-06 22:51:07 +0100segfaultfizzbuzz(~segfaultf@12.172.217.142) (Ping timeout: 248 seconds)
2023-03-06 22:51:17 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-06 22:53:19 +0100bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2023-03-06 22:58:13 +0100fut(~futar@129.234.0.191)
2023-03-06 22:58:18 +0100smeouros(~doo@185.44.146.69) (Remote host closed the connection)
2023-03-06 22:58:45 +0100Inst(~Inst@2601:6c4:4081:54f0:d8ed:99cb:5666:6ba0) (Ping timeout: 246 seconds)
2023-03-06 22:59:07 +0100fut(~futar@129.234.0.191) ()
2023-03-06 22:59:24 +0100segfaultfizzbuzz(~segfaultf@12.172.217.142)
2023-03-06 23:01:23 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2023-03-06 23:01:50 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2023-03-06 23:03:29 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 255 seconds)
2023-03-06 23:04:34 +0100gmg(~user@user/gehmehgeh)
2023-03-06 23:04:36 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net)
2023-03-06 23:06:18 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-03-06 23:06:23 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com) (Ping timeout: 248 seconds)
2023-03-06 23:09:35 +0100merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
2023-03-06 23:10:48 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d)
2023-03-06 23:13:10 +0100npm_i_kurbus(~npm_i_kur@user/kurbus)
2023-03-06 23:14:44 +0100Albina_Pavlovna(~Albina_Pa@cpe-66-65-40-132.nyc.res.rr.com)
2023-03-06 23:14:44 +0100emmanuelux(~emmanuelu@user/emmanuelux)
2023-03-06 23:15:04 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:404f:ae08:50c4:925d) (Ping timeout: 252 seconds)
2023-03-06 23:15:36 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2023-03-06 23:15:59 +0100rustisafungus(~segfaultf@12.172.217.142)
2023-03-06 23:18:25 +0100segfaultfizzbuzz(~segfaultf@12.172.217.142) (*.net *.split)
2023-03-06 23:18:25 +0100son0p(~ff@181.136.122.143) (*.net *.split)
2023-03-06 23:18:30 +0100shapr(~user@68.54.166.125)
2023-03-06 23:23:20 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2023-03-06 23:24:32 +0100sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2023-03-06 23:29:27 +0100tomboy64(~tomboy64@user/tomboy64)
2023-03-06 23:29:34 +0100michalz(~michalz@185.246.204.107) (Remote host closed the connection)
2023-03-06 23:42:02 +0100abrar(~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
2023-03-06 23:55:02 +0100shapr(~user@68.54.166.125) (Ping timeout: 268 seconds)
2023-03-06 23:55:41 +0100zeenk(~zeenk@2a02:2f04:a20d:f900::7fe)
2023-03-06 23:56:32 +0100cheater(~Username@user/cheater) (Ping timeout: 248 seconds)