2022/10/11

2022-10-11 00:00:12 +0200finsternis(~X@23.226.237.192) (Read error: Connection reset by peer)
2022-10-11 00:01:01 +0200lottaquestions_(~nick@2607:fa49:503e:7100:253:563:daad:1d7e) (Ping timeout: 246 seconds)
2022-10-11 00:02:33 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds)
2022-10-11 00:03:20 +0200ozkutuk[m](~ozkutuktc@2001:470:69fc:105::2:9af8)
2022-10-11 00:07:08 +0200jmd_(~jmdaemon@user/jmdaemon)
2022-10-11 00:07:47 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2022-10-11 00:12:52 +0200foul_owl(~kerry@174-21-75-230.tukw.qwest.net) (Ping timeout: 265 seconds)
2022-10-11 00:14:00 +0200hochata(~user@user/hochata) (Remote host closed the connection)
2022-10-11 00:17:42 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2022-10-11 00:18:10 +0200zns(~zns@user/zns) (Quit: zzz)
2022-10-11 00:18:32 +0200zns(~zns@user/zns)
2022-10-11 00:18:39 +0200ozkutuk[m](~ozkutuktc@2001:470:69fc:105::2:9af8) (Quit: Reconnecting)
2022-10-11 00:18:53 +0200ozkutuk[m](~ozkutuktc@2001:470:69fc:105::2:9af8)
2022-10-11 00:18:57 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2022-10-11 00:19:56 +0200ozkutuk[m](~ozkutuktc@2001:470:69fc:105::2:9af8) (Client Quit)
2022-10-11 00:20:12 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8)
2022-10-11 00:20:41 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8) (Client Quit)
2022-10-11 00:20:55 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8)
2022-10-11 00:23:45 +0200beteigeuze1(~Thunderbi@89.187.168.50)
2022-10-11 00:24:50 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2022-10-11 00:25:16 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds)
2022-10-11 00:25:17 +0200beteigeuze1beteigeuze
2022-10-11 00:25:50 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-11 00:26:56 +0200foul_owl(~kerry@23.82.194.107)
2022-10-11 00:28:16 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f)
2022-10-11 00:35:27 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8) (Quit: Reconnecting)
2022-10-11 00:35:29 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-10-11 00:35:44 +0200jinsun(~jinsun@user/jinsun)
2022-10-11 00:35:45 +0200ozkutuk[m](~ozkutukm]@2001:470:69fc:105::2:9af8)
2022-10-11 00:37:39 +0200zns(~zns@user/zns) (Quit: zzz)
2022-10-11 00:38:10 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 268 seconds)
2022-10-11 00:39:18 +0200ozkutuk[m](~ozkutukm]@2001:470:69fc:105::2:9af8) (Client Quit)
2022-10-11 00:39:32 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8)
2022-10-11 00:43:15 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-10-11 00:47:25 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 00:48:45 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 00:50:33 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-10-11 00:53:06 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 00:53:32 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-11 00:54:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-11 00:54:55 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2022-10-11 00:57:15 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-11 00:58:00 +0200acidjnk(~acidjnk@p200300d6e7137a503d80e44891d38f9e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-11 00:58:38 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 01:01:03 +0200xff0x(~xff0x@2405:6580:b080:900:ea80:7ffc:2e04:51ee)
2022-10-11 01:02:07 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-10-11 01:02:42 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-11 01:04:19 +0200ph88(~ph88@2a02:8109:9e00:71d0:7166:ab0e:b806:c76c)
2022-10-11 01:05:38 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!)
2022-10-11 01:08:03 +0200perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.6)
2022-10-11 01:09:24 +0200chomwitt(~chomwitt@2a02:587:dc0c:c200:b8b0:dc:a578:bfaa) (Ping timeout: 264 seconds)
2022-10-11 01:09:33 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-10-11 01:09:42 +0200perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-10-11 01:10:37 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-10-11 01:14:51 +0200xff0x(~xff0x@2405:6580:b080:900:ea80:7ffc:2e04:51ee) (Ping timeout: 260 seconds)
2022-10-11 01:15:47 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
2022-10-11 01:16:20 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-10-11 01:18:08 +0200argento(~argent0@191.81.194.124)
2022-10-11 01:19:25 +0200DDR(~DDR@2604:3d08:4c7f:8250:79f3:1c2b:2580:abd1) (Ping timeout: 246 seconds)
2022-10-11 01:20:40 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-10-11 01:22:38 +0200causal(~user@50.35.83.177)
2022-10-11 01:32:01 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 01:32:16 +0200ddellacosta(~ddellacos@86.106.143.227)
2022-10-11 01:32:19 +0200finsternis(~X@23.226.237.192)
2022-10-11 01:32:47 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-11 01:32:47 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-11 01:32:47 +0200wroathe(~wroathe@user/wroathe)
2022-10-11 01:38:36 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-11 01:42:33 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-10-11 01:48:56 +0200dcoutts__(~duncan@host86-163-164-210.range86-163.btcentralplus.com)
2022-10-11 01:51:36 +0200dcoutts_(~duncan@host86-170-66-8.range86-170.btcentralplus.com) (Ping timeout: 260 seconds)
2022-10-11 02:01:24 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-10-11 02:02:40 +0200causal(~user@50.35.83.177)
2022-10-11 02:02:59 +0200beteigeuze(~Thunderbi@89.187.168.50) (Remote host closed the connection)
2022-10-11 02:03:18 +0200beteigeuze(~Thunderbi@89.187.168.50)
2022-10-11 02:12:44 +0200arkeet(arkeet@moriya.ca)
2022-10-11 02:18:24 +0200raym(~aritra@user/raym) (Ping timeout: 264 seconds)
2022-10-11 02:23:45 +0200raym(~aritra@user/raym)
2022-10-11 02:29:27 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-11 02:31:02 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.6)
2022-10-11 02:32:03 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 248 seconds)
2022-10-11 02:32:35 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 02:33:51 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 02:40:03 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2022-10-11 02:42:45 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 02:45:08 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-11 02:47:36 +0200nate1(~nate@98.45.169.16)
2022-10-11 02:48:50 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 02:48:51 +0200 <Clinton[m]> Is there a function like this (or a generalisation):... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/6209b5251f695d948d8bcf677b32e7c7832a…>)
2022-10-11 02:50:36 +0200 <EvanR> taking an Either a b as an input, weird
2022-10-11 02:50:53 +0200 <Clinton[m]> * -> d))`, as
2022-10-11 02:52:12 +0200 <Clinton[m]> In my particular case I've got an `EitherT SomeError m (Maybe Good)` and I want to transform this into `EitherT ABiggerErrorType m Good`.
2022-10-11 02:52:27 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-10-11 02:52:58 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Ping timeout: 244 seconds)
2022-10-11 02:53:20 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2022-10-11 02:53:35 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-10-11 02:54:40 +0200 <Clinton[m]> like:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/0240ecca2d280e5e937b9cb4cfd6f2114081…>)
2022-10-11 02:54:58 +0200 <Clinton[m]> * like:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/1498984f3fd3e6f6077d5b5db03fc8b0a51e…>)
2022-10-11 02:58:07 +0200 <EvanR> error hierarchy
2022-10-11 02:58:22 +0200lottaquestions_(~nick@2607:fa49:503e:7100:a9a5:f580:1f2d:9d23)
2022-10-11 03:01:39 +0200 <ski> pure (\x y -> x ++ '.' : y) <$> many1' digit <* char '>' <*> many1' digit -- argento
2022-10-11 03:02:59 +0200 <ski> DrScheme^WDrRacket does have "language levels", where you only introduce a simplified fragment of the system, at a time. Helium did a simplified Haskell, for beginners (more attention to diagnostics, skipping type classes, ..)
2022-10-11 03:03:55 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-10-11 03:04:37 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 03:06:02 +0200 <ski> @type Control.Monad.Except.mapExceptT . fmap -- Clinton[m]
2022-10-11 03:06:04 +0200 <lambdabot> Functor n => (Either e a -> Either e' b) -> ExceptT e n a -> ExceptT e' n b
2022-10-11 03:07:04 +0200 <johnjaye> idk. i would think those types of things would be meaningless unless they come with the base product, as dr. scheme does
2022-10-11 03:07:15 +0200Franciman(~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer)
2022-10-11 03:07:18 +0200 <johnjaye> something like, the default is baby mode and then you have to enter a command to enable advanced mode.
2022-10-11 03:07:57 +0200 <ski> language extensions are something like that, except starting from the "default full language", tacking more on
2022-10-11 03:08:29 +0200 <ski> .. so, maybe we need "language restrictions" ?
2022-10-11 03:09:50 +0200 <ski> gqplox : error actually tells you that it expected a function but found a list
2022-10-11 03:11:58 +0200 <johnjaye> like i'm learning haskell and i had no idea what that is
2022-10-11 03:12:02 +0200 <johnjaye> nor do i really have the motivation to try it
2022-10-11 03:12:06 +0200 <EvanR> {-# UNLANGUAGE NoPolymorphism #-}
2022-10-11 03:12:36 +0200 <EvanR> {-# LANGUAGE NoSyntaxSugar #-}
2022-10-11 03:12:42 +0200 <monochrom> Wait that's double-negative. :)
2022-10-11 03:12:48 +0200 <johnjaye> ski: the logic would be that advanced users would know to pass some option like -abc to get the full language, where a beginner just types 'ghci' say
2022-10-11 03:13:08 +0200 <monochrom> {-# ain't no GADTs #-}
2022-10-11 03:13:26 +0200 <EvanR> in the spirit of use more words and less configuration options, have two different ghci commands
2022-10-11 03:13:46 +0200 <EvanR> ghci vs noobci or something
2022-10-11 03:13:51 +0200 <jackdk> Isn't that exactly what language extensions do?
2022-10-11 03:14:15 +0200 <EvanR> yeah it's pretty annoying too xD
2022-10-11 03:14:37 +0200 <EvanR> first, a page of extensions activated in every file for stuff I consider "should be in the base game"
2022-10-11 03:14:41 +0200 <monochrom> Well there is also the issue with Prelude being too large and you need a smaller one to go with a smaller language.
2022-10-11 03:15:19 +0200 <ski> johnjaye : "i had no idea what that is" -- "that" being ?
2022-10-11 03:16:00 +0200 <ski> johnjaye : yea. or perhaps beginners could use `ghci -basic' or something
2022-10-11 03:16:30 +0200 <ski> monochrom : "yea, sure."
2022-10-11 03:16:56 +0200 <ski> (re some linguist claiming that affirmative was never used to mean "no")
2022-10-11 03:17:33 +0200 <ski> (oh, actually, i think it was "yea, yea.", doubling affirmative, now that i think about it)
2022-10-11 03:17:43 +0200 <johnjaye> ski: beginning users are unlikely to do that. but i'm not try to be dogmatic.
2022-10-11 03:17:55 +0200 <monochrom> I think "yea yea" is sarcasm and so it applies to "no" too.
2022-10-11 03:18:12 +0200 <EvanR> some stuff extensions are commonly used for are... pretty common
2022-10-11 03:18:15 +0200 <gqplox> ski: yep I was being dumb oops, thanks for that
2022-10-11 03:18:16 +0200 <johnjaye> in general i think most stuff in computing is not geared around educating newcomers except maybe scheme. but scheme is basically purely academic and hard to write real programs with
2022-10-11 03:18:19 +0200 <johnjaye> so you see the problem
2022-10-11 03:18:22 +0200 <ski> johnjaye : an instructor or tutorial/book could tell them to supply that, to begin with .. but then not everone goes through that route
2022-10-11 03:18:29 +0200Franciman(~Franciman@mx1.fracta.dev)
2022-10-11 03:18:53 +0200 <johnjaye> now that i think about it i'm not sure which of these links i have is the official haskell tutorial. i have 4 or 5 bookmarks
2022-10-11 03:19:02 +0200 <gqplox> Although I was trying an example after where where it said something like "probably incorrect no of arguments supplied, got one expected two" or something
2022-10-11 03:19:09 +0200 <EvanR> haskell.org/tutorial \o/
2022-10-11 03:19:12 +0200 <johnjaye> one is learn you a haskell. the other says haskell 98 intro. learn haskell in x minutes
2022-10-11 03:19:22 +0200 <EvanR> vintage tutorial
2022-10-11 03:20:00 +0200 <monochrom> Every educational language fails to get traction.
2022-10-11 03:20:11 +0200 <EvanR> learn you a haskell isn't the official tutorial, but it crazy how much inertia it has
2022-10-11 03:20:13 +0200 <ski> gqplox : point is to learn what to look for first (mismatch) in error messages, see if that gives a clue for the source of the problem in the source, before trying to more carefully parse the error message
2022-10-11 03:21:04 +0200 <johnjaye> monochrom: well that's the catch-22. it seems like you have to be an educational language to really be newbie-friendly. but then that's all you do.
2022-10-11 03:21:20 +0200 <johnjaye> anyway. i'm learning a lot of haskell and it's pretty fun. i saw a strange loop talk about it. a couple actually
2022-10-11 03:21:45 +0200rekahsoft(~rekahsoft@142.189.68.220)
2022-10-11 03:22:20 +0200 <johnjaye> i think i saw hoogle as well but couldn't tell if it was official or not
2022-10-11 03:22:34 +0200rekahsoft(~rekahsoft@142.189.68.220) (Remote host closed the connection)
2022-10-11 03:22:37 +0200 <gqplox> Yes I agree, I felt kind of bad asking because I'm that beginner asking "why doesn't this work, it gives this error" and the error explains exactly what the problem is, so sorry for that.
2022-10-11 03:23:08 +0200rekahsoft(~rekahsoft@142.189.68.220)
2022-10-11 03:23:26 +0200 <monochrom> The human brain naturally petrifies upon seeing things marked as error messages.
2022-10-11 03:23:54 +0200 <monochrom> If I say "please press enter" you will press enter.
2022-10-11 03:24:28 +0200 <monochrom> If I say "an error has occurred, but it can be auto-fixed if you press enter" you freeze and you don't know what to do.
2022-10-11 03:24:43 +0200 <EvanR> especially in case it says, "Keyboard not detected. Press F1 to continue"
2022-10-11 03:24:50 +0200 <monochrom> haha
2022-10-11 03:24:56 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
2022-10-11 03:24:58 +0200 <johnjaye> i've just accepted that error messages are part of the learning process.
2022-10-11 03:25:07 +0200 <gqplox> Haha true, I've improved a bit but I still have a long way to go :)
2022-10-11 03:25:15 +0200 <johnjaye> meaning. you should be actively trying to cause errors and determining what in the code you typed that caused that error.
2022-10-11 03:25:25 +0200 <gqplox> I remember I saw my fried using terminal for the first time, I thought ls and cat were like black magic haha
2022-10-11 03:25:32 +0200 <gqplox> friend*
2022-10-11 03:25:45 +0200 <johnjaye> well they are
2022-10-11 03:25:58 +0200 <johnjaye> how many coreutil commands do you know outside of those 'magic' commands like cat, ls, grep? i bet not a lot
2022-10-11 03:26:56 +0200 <johnjaye> and if you do then you're yottachad and don't need me to tell you that
2022-10-11 03:27:37 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 252 seconds)
2022-10-11 03:27:55 +0200 <EvanR> unless you're on one of these new fangled systems with everything compiled into the kernel or something, you can even look in /bin or /usr/bin to see all the commands xD
2022-10-11 03:28:10 +0200 <EvanR> and wonder wtf they are. And then read the manual
2022-10-11 03:28:40 +0200 <johnjaye> with learning it's always a chicken and egg problem though. as video game designers will tell you
2022-10-11 03:28:47 +0200 <johnjaye> how do you communicate that to the player without just telling them
2022-10-11 03:29:26 +0200 <johnjaye> i remember trying to figure out how printf could print hex characters on bsd. the man page then said This program deliberately does not convert hexadeximal codes.
2022-10-11 03:29:31 +0200 <ski> gqplox : error messages are known to take a while to get used to, to learn what to focus on most / at first, and learning the most common reasons for particular kinds of errors
2022-10-11 03:29:33 +0200 <johnjaye> so... that was helpful to know!
2022-10-11 03:29:37 +0200 <ski> gqplox : <https://pics.me.me/an-engineer-helping-a-designer-whoa-youre-a-hacker-no-43162553.png>
2022-10-11 03:29:50 +0200 <EvanR> there will be a side quest on disc 3 which leads them to /usr/bin with the promise of loot, and they will wonder how the hell they got this far without knowing
2022-10-11 03:29:52 +0200 <johnjaye> but it's a bit weird to just out and out tell you that
2022-10-11 03:30:04 +0200 <gqplox> Hahah true
2022-10-11 03:30:48 +0200 <EvanR> I vaguely remember a "unix tutorial" telling me to type `where ls' or something to see where the program is located
2022-10-11 03:31:09 +0200 <EvanR> so at least that's worth mentioning
2022-10-11 03:31:10 +0200 <gqplox> Well I'll keep trying and come back here when I inevitably get stuck again ;) Hopefully for a better reason though
2022-10-11 03:31:11 +0200 <ski> johnjaye : istr HL2 had some nice unobtrusive tutorial stuff (barrel is in the way (you can whack or shoot barrels to turn them on fire), crate is in the way (you can get goods from these crates), ..)
2022-10-11 03:31:36 +0200 <gqplox> Yeah I found which useful a few times when I had some issues with homebrew
2022-10-11 03:31:41 +0200 <johnjaye> EvanR: that's some unix tutorial since 'where' is a windows command...
2022-10-11 03:31:58 +0200 <monochrom> Soon, if you know about files and folders, you will be a hacker too. Because there is a new generation of young people who have only used phones and tablets, not even Windows or Mac.
2022-10-11 03:32:05 +0200frost(~frost@user/frost)
2022-10-11 03:32:11 +0200 <EvanR> so windows stole the where command eh
2022-10-11 03:32:17 +0200 <EvanR> embrace extend and so on
2022-10-11 03:32:44 +0200 <ski> johnjaye : "stuff in computing is not geared around educating newcomers" -- you might enjoy "Re: Mercury in academic teaching?" by Richard A. O'Keefe in 2006-10-(09,10) at <https://www.mercurylang.org/list-archives/users/2006-October/004000.html>,<https://www.mercurylang.org/list-archives/users/2006-October/004011.html>
2022-10-11 03:33:02 +0200 <ski> "Mercury has a much steeper learning curve, but in many cases the compiler tells you when your program is not going to do what you thought it would."
2022-10-11 03:33:12 +0200 <ski> "That's not a \"but\", it's really a \"because\".","Mercury has a much steeper learning curve, BECAUSE in many cases the compiler tells you when your program is not going to do what you thought it would, and you never get to find out what would have happened, so you don't understand what the compiler is trying to tell you."
2022-10-11 03:33:32 +0200 <ski> "Over the years, one of the top complaints that I have heard from people who have taken programming courses and found them very hard going is \"I could never make sense of the compiler error messages.\""
2022-10-11 03:33:43 +0200 <ski> "Come to think of it, one of the things that drives me up the wall is 3rd year students handing in C programs with obvious problems that the C compiler DID tell them about, but they weren't EXPECTING to understand anything the compiler said, so they didn't bother looking at what it did say or even the particular lines it was talking about."
2022-10-11 03:33:51 +0200 <ski> "What I am saying here has been said before, at greater length, with a wealth of supporting evidence, by my elders and betters: A programming system meant to be used by people learning a new kind of programming language had better have really good error reports."
2022-10-11 03:34:17 +0200 <gqplox> I heard that the rust compiler has really nice error messages
2022-10-11 03:35:59 +0200 <ski> generally, people often have an unhealthy attitude towards errors, want to brush them off (e.g. to run-time). or having a system "helpfully" correct a mistake you did (especially if without telling you), decreasing the utility of negative feedback, lowering edit distance to an accepted program that does something unintended
2022-10-11 03:36:22 +0200beteigeuze(~Thunderbi@89.187.168.50) (Ping timeout: 244 seconds)
2022-10-11 03:36:33 +0200 <ski> (correct, or guess .. often the same thing, i suppose)
2022-10-11 03:36:45 +0200 <johnjaye> well. c compiler error messages are terrible
2022-10-11 03:37:00 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 268 seconds)
2022-10-11 03:37:02 +0200 <monochrom> Generally, people are greedy.
2022-10-11 03:37:03 +0200 <johnjaye> i would expect students to be told this and to learn to understand them as much as the preprocessor or linker
2022-10-11 03:37:26 +0200 <ski> ("oh, this input doesn't make sense. let me just return a nonsensical result you probably won't detect, rather that complaining loudly about the issue")
2022-10-11 03:37:55 +0200 <ski> johnjaye : true. but they're still better than nothing
2022-10-11 03:38:26 +0200 <johnjaye> i think it hits on the larger issue also of reasoning about code. haskell is kind of the opposite of c in that respect from what i can tell
2022-10-11 03:38:39 +0200 <johnjaye> c has all these arcane rules about when something might get converted to something else or when this operation will affect this other one.
2022-10-11 03:38:48 +0200 <johnjaye> whereas haskell is very mathematical and composable
2022-10-11 03:38:59 +0200 <monochrom> Is that why I don't find GHC error messages terrible? I had got used to GCC error messages. :)
2022-10-11 03:39:09 +0200 <EvanR> PHP's white screen effect. No error messages, no problem xD
2022-10-11 03:39:14 +0200 <EvanR> and no website. It's great
2022-10-11 03:39:19 +0200 <johnjaye> the most bizarre one is that literal constants get placed into unsigned, signed, unsigned, signed types depending on size. the smallest one first
2022-10-11 03:39:26 +0200 <johnjaye> how are you supposed to reason about that
2022-10-11 03:40:26 +0200cyphase(~cyphase@user/cyphase)
2022-10-11 03:40:32 +0200 <EvanR> I mainly pretend number constants are just integers (math) until the very last minute, and hope it doesn't matter xD
2022-10-11 03:41:08 +0200 <ski> EvanR : TCsh has `where' (and `which') as builtins
2022-10-11 03:41:39 +0200 <EvanR> oh dang the command is which
2022-10-11 03:43:53 +0200 <EvanR> in the spirit of ask forgiveness instead of permission, my C implementation uses infinite precision integers. Until it doesn't
2022-10-11 03:44:11 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-11 03:44:46 +0200 <EvanR> unfortunately you don't usually get an error message when it doesn't work!
2022-10-11 03:45:14 +0200 <ski> johnjaye : "the larger issue also of reasoning about code" -- i would be happy if the larger programming "community" (such as it is ..), could start to acknowledge and talk about reasonability ("predictive power", including refactoring ease) more comparably to expressivity ("cavalier power" .. this and that language feature)
2022-10-11 03:45:35 +0200 <EvanR> but in particular problems, if you can't / don't observe finite precision, it effectively doesn't exist
2022-10-11 03:45:39 +0200 <ski> .. someone should build the DeathStation 9000
2022-10-11 03:45:54 +0200 <johnjaye> heh. well c is unique. reading it is like reading a commentary on the constitution with 50 volume set
2022-10-11 03:46:09 +0200 <johnjaye> i was studying this for example today: https://port70.net/~nsz/c/c11/n1570.html#6.5.6p9
2022-10-11 03:46:23 +0200 <ski> ah, you mean reading the standard
2022-10-11 03:46:30 +0200 <johnjaye> now imagine saying something like that about haskell.
2022-10-11 03:46:39 +0200 <EvanR> johnjaye, join me in reviewing documents on B instead. It's like going back to original D&D
2022-10-11 03:46:50 +0200 <EvanR> a breath of fresh air
2022-10-11 03:46:51 +0200 <johnjaye> 'the two integers in haskell shall be subtracte but if ONE of them is larger than the other and the other one is smaller by 2 than the former THEN the result is defined as..."
2022-10-11 03:47:11 +0200 <johnjaye> haha. isn't there a B port somewhere. i think wikipedia had a link
2022-10-11 03:47:34 +0200 <EvanR> just the documentation is the topic at the moment heh
2022-10-11 03:47:43 +0200 <EvanR> or what's left of it
2022-10-11 03:47:54 +0200 <johnjaye> yeah i heard about it but didn't read it
2022-10-11 03:47:57 +0200 <johnjaye> is it interesting
2022-10-11 03:48:09 +0200 <EvanR> just short and to the point
2022-10-11 03:49:03 +0200 <EvanR> https://www.bell-labs.com/usr/dmr/www/kbman.pdf
2022-10-11 03:49:08 +0200 <ski> EvanR : before 3rd ed. ?
2022-10-11 03:49:32 +0200 <EvanR> lol 3rd edition
2022-10-11 03:49:45 +0200 <EvanR> you hurt my soul
2022-10-11 03:54:27 +0200 <monochrom> w00t, McIlroy
2022-10-11 03:55:03 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com)
2022-10-11 03:56:43 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) (Client Quit)
2022-10-11 03:57:23 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com)
2022-10-11 03:57:51 +0200 <ski> EvanR : ah, that's nice. B has block-less functions
2022-10-11 03:58:27 +0200mr_mxyzptlk(~Srain@2806:266:48a:240:a579:dfff:fd47:c997) (Remote host closed the connection)
2022-10-11 03:59:21 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-11 03:59:41 +0200ski. o O ( "The character set used in B is ANSCII." )
2022-10-11 04:00:55 +0200 <EvanR> yeah that was funny at first now I can't stop finding various spellings of ascii
2022-10-11 04:01:11 +0200 <ski> escape sequences doubled as digraphs ?
2022-10-11 04:01:11 +0200 <EvanR> which was basically brand new at that time
2022-10-11 04:01:30 +0200ski's seen "PETSCII"
2022-10-11 04:02:12 +0200 <EvanR> no digraphs in that document, though it's pretty old and B went on to get tweaks at each site
2022-10-11 04:02:34 +0200ubert1(~Thunderbi@77.119.164.69.wireless.dyn.drei.com)
2022-10-11 04:02:56 +0200ubert(~Thunderbi@77.119.192.27.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
2022-10-11 04:02:57 +0200 <ski> yea, i was wondering why `*(' and `*)' would expand to `{' and `}', if not also outside string and character literals
2022-10-11 04:02:57 +0200ubert1ubert
2022-10-11 04:03:36 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2022-10-11 04:04:04 +0200 <EvanR> maybe your keyboard didn't have those keys but they still needed to process them, since they are in ascii
2022-10-11 04:04:23 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com)
2022-10-11 04:04:32 +0200 <EvanR> but then how do you write code
2022-10-11 04:04:41 +0200yuzhao_(~yuzhao@36.112.45.72)
2022-10-11 04:04:48 +0200 <EvanR> well, maybe they were digraphs after all
2022-10-11 04:05:00 +0200 <ski> ("ANSCII" sounds like emphasizing that it came from ANSI .. or maybe it's just a confusion/misspelling)
2022-10-11 04:06:29 +0200yuzhao(~yuzhao@36.112.45.72) (Ping timeout: 252 seconds)
2022-10-11 04:06:53 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 04:07:42 +0200 <EvanR> you can still find references to the American National Standard Code for Information Interchange https://www.ibm.com/docs/en/zvse/6.2?topic=SSB27H_6.2.0/fa2mr_app_b_ascii.html
2022-10-11 04:09:21 +0200zzzzzz[m]
2022-10-11 04:09:26 +0200[_][itchyjunk]
2022-10-11 04:09:55 +0200zzz[m]zzz
2022-10-11 04:11:36 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-11 04:11:37 +0200 <Clinton[m]> <ski> "@type Control.Monad.Except...." <- Thanks ski that's close enough!
2022-10-11 04:11:50 +0200 <Clinton[m]> > <@ski:libera.chat> @type Control.Monad.Except.mapExceptT . fmap -- Clinton
2022-10-11 04:11:51 +0200 <Clinton[m]> * Thanks ski that'll do the job!
2022-10-11 04:11:52 +0200 <lambdabot> <hint>:1:1: error: parse error on input ‘<@’
2022-10-11 04:13:07 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 04:13:24 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-11 04:15:09 +0200extratail(~archie@2804:214:82be:8ae9:99a:eac4:866e:815c)
2022-10-11 04:16:06 +0200 <extratail> Hello. There's a directory called `.stack` in my $HOME_DIR . It has a sort of big size. What happens if I delete it?
2022-10-11 04:18:40 +0200 <jackdk> I haven't used stack for years, but I think you'll just have to redownload GHCs and packages if you run stack again. There might also be "global project" settings in there I think
2022-10-11 04:19:16 +0200gqplox(~textual@97e654ef.skybroadband.com) (Quit: Textual IRC Client: www.textualapp.com)
2022-10-11 04:20:15 +0200 <ski> (fwiw, CC64 (non-cross C compiler, written in ultraFORTH^WvolksFORTH) for Commodore 64, by Philip Zembrod (who semi-recently took the project up again),
2022-10-11 04:20:18 +0200 <ski> <https://github.com/pzembrod/cc64>,<https://sourceforge.net/projects/cc64/>,<https://telarity.com/~dan/cbm/languages.html#C>,<http://www.csbruce.com/cbm/ftp/c64/programming/cc64v0[34].(zip|txt)>(,<https://www.lyonlabs.org/commodore/onrequest/collections.html>) patched PETSCII charset, to include characters `\^_{|}~', rather than using digraphs)
2022-10-11 04:20:26 +0200 <ski> Clinton[m] : you can still do it by hand, if you want to ..
2022-10-11 04:20:54 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2022-10-11 04:20:57 +0200 <ski> @type (ExceptT .) . (. runExceptT) . fmap
2022-10-11 04:20:58 +0200 <lambdabot> Functor m => (Either e1 a1 -> Either e2 a2) -> ExceptT e1 m a1 -> ExceptT e2 m a2
2022-10-11 04:21:38 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com)
2022-10-11 04:23:59 +0200 <extratail> jackdk, Stack is not a recommended tool anymore? What's the standard now? Just Cabal?
2022-10-11 04:24:51 +0200 <jackdk> I have personally had no major problems with cabal for many years. Stack still appears to be developed and I think had a release recently
2022-10-11 04:25:53 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-10-11 04:26:58 +0200 <jackdk> I think also it still doesn't support backpack or named internal libraries, which has slowed adoption of such things. Is that still true?
2022-10-11 04:27:47 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-10-11 04:28:50 +0200andreabedini(~andreabed@8s8kj681vht2qj3xkwc5.ip6.superloop.com)
2022-10-11 04:35:53 +0200 <EvanR> Oh, I heard backpack is dead in the water
2022-10-11 04:36:37 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-10-11 04:36:37 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-10-11 04:36:37 +0200finn_elijaFinnElija
2022-10-11 04:41:35 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.2))
2022-10-11 04:41:49 +0200ski. o O ( "C compiler written in Forth" in 2020-12-18 at <https://www.youtube.com/watch?v=u4_gSYVh87c>,"cc64 - a Small C compiler written in Forth" in 2020-12-29 at <https://www.youtube.com/watch?v=X7kJiuD_PFM> by Philip Zembrod )
2022-10-11 04:42:49 +0200 <ski> extratail : "The Cabal/Stack Disambiguation Guide" in 2019-07-03 at <https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07> might be interesting
2022-10-11 04:43:04 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com)
2022-10-11 04:43:16 +0200leungbk(~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) (Remote host closed the connection)
2022-10-11 04:44:18 +0200 <EvanR> they really cut down on the C
2022-10-11 04:44:20 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 04:44:26 +0200 <EvanR> probably for the better
2022-10-11 04:45:42 +0200 <ski> "Supported subset of the C language cc64 is based on the old K&R standard. No ANSI, sorry. There are, however, some restrictions. Only int and char as basic data types are supported. No structs, no unions, only one level of pointer (nothing like char **p). No type casts. No goto. #define can only give a numeric value to a macro. No proper text substitution. No macros with parameters. No #undef. No
2022-10-11 04:45:48 +0200 <ski> #ifdef/#ifndef. No typedef, no enum. That's it, I think."
2022-10-11 04:47:01 +0200 <ski> "C extensions There are two non-standard declaration forms in cc64. They both include an operator, /= and *=. With /= an explicit value is assigned to a symbol, e.g. extern int i /= 0x9ffe ; extern char fgetc() /= 0xa02 ; They usually are not used explicitly in programs but appear in library header files (see below)."
2022-10-11 04:47:24 +0200Typedfern(~Typedfern@216.red-83-37-34.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2022-10-11 04:47:53 +0200 <ski> "cc64 supports a special kind of functions. They only take one argument and can be called very fast without any software stack manipulation, just with the parameter in a/x. They will normally be written in assembler and are declared with *=, e.g. extern char getchar() *= 0xffcf ;"
2022-10-11 04:49:24 +0200tgi(~thegeekin@189.180.118.117)
2022-10-11 04:51:21 +0200skiidly wonders in which environments `HOME_DIR' is set
2022-10-11 04:54:51 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-10-11 04:55:56 +0200thegeekinside(~thegeekin@189.180.118.117) (Ping timeout: 244 seconds)
2022-10-11 04:56:14 +0200thegeekinside(~thegeekin@189.180.118.117)
2022-10-11 04:56:36 +0200 <EvanR> paraphrase "you know what would be really cool, if you take your parser for C and make it output forth code" xD
2022-10-11 04:56:42 +0200nate1(~nate@98.45.169.16)
2022-10-11 04:57:10 +0200 <EvanR> (instead of machine code)
2022-10-11 04:57:27 +0200thegeekinside(~thegeekin@189.180.118.117) (Remote host closed the connection)
2022-10-11 04:57:35 +0200tgi(~thegeekin@189.180.118.117) (Remote host closed the connection)
2022-10-11 04:57:49 +0200td_(~td@muedsl-82-207-238-191.citykom.de) (Ping timeout: 252 seconds)
2022-10-11 04:57:51 +0200 <probie> Is backpack dead, or simply not seeing much use, because of a lack of support from things like haddock?
2022-10-11 04:58:32 +0200 <probie> (or alternatively, dead because of a lack of convincing use cases)
2022-10-11 04:59:43 +0200td_(~td@94.134.91.197)
2022-10-11 05:00:25 +0200thegeekinside(~thegeekin@189.180.118.117)
2022-10-11 05:02:05 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-10-11 05:06:50 +0200 <sm> dead or dormant because it doesn't help haskell users and tool devs already overloaded by complexity
2022-10-11 05:11:46 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 05:12:59 +0200ddellacosta(~ddellacos@86.106.143.227) (Ping timeout: 244 seconds)
2022-10-11 05:13:20 +0200leungbk(~user@2603-8000-1201-2dd2-4bcb-8ea7-10ea-7a7c.res6.spectrum.com)
2022-10-11 05:15:37 +0200razetime(~quassel@117.193.4.181)
2022-10-11 05:18:11 +0200jbayardo(~jbayardo@20.83.116.49) (Remote host closed the connection)
2022-10-11 05:21:14 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 05:21:40 +0200 <probie> That's fair. When I first heard about it, I thought it might have seen use as a way of handling orphan instances. I think I've only heard it mentioned once in recent memory, and that was edward kmett giving a talk about https://github.com/ekmett/unboxed
2022-10-11 05:23:50 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net)
2022-10-11 05:27:17 +0200jbayardo(~jbayardo@20.83.116.49)
2022-10-11 05:30:56 +0200jbayardo(~jbayardo@20.83.116.49) (Remote host closed the connection)
2022-10-11 05:33:22 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-11 05:33:24 +0200 <Clinton[m]> Is there any extension that allows this:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/91ac1d0c2ad75361dbfcca7b682fa9704436…>)
2022-10-11 05:33:39 +0200img(~img@user/img)
2022-10-11 05:34:05 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-10-11 05:34:22 +0200 <EvanR> is that some form of pattern eta reduction xD
2022-10-11 05:39:15 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-10-11 05:42:24 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 05:43:28 +0200 <zzz> Clinton[m]: no, because the left hand side is a pattern match
2022-10-11 05:44:41 +0200 <zzz> and Blah1 is applied to x, not an argument to your function
2022-10-11 05:46:34 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds)
2022-10-11 05:46:34 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-10-11 05:47:17 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-10-11 05:47:26 +0200 <zzz> if you had `f (Blah1 x) = g x` you can't reduce it to `f Blah1 = g`
2022-10-11 05:52:49 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-10-11 06:00:17 +0200DDR(~DDR@2604:3d08:4c7f:8250:e38c:e536:e3ca:1a0f)
2022-10-11 06:02:47 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-10-11 06:06:43 +0200 <ski> f . Blah1 = g -- unfortunately pseudo-Haskell
2022-10-11 06:06:44 +0200nate1(~nate@98.45.169.16)
2022-10-11 06:07:01 +0200mbuf(~Shakthi@49.204.112.116)
2022-10-11 06:07:15 +0200Buliarous(~gypsydang@46.232.210.139)
2022-10-11 06:08:03 +0200 <ski> actually, i've wanted a `case' branch (e.g.) `Just -> Just' (or maybe just `Just', "punning") ..
2022-10-11 06:08:33 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-10-11 06:09:18 +0200 <ski> (.. there would be a slight difference of meaning, corresponding to not eta-expanding the resulting (alternative) continuation)
2022-10-11 06:10:35 +0200 <ski> Clinton[m] : if you define a `caseFoo' (or `foldFoo'/`cataFoo'), you could say `caseFoo f g'
2022-10-11 06:11:22 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-10-11 06:11:59 +0200inversed(~inversed@90.209.137.56) (Ping timeout: 265 seconds)
2022-10-11 06:12:03 +0200 <ski> @src bool
2022-10-11 06:12:04 +0200 <lambdabot> bool f _ False = f
2022-10-11 06:12:04 +0200 <lambdabot> bool _ t True = t
2022-10-11 06:12:10 +0200 <ski> @pl \b t e -> if b then t else e
2022-10-11 06:12:10 +0200 <lambdabot> if'
2022-10-11 06:12:14 +0200 <ski> @src maybe
2022-10-11 06:12:15 +0200 <lambdabot> maybe n _ Nothing = n
2022-10-11 06:12:15 +0200 <lambdabot> maybe _ f (Just x) = f x
2022-10-11 06:12:19 +0200 <ski> @src either
2022-10-11 06:12:20 +0200 <lambdabot> either f _ (Left x) = f x
2022-10-11 06:12:20 +0200 <lambdabot> either _ g (Right y) = g y
2022-10-11 06:12:24 +0200 <c_wraith> catamorphisms everywhere!
2022-10-11 06:12:25 +0200 <ski> @src foldr
2022-10-11 06:12:26 +0200 <lambdabot> foldr f z [] = z
2022-10-11 06:12:26 +0200 <lambdabot> foldr f z (x:xs) = f x (foldr f z xs)
2022-10-11 06:12:58 +0200 <EvanR> the catamorphening
2022-10-11 06:13:39 +0200 <ski> @hoogle r -> (a -> [a] -> r) -> [a] -> r
2022-10-11 06:13:41 +0200 <lambdabot> Data.List.Extra list :: b -> (a -> [a] -> b) -> [a] -> b
2022-10-11 06:13:41 +0200 <lambdabot> Extra list :: b -> (a -> [a] -> b) -> [a] -> b
2022-10-11 06:13:41 +0200 <lambdabot> Data.List.HT switchL :: b -> (a -> [a] -> b) -> [a] -> b
2022-10-11 06:14:28 +0200leungbk(~user@2603-8000-1201-2dd2-4bcb-8ea7-10ea-7a7c.res6.spectrum.com) (Ping timeout: 244 seconds)
2022-10-11 06:15:01 +0200 <ski> @hoogle (rho -> Bool) -> (rho -> a) -> (rho -> a) -> (rho -> a)
2022-10-11 06:15:03 +0200 <lambdabot> Control.Conditional select :: ToBool bool => (a -> bool) -> (a -> b) -> (a -> b) -> (a -> b)
2022-10-11 06:15:32 +0200 <ski> (i've seen that called `cond')
2022-10-11 06:16:47 +0200 <EvanR> is `list' just foldr
2022-10-11 06:16:52 +0200 <ski> no
2022-10-11 06:16:58 +0200 <ski> it's `caseList'
2022-10-11 06:17:08 +0200EvanRthonks
2022-10-11 06:17:43 +0200 <EvanR> ok so it's not recursive
2022-10-11 06:18:10 +0200 <EvanR> in of itself
2022-10-11 06:18:23 +0200 <ski> Church encoding vs. Scott encoding
2022-10-11 06:19:02 +0200 <ski> (there's also `r -> (a -> [a] -> r -> r) -> ([a] -> r)', which is primitive recursion)
2022-10-11 06:19:48 +0200 <EvanR> :t foldr
2022-10-11 06:19:50 +0200 <lambdabot> Foldable t => (a -> b -> b) -> b -> t a -> b
2022-10-11 06:19:57 +0200inversed(~inversed@90.209.137.56)
2022-10-11 06:20:40 +0200lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237)
2022-10-11 06:21:15 +0200lambdap237(~lambdap@static.167.190.119.168.clients.your-server.de)
2022-10-11 06:22:54 +0200dsrt^(~dsrt@c-76-17-6-165.hsd1.ga.comcast.net) (Remote host closed the connection)
2022-10-11 06:23:08 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 06:25:14 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-10-11 06:25:48 +0200 <ski> @quote sound.of
2022-10-11 06:25:49 +0200 <lambdabot> kfish says: a quiet pond / a frog jumps in / the sound of type inference
2022-10-11 06:26:42 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-10-11 06:27:08 +0200 <ski> @quote snow.falls
2022-10-11 06:27:08 +0200 <lambdabot> shapr says: < shapr> the snow falls slowly / the lambdas are lifting - / weak head normal form.
2022-10-11 06:34:12 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-11 06:35:00 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-11 06:36:59 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-10-11 06:41:05 +0200nate1(~nate@98.45.169.16)
2022-10-11 06:41:28 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-11 06:41:31 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-10-11 06:43:33 +0200 <ski> @quote circular.list
2022-10-11 06:43:33 +0200 <lambdabot> gwern says: there are no beginnings or ends to the circular list; but a cons cell thunked in Amador...
2022-10-11 06:44:31 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de)
2022-10-11 06:45:37 +0200 <ski> @quote deep.thought
2022-10-11 06:45:37 +0200 <lambdabot> ski says: <ski> How does a Haskeller in deep thought sound? <ski> *thunk* *thunk* *thunk*
2022-10-11 06:45:55 +0200Franciman(~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer)
2022-10-11 06:45:59 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-10-11 06:46:09 +0200biberu(~biberu@user/biberu)
2022-10-11 06:49:08 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-11 06:49:09 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-11 06:49:09 +0200wroathe(~wroathe@user/wroathe)
2022-10-11 06:55:17 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 244 seconds)
2022-10-11 06:56:50 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 244 seconds)
2022-10-11 07:00:09 +0200Franciman(~Franciman@mx1.fracta.dev)
2022-10-11 07:02:00 +0200rekahsoft(~rekahsoft@142.189.68.220) (Ping timeout: 244 seconds)
2022-10-11 07:03:45 +0200Lycurgus(~juan@user/Lycurgus)
2022-10-11 07:09:59 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org)
2022-10-11 07:10:45 +0200yvan-sraka(~yvan-srak@46.183.103.8)
2022-10-11 07:11:59 +0200yuzhao(~yuzhao@36.112.45.72)
2022-10-11 07:13:36 +0200yuzhao_(~yuzhao@36.112.45.72) (Ping timeout: 260 seconds)
2022-10-11 07:13:50 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 07:15:24 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.)
2022-10-11 07:19:55 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2022-10-11 07:25:44 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds)
2022-10-11 07:29:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-10-11 07:31:00 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-10-11 07:31:41 +0200freeside(~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
2022-10-11 07:31:54 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-11 07:31:54 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-11 07:31:54 +0200wroathe(~wroathe@user/wroathe)
2022-10-11 07:32:26 +0200argento(~argent0@191.81.194.124) (Remote host closed the connection)
2022-10-11 07:32:49 +0200chomwitt(~chomwitt@2a02:587:dc0c:c200:9e04:2be9:6643:df78)
2022-10-11 07:32:52 +0200extratail(~archie@2804:214:82be:8ae9:99a:eac4:866e:815c) (Ping timeout: 246 seconds)
2022-10-11 07:33:24 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-10-11 07:33:27 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-10-11 07:34:30 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-10-11 07:34:33 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 07:35:55 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 07:38:39 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-10-11 07:39:46 +0200califax(~califax@user/califx)
2022-10-11 07:43:14 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
2022-10-11 07:45:46 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-11 07:47:59 +0200DDR(~DDR@2604:3d08:4c7f:8250:e38c:e536:e3ca:1a0f) (Ping timeout: 244 seconds)
2022-10-11 07:52:18 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de)
2022-10-11 07:53:43 +0200yvan-sraka(~yvan-srak@46.183.103.8) (Remote host closed the connection)
2022-10-11 07:55:13 +0200tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9)
2022-10-11 07:55:37 +0200tcard_(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Ping timeout: 246 seconds)
2022-10-11 07:57:23 +0200tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Read error: Connection reset by peer)
2022-10-11 07:57:37 +0200tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9)
2022-10-11 07:59:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-11 08:00:21 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-10-11 08:00:40 +0200nate1(~nate@98.45.169.16)
2022-10-11 08:01:51 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-10-11 08:02:37 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-11 08:03:41 +0200califax(~califax@user/califx) (Ping timeout: 258 seconds)
2022-10-11 08:04:34 +0200tcard(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Read error: Connection reset by peer)
2022-10-11 08:04:40 +0200tcard_(~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9)
2022-10-11 08:04:43 +0200califax(~califax@user/califx)
2022-10-11 08:05:33 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-10-11 08:09:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-10-11 08:10:43 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2022-10-11 08:11:34 +0200skrider(~skrider@2607:f140:6000:29:3621:a5cd:d0ee:a46)
2022-10-11 08:12:19 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 248 seconds)
2022-10-11 08:13:13 +0200skrider(~skrider@2607:f140:6000:29:3621:a5cd:d0ee:a46) (Client Quit)
2022-10-11 08:13:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-10-11 08:17:48 +0200jargon(~jargon@184.101.208.112) (Remote host closed the connection)
2022-10-11 08:20:15 +0200andreabedini(~andreabed@8s8kj681vht2qj3xkwc5.ip6.superloop.com) (Quit: WeeChat 3.6)
2022-10-11 08:29:30 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-11 08:30:38 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de) (Remote host closed the connection)
2022-10-11 08:30:56 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 08:31:11 +0200kenran(~user@user/kenran)
2022-10-11 08:32:56 +0200thegeekinside(~thegeekin@189.180.118.117) (Ping timeout: 244 seconds)
2022-10-11 08:34:06 +0200 <sm> I like these haskell haikus !
2022-10-11 08:36:05 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:39:23 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:40:34 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:40:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-11 08:41:48 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:42:59 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:44:04 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:46:05 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:47:40 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:48:35 +0200jonathanx_(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds)
2022-10-11 08:49:23 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:50:29 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:51:00 +0200acidjnk(~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de)
2022-10-11 08:51:11 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 08:51:29 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:51:59 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63)
2022-10-11 08:52:36 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-11 08:52:52 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:53:08 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 08:54:17 +0200mncheck(~mncheck@193.224.205.254)
2022-10-11 08:54:41 +0200yvan-sraka(~yvan-srak@46.183.103.17)
2022-10-11 08:57:25 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 08:57:54 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-10-11 08:58:01 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:4408:559f:5dea:dc65)
2022-10-11 08:59:42 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 08:59:52 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 09:03:46 +0200darkstardev13(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 09:04:03 +0200mbuf(~Shakthi@49.204.112.116) (Quit: Leaving)
2022-10-11 09:04:03 +0200kuribas(~user@silversquare.silversquare.eu)
2022-10-11 09:05:18 +0200MajorBiscuit(~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl)
2022-10-11 09:06:08 +0200darkstardev13(~darkstard@50.126.124.156)
2022-10-11 09:06:18 +0200natechan(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-11 09:07:36 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com) (Quit: Updating details, brb)
2022-10-11 09:07:42 +0200n8chan(~nate@98.45.169.16)
2022-10-11 09:07:46 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com)
2022-10-11 09:08:16 +0200darkstardev13(~darkstard@50.126.124.156) (Max SendQ exceeded)
2022-10-11 09:08:48 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-11 09:08:57 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 250 seconds)
2022-10-11 09:09:43 +0200briandaed(~briandaed@185.234.210.211.r.toneticgroup.pl)
2022-10-11 09:11:55 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-11 09:14:24 +0200cfricke(~cfricke@user/cfricke)
2022-10-11 09:16:40 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-11 09:20:17 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski)
2022-10-11 09:21:00 +0200 <tomsmeding> delightful quotes!
2022-10-11 09:21:09 +0200darkstardevx(~darkstard@50.126.124.156)
2022-10-11 09:23:21 +0200darkstardevx(~darkstard@50.126.124.156) (Remote host closed the connection)
2022-10-11 09:23:29 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-10-11 09:23:46 +0200darkstardevx(~darkstard@50.126.124.156)
2022-10-11 09:32:37 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 09:38:46 +0200thyriaen(~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1)
2022-10-11 09:45:16 +0200ph88(~ph88@2a02:8109:9e00:71d0:7166:ab0e:b806:c76c) (Ping timeout: 260 seconds)
2022-10-11 09:46:49 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
2022-10-11 09:47:45 +0200Typedfern(~Typedfern@221.red-83-37-36.dynamicip.rima-tde.net)
2022-10-11 09:48:14 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-11 09:50:11 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-11 09:53:54 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-10-11 09:55:00 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds)
2022-10-11 10:00:34 +0200frost(~frost@user/frost)
2022-10-11 10:01:29 +0200nate1(~nate@98.45.169.16)
2022-10-11 10:02:18 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2022-10-11 10:04:20 +0200nschoe(~q@2a01:e0a:8e:a190:6cde:f540:4aad:1d22)
2022-10-11 10:06:24 +0200nate1(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-10-11 10:06:52 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 10:13:59 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-10-11 10:17:18 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 244 seconds)
2022-10-11 10:19:30 +0200yvan-sraka(~yvan-srak@46.183.103.17) (Remote host closed the connection)
2022-10-11 10:22:30 +0200chele(~chele@user/chele)
2022-10-11 10:22:52 +0200yvan-sraka(~yvan-srak@46.183.103.17)
2022-10-11 10:23:11 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-11 10:23:28 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-11 10:24:27 +0200yvan-sraka(~yvan-srak@46.183.103.17) (Remote host closed the connection)
2022-10-11 10:27:02 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 10:27:38 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 244 seconds)
2022-10-11 10:29:38 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-11 10:30:28 +0200yvan-sraka(~yvan-srak@46.183.103.17)
2022-10-11 10:31:33 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com)
2022-10-11 10:39:27 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-11 10:42:37 +0200razetime(~quassel@117.193.4.181) (Ping timeout: 244 seconds)
2022-10-11 10:43:37 +0200teo(~teo@user/teo)
2022-10-11 10:44:32 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 10:44:58 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net) (Ping timeout: 268 seconds)
2022-10-11 10:45:04 +0200johnjaye(~pi@173.209.64.74) (Ping timeout: 265 seconds)
2022-10-11 10:45:24 +0200mcglk(~mcglk@131.191.49.120) (Read error: Connection reset by peer)
2022-10-11 10:46:42 +0200johnjaye(~pi@173.209.64.74)
2022-10-11 10:46:45 +0200 <dr_merijn> lambdabot is full of amazing quotes, it's underused :p
2022-10-11 10:46:46 +0200 <dr_merijn> @quote
2022-10-11 10:46:47 +0200 <lambdabot> Lemmih says: "I don't understand why my code acts weird when I use unsafePerformIO" is not a bug.
2022-10-11 10:46:51 +0200 <dr_merijn> Hah
2022-10-11 10:46:53 +0200 <dr_merijn> I love that one
2022-10-11 10:47:55 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-11 10:48:30 +0200 <spivak> yeah
2022-10-11 10:49:31 +0200__monty__(~toonn@user/toonn)
2022-10-11 10:50:20 +0200mcglk(~mcglk@131.191.49.120)
2022-10-11 10:51:43 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 10:53:59 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 244 seconds)
2022-10-11 10:54:17 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-10-11 10:55:14 +0200ccapndave(~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch)
2022-10-11 10:57:18 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-11 10:57:23 +0200rosalind(rosalind@id-194105.uxbridge.irccloud.com) ()
2022-10-11 10:58:10 +0200razetime(~quassel@117.193.4.181)
2022-10-11 10:58:52 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Remote host closed the connection)
2022-10-11 10:59:04 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 11:00:05 +0200losfair[m](~losfairma@2001:470:69fc:105::2:7ca3) (Quit: You have been kicked for being idle)
2022-10-11 11:01:16 +0200yvan-sraka(~yvan-srak@46.183.103.17) (Remote host closed the connection)
2022-10-11 11:01:19 +0200gmg(~user@user/gehmehgeh)
2022-10-11 11:09:36 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 11:12:25 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-11 11:14:30 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com) (Ping timeout: 268 seconds)
2022-10-11 11:19:18 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 244 seconds)
2022-10-11 11:23:45 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com)
2022-10-11 11:25:41 +0200zoelea(~zoelea@202.91.42.6)
2022-10-11 11:27:58 +0200zoelea(~zoelea@202.91.42.6) ()
2022-10-11 11:29:40 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-10-11 11:30:09 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-11 11:30:20 +0200 <fendor[m]> Good morning, I am slightly confused about Types, Kinds, etc... I have this code example: https://paste.tomsmeding.com/fVVyfYQg basically I wonder why the declaration `data Set (n :: [k])` leads to the shown error.
2022-10-11 11:30:44 +0200 <fendor[m]> In my understanding, 'k' is a Kind, while 'n' is a type
2022-10-11 11:31:25 +0200 <fendor[m]> I guess, I kind of get why e is inferred to be a kind
2022-10-11 11:35:30 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-11 11:35:50 +0200briandaed(~briandaed@185.234.210.211.r.toneticgroup.pl) (Ping timeout: 244 seconds)
2022-10-11 11:35:58 +0200 <jackdk> in Haskell kinds classify types just as types classify values
2022-10-11 11:36:03 +0200 <kuribas> fendor[m]: don't you want Set (n :: [Type])?
2022-10-11 11:37:15 +0200 <dr_merijn> fendor[m]: You want: "data Set (n :: [*])"
2022-10-11 11:37:34 +0200 <dr_merijn> Or, well, "data Set (n :: [Type])" if you're a TypeInType heretic
2022-10-11 11:37:35 +0200 <fendor[m]> * and Type are the same thing, right?
2022-10-11 11:37:36 +0200 <kuribas> Ext takes a value, so it `e` must be a Type.
2022-10-11 11:37:36 +0200 <jackdk> kuribas: fendor[m] probably does, but GHC 9.0.1 and 9.0.2 accept it. I think if `n` is of any other kind it only allows the `Empty` ctor to have a value
2022-10-11 11:37:40 +0200 <dr_merijn> fendor[m]: Yeah
2022-10-11 11:37:44 +0200 <fendor[m]> Or only with the StarIsType Extension?
2022-10-11 11:37:50 +0200 <dr_merijn> fendor[m]: The problem is that k is *any* kind
2022-10-11 11:38:01 +0200 <dr_merijn> fendor[m]: But constructors can only accept arguments that have type *
2022-10-11 11:38:35 +0200 <fendor[m]> What why? I could have a list of [* -> *] right, or am I misunderstanding your point?
2022-10-11 11:38:38 +0200 <dr_merijn> fendor[m]: So "Ext :: e -> Set s -> Set (e ': s)" infers that 'e :: *' (and therefore 'Set :: [*] -> *')
2022-10-11 11:39:09 +0200 <dr_merijn> fendor[m]: Because values always have types with kind * and the first argument to Ext is a value
2022-10-11 11:39:46 +0200 <dr_merijn> Therefore 'e :: *' and 'Set :: [*] -> *' (as opposed to 'Set :: [k] -> *' which your initial version does)
2022-10-11 11:39:46 +0200 <kuribas> fendor[m]: that will be uninhabited.
2022-10-11 11:39:58 +0200 <kuribas> well, only Empty.
2022-10-11 11:40:32 +0200 <dr_merijn> fendor[m]: You could have a list of [* -> *], but "* -> *" can't be the kind of 'e' in Ext's signature
2022-10-11 11:41:10 +0200 <dr_merijn> because 's :: [k]' according to your definition
2022-10-11 11:41:33 +0200 <dr_merijn> and appending 'e :: *' to 's :: [k]' is a kind error
2022-10-11 11:41:59 +0200 <fendor[m]> because * /= k, since k can be more?
2022-10-11 11:42:39 +0200madnight(~madnight@static.59.103.201.195.clients.your-server.de)
2022-10-11 11:42:56 +0200 <fendor[m]> like, k can be an arbitrary kind?
2022-10-11 11:43:09 +0200 <dr_merijn> fendor[m]: k is "whatever the second argument you use for 'Ext' has"
2022-10-11 11:43:57 +0200 <dr_merijn> Pressumably it'd also work if you change the signature of Ext to "Ext :: e -> Set (s :: [*]) -> Set (e ': s)"
2022-10-11 11:44:06 +0200 <dr_merijn> But at that point, you might as well just change the first line
2022-10-11 11:44:58 +0200 <dr_merijn> Because, theoretically, you could indeed have 's :: [* -> *]'
2022-10-11 11:45:02 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 11:45:07 +0200 <dr_merijn> But then that doesn't typecheck with the prepend of e
2022-10-11 11:45:45 +0200yvan-sraka(~yvan-srak@46.183.103.8)
2022-10-11 11:46:00 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving)
2022-10-11 11:46:23 +0200 <fendor[m]> ok, great, then I think I got it, thank you very much! (s :: [*]) doesnt work in combination with the rest of the code (curious type error) but Ill try to debug it with my new knowledge
2022-10-11 11:46:37 +0200 <dr_merijn> fendor[m]: Then you need to rethink Ext
2022-10-11 11:46:59 +0200 <dr_merijn> fendor[m]: Perhaps you meant: "Ext :: proxy e -> Set s -> Set (e' : s)"?
2022-10-11 11:47:16 +0200 <dr_merijn> eh, s/' / '/
2022-10-11 11:47:37 +0200 <fendor[m]> just to be clear 'data Set (n :: [*]) where' does work, but 'Ext :: e -> Set (s :: [*]) -> Set E : s)' doesn't
2022-10-11 11:48:01 +0200 <dr_merijn> fendor[m]: Your problem is, essentially, that you are promising a value of type 'e' as first argument to Ext, restricting type 'e' to have kind '*'
2022-10-11 11:48:25 +0200 <dr_merijn> Using "proxy e" (or "Proxy e"), frees 'e' from that limiation
2022-10-11 11:48:54 +0200 <fendor[m]> yeah, but I would lose the value in that case
2022-10-11 11:49:16 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Ping timeout: 244 seconds)
2022-10-11 11:49:51 +0200 <dr_merijn> Yes, but value and "types other than *" are contradictory
2022-10-11 11:49:53 +0200 <dr_merijn> You gotta pick
2022-10-11 11:51:19 +0200spivak(uid398348@user/spivak) (K-Lined)
2022-10-11 11:51:46 +0200 <fendor[m]> yeah, the proposal of 'data Set (n :: [*])' works perfectly fine for me, just trying to understand what's going on.
2022-10-11 11:51:59 +0200 <fendor[m]> For reference, that's the code where https://paste.tomsmeding.com/CWKuyhId Set (s :: [*]) doesn't work
2022-10-11 11:52:19 +0200 <fendor[m]> but it works with 'data Set (n :: [*])'
2022-10-11 11:52:22 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
2022-10-11 11:52:36 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 11:53:20 +0200 <fendor[m]> but it feels to me like this is exactly the same issue, just manifests when you actively want to use it.
2022-10-11 11:53:55 +0200 <fendor[m]> since 'Split s ('[] :: * -> *) s' would be a valid kind inference?
2022-10-11 11:56:30 +0200michalz(~michalz@185.246.207.218)
2022-10-11 11:57:00 +0200 <dminuoso> Is there a cabal variant of runghc where I could just say `cabal run ./foo --build-depends some-lib`?
2022-10-11 11:57:29 +0200 <dminuoso> The closest alternative I can see is to use `cabal repl`, which might sort of work for me, but its cumbersome
2022-10-11 11:59:11 +0200mbuf(~Shakthi@49.204.135.6)
2022-10-11 12:00:42 +0200 <fendor[m]> cabal script feature is too slow/unpractical?
2022-10-11 12:09:56 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
2022-10-11 12:11:18 +0200raym(~aritra@user/raym) (Ping timeout: 268 seconds)
2022-10-11 12:12:55 +0200mvxkz(~mvxkz@119.30.46.32)
2022-10-11 12:13:42 +0200 <mvxkz> About μ and η on a monoid making no sense, since they essentially transform two of an object (same, thus equal) included in their definition into said object (μ) or a specific object included in their definition into itself (η)
2022-10-11 12:13:56 +0200 <mvxkz> Essentially they for example transform the identity functor into the selected object iirc, or two of the selected objects into the selected object
2022-10-11 12:14:09 +0200 <mvxkz> Like this makes sense from a programming PoV, but not mathematical
2022-10-11 12:16:40 +0200raym(~aritra@user/raym)
2022-10-11 12:17:41 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 12:19:28 +0200 <mvxkz> anyone?
2022-10-11 12:21:04 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 12:25:02 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 12:33:25 +0200ii8(~ii8@45.63.97.131) (Quit: ii8)
2022-10-11 12:34:26 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-11 12:35:46 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-10-11 12:35:54 +0200 <lyxia> What's the context of this question? Who said "μ and η on a monoid make no sense"?
2022-10-11 12:36:46 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-10-11 12:39:05 +0200 <byorgey> mu doesn't "transform two of an object into said object", that's a confusion of levels. It is a *morphism* from M x M -> M. As a Haskell example, if f :: (Int, Int) -> Int, you don't say "f transforms two copies of Int into Int".
2022-10-11 12:40:23 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 12:40:59 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-11 12:41:13 +0200 <byorgey> In general, morphisms in a category don't transform one object into another. The objects are more like the *type* of the morphism.
2022-10-11 12:43:49 +0200alex`(~user@171.red-83-36-41.dynamicip.rima-tde.net)
2022-10-11 12:46:06 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 244 seconds)
2022-10-11 12:49:10 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 12:49:12 +0200raym(~aritra@user/raym) (Ping timeout: 244 seconds)
2022-10-11 12:49:51 +0200 <dminuoso> mvxkz: Also what do you mean by "same, thus equal"?
2022-10-11 12:51:35 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 12:54:02 +0200 <dminuoso> mvxkz: Let me give you a different, more programmer friendly perspective on what this is about: https://gist.github.com/dminuoso/d5ab4ba5d8a5142dde9f4d4c736e3ecb
2022-10-11 12:55:19 +0200 <dminuoso> Here `return/pure` takes the role of η, and `join` takes the role of μ
2022-10-11 12:55:38 +0200 <dminuoso> Observe, that these look very similar to the categorical diagrams:
2022-10-11 12:55:49 +0200 <dminuoso> https://ncatlab.org/nlab/show/monoid+in+a+monoidal+category in 2. Definition
2022-10-11 12:56:55 +0200 <dminuoso> This gets more complicated when mapping to Haskell, because we should start defining what categories we have.
2022-10-11 12:56:57 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-11 12:57:48 +0200shailangsa(~shailangs@host86-159-49-5.range86-159.btcentralplus.com) (Remote host closed the connection)
2022-10-11 12:58:14 +0200 <dminuoso> There's Hask, in which objects are types and morphisms are functions between those types. We can even make a monoidal category of Hask, by equipping it with a tensor like (,) or Either (feel free to do that construction and demonstrate that it satisfies the monoidal category diagrams)
2022-10-11 12:58:34 +0200xff0x(~xff0x@2405:6580:b080:900:3beb:3a95:af78:4788)
2022-10-11 12:58:39 +0200 <dminuoso> But we have endofunctors, that is functors Hask -> Hask, like IO or Identity
2022-10-11 12:58:55 +0200 <dminuoso> And we can have a category of suchs endofunctor, where IO is an object itself, or Identity
2022-10-11 12:58:58 +0200yvan-sraka(~yvan-srak@46.183.103.8) (Remote host closed the connection)
2022-10-11 12:59:03 +0200thyriaen(~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) (Remote host closed the connection)
2022-10-11 12:59:05 +0200 <dminuoso> Morphisms are natural transformations between these endofunctors
2022-10-11 12:59:38 +0200 <dminuoso> Every natural transformation in haskell is representable by `type l ~> r = forall a. l a -> l r`
2022-10-11 13:00:01 +0200 <dminuoso> So if `S` is a functor, and `T` is a functor, then every function `S a -> T a` happens to be a natural transformation from S to T.
2022-10-11 13:00:10 +0200 <probie> s/l r/r a/
2022-10-11 13:00:15 +0200 <dminuoso> Thanks
2022-10-11 13:00:33 +0200 <dminuoso> This is in fact a free theorem, and in the absence of bottom, holds true as long as its implementation type checks.
2022-10-11 13:01:03 +0200raym(~aritra@user/raym)
2022-10-11 13:01:12 +0200ccapndave(~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-10-11 13:01:18 +0200 <dminuoso> Here's some examples of natural transformations in Haskell:
2022-10-11 13:01:24 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-11 13:01:24 +0200 <dminuoso> :t maybeToList
2022-10-11 13:01:26 +0200 <lambdabot> Maybe a -> [a]
2022-10-11 13:01:36 +0200 <dminuoso> Note that both `Maybe` and `[]` are endofunctors
2022-10-11 13:01:57 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 13:02:06 +0200 <dminuoso> And because of what I said above about `if `S` is a functor, and `T` is a functor, then every function `S a -> T a` happens to be a natural transformation from S to T`, therefore `maybeToList` is a natural transformation
2022-10-11 13:02:20 +0200 <dminuoso> (Note the requirement that S and T be endofunctors here)
2022-10-11 13:03:02 +0200 <dminuoso> We could write such functions, using the type alias `type l ~> r = forall a. l a -> r a` as:
2022-10-11 13:03:10 +0200 <dminuoso> maybeToList :: Maybe ~> []
2022-10-11 13:03:20 +0200Midjak(~Midjak@82.66.147.146)
2022-10-11 13:03:37 +0200 <dminuoso> setOfTree :: Tree ~> Set
2022-10-11 13:03:43 +0200 <dminuoso> Oh wait, that is a bad example.
2022-10-11 13:03:53 +0200 <dminuoso> vectorOfTree :: Tree ~> Vector
2022-10-11 13:04:01 +0200 <dminuoso> At any rate
2022-10-11 13:04:15 +0200 <dminuoso> It turns out, that the composition of two endofunctors itself is an endofunctor too.
2022-10-11 13:04:24 +0200 <dminuoso> So (Maybe :.: IO) itself too is an endofunctor.
2022-10-11 13:04:48 +0200 <dminuoso> Or if you compose it with itself, so `Maybe :.: Maybe` too is an endofunctor
2022-10-11 13:05:01 +0200ccapndave(~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch)
2022-10-11 13:05:10 +0200 <dminuoso> Then observe that: join :: (Maybe :.: Maybe) ~> Maybe
2022-10-11 13:07:17 +0200 <mvxkz> hmm
2022-10-11 13:09:19 +0200 <dminuoso> And similarly:
2022-10-11 13:09:32 +0200 <dminuoso> return :: Identity ~> Maybe (with a bit of squinting)
2022-10-11 13:14:42 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-11 13:15:30 +0200zer0bitz(~zer0bitz@2001:2003:f748:2000:8093:1499:1d37:f588)
2022-10-11 13:16:06 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-11 13:17:33 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-11 13:21:33 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Quit: beteigeuze)
2022-10-11 13:22:01 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com) (Remote host closed the connection)
2022-10-11 13:22:17 +0200 <zzz> can you give an example of something thatbis *not* an endofunctor?
2022-10-11 13:23:16 +0200 <dminuoso> Heh this is going to be a funny pun:
2022-10-11 13:23:26 +0200 <dminuoso> https://hackage.haskell.org/package/base-4.17.0.0/docs/Data-Monoid.html#t:Endo
2022-10-11 13:24:04 +0200 <int-e> contra variance
2022-10-11 13:25:13 +0200 <int-e> (you have to break the "functor" part of "endofunctor")
2022-10-11 13:25:17 +0200 <dminuoso> Though to be fair, every function `S a -> T a` for contravariant functor is also a natural transformation.
2022-10-11 13:25:37 +0200leungbk(~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com)
2022-10-11 13:25:40 +0200 <dminuoso> (So the statement holds for contra and covariant functors alike)
2022-10-11 13:26:07 +0200 <int-e> But Endo is invariant, so there's not much to transform.
2022-10-11 13:26:29 +0200 <int-e> The space between "contra" and "variance" was deliberate btw. :P
2022-10-11 13:27:04 +0200leungbk(~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com) (Client Quit)
2022-10-11 13:27:18 +0200 <dminuoso> Ah. :)
2022-10-11 13:28:02 +0200leungbk(~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com)
2022-10-11 13:28:15 +0200 <zzz> none of that was confusing at all
2022-10-11 13:29:12 +0200xff0x(~xff0x@2405:6580:b080:900:3beb:3a95:af78:4788) (Ping timeout: 264 seconds)
2022-10-11 13:29:47 +0200 <dminuoso> mvxkz: And to finalize the circle, in that category of endofunctors, we can equip it with a tensor too (where in the case of Hask there are (,) or Either to make it a monoidal category), in this category we have two prominent tensors: (:.:) and Day
2022-10-11 13:29:51 +0200razetime(~quassel@117.193.4.181) (Ping timeout: 260 seconds)
2022-10-11 13:30:52 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-10-11 13:31:01 +0200leungbk(~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com) (Client Quit)
2022-10-11 13:31:17 +0200ccapndave(~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
2022-10-11 13:32:25 +0200 <dminuoso> But we choose (:.:). Now, in this setting we have a bunch of endofunctors, which a bunch of morphisms going around. Some of these objects (endofunctors) are monoids (=monads). And it is precisely each such object, that is requipped with two particular morphisms (natural transformations), satisfying the diagrams shown above.
2022-10-11 13:32:36 +0200leungbk(~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com)
2022-10-11 13:32:39 +0200 <dminuoso> (Note I skipped that the monoidal category construnction has some additional laws)
2022-10-11 13:40:24 +0200razetime(~quassel@117.193.4.181)
2022-10-11 13:43:10 +0200extratail(~archie@2804:214:82c9:273b:11b:69f9:589e:dd5a)
2022-10-11 13:45:50 +0200yvan-sraka(~yvan-srak@46.183.103.8)
2022-10-11 13:46:09 +0200MajorBiscuit(~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5)
2022-10-11 13:47:48 +0200lyle(~lyle@104.246.145.85)
2022-10-11 13:50:52 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-10-11 13:51:14 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-11 13:53:36 +0200yvan-sraka(~yvan-srak@46.183.103.8) (Remote host closed the connection)
2022-10-11 13:53:54 +0200yvan-sraka(~yvan-srak@37.173.21.3)
2022-10-11 13:54:15 +0200lyle(~lyle@104.246.145.85) (Ping timeout: 252 seconds)
2022-10-11 13:54:17 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-11 13:59:42 +0200yvan-sraka(~yvan-srak@37.173.21.3) (Remote host closed the connection)
2022-10-11 14:00:16 +0200 <mvxkz> ty for the infos
2022-10-11 14:01:28 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 14:02:58 +0200nate1(~nate@98.45.169.16)
2022-10-11 14:05:31 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-10-11 14:07:36 +0200leungbk(~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com) (Ping timeout: 264 seconds)
2022-10-11 14:07:44 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-10-11 14:09:03 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 14:15:15 +0200Putonlalla(~Putonlall@it-cyan.it.jyu.fi) (Remote host closed the connection)
2022-10-11 14:15:32 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-11 14:16:09 +0200shailangsa(~shailangs@host86-182-139-4.range86-182.btcentralplus.com)
2022-10-11 14:20:29 +0200Ristovski(~Ristovski@hellomouse/perf/ristovski)
2022-10-11 14:23:44 +0200tdmm(1c9b9145fc@2604:bf00:561:2000::1c8) ()
2022-10-11 14:26:07 +0200yvan-sraka(~yvan-srak@37.173.21.3)
2022-10-11 14:26:14 +0200yvan-sraka(~yvan-srak@37.173.21.3) (Remote host closed the connection)
2022-10-11 14:27:20 +0200yvan-sraka(~yvan-srak@37.173.21.3)
2022-10-11 14:30:21 +0200yvan-sraka(~yvan-srak@37.173.21.3) (Remote host closed the connection)
2022-10-11 14:32:47 +0200mvxkz(~mvxkz@119.30.46.32) (Remote host closed the connection)
2022-10-11 14:33:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds)
2022-10-11 14:34:46 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 14:43:03 +0200famubu(~famubu@14.139.174.50)
2022-10-11 14:43:03 +0200famubu(~famubu@14.139.174.50) (Changing host)
2022-10-11 14:43:03 +0200famubu(~famubu@user/famubu)
2022-10-11 14:43:57 +0200 <famubu> Hi. I was trying to install the latest version of pandoc from cabal while still having an older pandoc that I installed from my linux distro's package manager. How can that be done?
2022-10-11 14:44:28 +0200 <dr_merijn> Trivially? :p
2022-10-11 14:44:34 +0200 <famubu> I tried using cabal to make a new project like `cabal init -i` with pandoc as a build dependency. And the build finished all right. But I am still at a loss as to how to use the newer pandoc..
2022-10-11 14:44:43 +0200 <dr_merijn> famubu: Do you mean the library or the executable?
2022-10-11 14:44:49 +0200 <famubu> executable.
2022-10-11 14:45:15 +0200 <famubu> I didn't know how to do it, so just tried cabal.
2022-10-11 14:45:20 +0200 <dr_merijn> For executables just use "cabal install --install-method=copy pandoc"
2022-10-11 14:45:37 +0200 <dr_merijn> Then the executable should be in ~/.cabal/bin
2022-10-11 14:47:08 +0200 <famubu> dr_merijn: That worked. Thanks!
2022-10-11 14:50:43 +0200frost(~frost@user/frost)
2022-10-11 15:00:52 +0200acidjnk(~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-11 15:02:39 +0200burnsidesLlama(~burnsides@client-8-70.eduroam.oxuni.org.uk)
2022-10-11 15:03:34 +0200Guest17(~Guest17@217.64.164.1)
2022-10-11 15:08:09 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-10-11 15:10:26 +0200razetime(~quassel@117.193.4.181) (Remote host closed the connection)
2022-10-11 15:10:27 +0200thegeekinside(~thegeekin@189.180.118.117)
2022-10-11 15:12:02 +0200 <Guest17> Is there an example somewhere how to convert the encoding of a lens from either the Profunctor- or vanLaarhoven-encoding to the existential encoding?
2022-10-11 15:12:16 +0200 <dminuoso> Guest17: Yes, look at `optics` it has transformations in both directions
2022-10-11 15:12:44 +0200 <dminuoso> https://hackage.haskell.org/package/optics-0.4.2/docs/Optics-Lens.html#v:lensVL
2022-10-11 15:12:46 +0200 <dminuoso> https://hackage.haskell.org/package/optics-0.4.2/docs/Optics-Lens.html#v:toLensVL
2022-10-11 15:12:48 +0200 <dminuoso> For instance
2022-10-11 15:12:55 +0200 <dminuoso> Each optics type has its own variants, whenever applicable.
2022-10-11 15:13:00 +0200 <dminuoso> In its respective module
2022-10-11 15:13:08 +0200burnsidesLlama(~burnsides@client-8-70.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 15:14:34 +0200 <Guest17> Doesn't that convert between the VL and Profunctor encoding?
2022-10-11 15:14:48 +0200 <dminuoso> Ah I misread the question, pardon me.
2022-10-11 15:15:04 +0200 <dminuoso> There was a linebreak right after vanLaarhoven-encoding.
2022-10-11 15:18:31 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 15:20:08 +0200acidjnk(~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de)
2022-10-11 15:21:20 +0200tgi(~thegeekin@189.180.54.50)
2022-10-11 15:22:26 +0200thegeekinside(~thegeekin@189.180.118.117) (Ping timeout: 260 seconds)
2022-10-11 15:22:44 +0200 <Guest17> I have found a conversion from the existential encoding to VL, but I need a to the existential encoding, not from it.
2022-10-11 15:22:46 +0200 <Guest17> https://hackage.haskell.org/package/generic-lens-2.2.1.0/docs/src/Data.Generics.Internal.VL.Lens.h…
2022-10-11 15:23:11 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-10-11 15:23:16 +0200 <Guest17> I need a conversion to the existential encoding*
2022-10-11 15:25:00 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c)
2022-10-11 15:28:29 +0200dolio(~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-11 15:30:25 +0200dolio(~dolio@130.44.130.54)
2022-10-11 15:31:35 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 15:33:24 +0200dolio(~dolio@130.44.130.54) (Client Quit)
2022-10-11 15:33:31 +0200famubu(~famubu@user/famubu) (Ping timeout: 268 seconds)
2022-10-11 15:34:13 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 268 seconds)
2022-10-11 15:34:37 +0200dolio(~dolio@130.44.130.54)
2022-10-11 15:34:57 +0200alecs(~alecs@bo-18-159-115.service.infuturo.it)
2022-10-11 15:37:00 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-10-11 15:42:20 +0200Surobaki(~surobaki@user/surobaki)
2022-10-11 15:45:50 +0200Surobaki(~surobaki@user/surobaki) (Remote host closed the connection)
2022-10-11 15:46:02 +0200Surobaki(~surobaki@137.44.222.70)
2022-10-11 15:47:16 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-10-11 15:47:25 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-10-11 15:47:55 +0200kuribas(~user@silversquare.silversquare.eu) (Ping timeout: 252 seconds)
2022-10-11 15:48:06 +0200 <Surobaki> Hi, I´m learning about the type system and I´m trying to understand why this doesn´t work: foo :: (a, a); foo = (True, False)
2022-10-11 15:48:15 +0200 <Surobaki> Any help would be great, thanks!
2022-10-11 15:48:19 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-10-11 15:48:36 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-11 15:49:18 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 15:49:26 +0200 <Surobaki> In other words, why can´t I instantiate a type variable tuple with actual objects of the same type
2022-10-11 15:49:32 +0200wroathe(~wroathe@user/wroathe)
2022-10-11 15:50:26 +0200 <Guest17> does it work if you change the signature to foo :: (Bool, Bool)?
2022-10-11 15:51:46 +0200 <Guest17> because True and False are values of type Bool. The type variables cannot vary. They are fixed to Bool.
2022-10-11 15:51:46 +0200ubert(~Thunderbi@77.119.164.69.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2022-10-11 15:51:59 +0200 <lortabac> Surobaki: 'a' does not mean "any type", it means "all the types"
2022-10-11 15:52:05 +0200ubert(~Thunderbi@77.119.164.69.wireless.dyn.drei.com)
2022-10-11 15:52:37 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
2022-10-11 15:52:41 +0200 <lortabac> it means that the function should work whatever 'a' is
2022-10-11 15:53:57 +0200 <geekosaur> more specifically: it says that the consumer of foo gets to specify `a`. you don't get to pick one yourself
2022-10-11 15:54:42 +0200 <Surobaki> Thanks guys! That sheds some light on it
2022-10-11 15:56:10 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e)
2022-10-11 15:56:13 +0200Franciman(~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer)
2022-10-11 15:56:29 +0200 <geekosaur> (and as such, the only value you can specify is `(undefined, undefined)` since you can't know what `a` the consumer/caller wanted)
2022-10-11 15:56:56 +0200 <dr_merijn> geekosaur[m]: pfft, I can come up with *at least* one more :p
2022-10-11 15:57:27 +0200alecs(~alecs@bo-18-159-115.service.infuturo.it) (Ping timeout: 252 seconds)
2022-10-11 15:57:29 +0200 <geekosaur> `undefined` presumably?
2022-10-11 15:57:37 +0200 <geekosaur> there is that I guess
2022-10-11 15:58:34 +0200jonathanx_(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 15:58:51 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
2022-10-11 15:59:25 +0200alecs(~alecs@bo-18-159-115.service.infuturo.it)
2022-10-11 16:01:11 +0200 <dr_merijn> Technically correct = best kinda correct :p
2022-10-11 16:01:48 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 16:02:57 +0200jonathanx_(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2022-10-11 16:03:37 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-10-11 16:03:38 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-10-11 16:03:38 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-10-11 16:03:38 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-10-11 16:03:38 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-10-11 16:03:38 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-11 16:03:38 +0200califax(~califax@user/califx) (Write error: Connection reset by peer)
2022-10-11 16:05:01 +0200Surobaki(~surobaki@137.44.222.70) (Ping timeout: 244 seconds)
2022-10-11 16:05:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-11 16:05:05 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-11 16:05:13 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-11 16:05:24 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 16:05:37 +0200califax(~califax@user/califx)
2022-10-11 16:05:54 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-10-11 16:05:57 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-11 16:10:26 +0200MajorBiscuit(~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl)
2022-10-11 16:10:31 +0200alecs(~alecs@bo-18-159-115.service.infuturo.it) (Ping timeout: 246 seconds)
2022-10-11 16:12:00 +0200alecs(~alecs@bo-18-159-115.service.infuturo.it)
2022-10-11 16:18:27 +0200Franciman(~Franciman@mx1.fracta.dev)
2022-10-11 16:19:32 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2022-10-11 16:29:03 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-11 16:34:11 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2022-10-11 16:34:17 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-11 16:34:56 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
2022-10-11 16:45:24 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-10-11 16:49:28 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 16:51:26 +0200alecs(~alecs@bo-18-159-115.service.infuturo.it) (Ping timeout: 265 seconds)
2022-10-11 16:52:50 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f)
2022-10-11 16:53:03 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-10-11 16:53:49 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 16:53:53 +0200Franciman(~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer)
2022-10-11 16:54:25 +0200razetime(~quassel@117.193.4.181)
2022-10-11 16:55:57 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-11 16:58:09 +0200 <johnjaye> is this output normal when building with cabal?
2022-10-11 16:58:12 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
2022-10-11 16:58:15 +0200 <johnjaye> https://dpaste.com/2FMDEEVER
2022-10-11 16:58:25 +0200 <johnjaye> expected might be a better term. i recently installed ghc
2022-10-11 16:59:37 +0200zebrag(~chris@user/zebrag)
2022-10-11 16:59:57 +0200loras(~bc@c-73-139-125-125.hsd1.fl.comcast.net)
2022-10-11 17:00:00 +0200 <nek0> johnjaye: seems reasonable
2022-10-11 17:00:01 +0200bc_(~bc@c-73-139-125-125.hsd1.fl.comcast.net)
2022-10-11 17:00:13 +0200bc_(~bc@c-73-139-125-125.hsd1.fl.comcast.net) (Remote host closed the connection)
2022-10-11 17:00:34 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2022-10-11 17:04:00 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-10-11 17:07:05 +0200Feuermagier_(~Feuermagi@213.149.82.60)
2022-10-11 17:07:57 +0200Guest17(~Guest17@217.64.164.1) (Ping timeout: 244 seconds)
2022-10-11 17:08:47 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-11 17:09:10 +0200 <davean> johnjaye: yes? What else would you expect?
2022-10-11 17:09:15 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 17:09:48 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 265 seconds)
2022-10-11 17:10:34 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-11 17:11:22 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:4408:559f:5dea:dc65) (Quit: WeeChat 2.8)
2022-10-11 17:12:48 +0200vorpuni(~pvorp@2001:861:3881:c690:c993:5fdd:bfff:f466)
2022-10-11 17:15:08 +0200Guest17(~Guest17@217.64.164.1)
2022-10-11 17:15:16 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 17:16:00 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se)
2022-10-11 17:18:24 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-11 17:20:17 +0200Franciman(~Franciman@mx1.fracta.dev)
2022-10-11 17:22:06 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 17:22:36 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-11 17:24:24 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-10-11 17:25:10 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-11 17:25:26 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 17:27:24 +0200jonathanx(~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2022-10-11 17:30:26 +0200 <johnjaye> i don't know. that's the problem.
2022-10-11 17:31:08 +0200 <johnjaye> ah i guess it built everything. it's compiling the actual thing now
2022-10-11 17:31:23 +0200 <johnjaye> i guess this is a 'first time building on cabal' thing?
2022-10-11 17:31:31 +0200 <johnjaye> i.e. it needs a ton of common packages
2022-10-11 17:31:32 +0200 <davean> Ok, usually people ask questions because there is a reason they think things are not exactly as they expect or there is something specific they're trying to understand.
2022-10-11 17:31:49 +0200 <davean> johnjaye: it said exactly what packages it needed and why - thats what you sent us?
2022-10-11 17:32:25 +0200 <johnjaye> right. so according to your reaction that's normal for building with cabal.
2022-10-11 17:32:27 +0200 <davean> As you said, you just installed GHC, so it'll only have 'base'
2022-10-11 17:32:39 +0200 <davean> Thats litterly its job?
2022-10-11 17:33:05 +0200 <davean> Its doing what you use it for and saying that explicitely
2022-10-11 17:35:05 +0200 <davean> It seems you're having a miss match of expectations but I can't help you if I don't know what you expected
2022-10-11 17:38:49 +0200 <johnjaye> well i could try to speculate on my mental state and why i didn't expect it. but i don't think it would be very useful.
2022-10-11 17:39:14 +0200 <johnjaye> there's a one-to-many relationship in that there's a single way something works, but many ways people can not understand how it works.
2022-10-11 17:39:52 +0200 <johnjaye> for example against me you could show quicklisp and how it does something similar, download a dozen packages just to load something you got from github say
2022-10-11 17:40:37 +0200 <davean> I mean litterly any dependency management tool basicly
2022-10-11 17:40:53 +0200 <davean> Thats its primary job
2022-10-11 17:40:54 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-10-11 17:41:03 +0200 <davean> so I guess I don't know why you executed cabal
2022-10-11 17:41:15 +0200 <davean> Maybe this is pointless but I'd like to answer the reason for your question
2022-10-11 17:41:26 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 17:42:39 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 17:43:01 +0200Feuermagier_(~Feuermagi@213.149.82.60) (Ping timeout: 260 seconds)
2022-10-11 17:45:15 +0200beteigeuze(~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 244 seconds)
2022-10-11 17:45:21 +0200teo(~teo@user/teo) (Ping timeout: 260 seconds)
2022-10-11 17:45:27 +0200nate1(~nate@98.45.169.16)
2022-10-11 17:45:58 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-10-11 18:02:04 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-11 18:04:41 +0200nschoe(~q@2a01:e0a:8e:a190:6cde:f540:4aad:1d22) (Ping timeout: 268 seconds)
2022-10-11 18:07:08 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 18:09:18 +0200shapr(~user@68.54.166.125)
2022-10-11 18:12:48 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-10-11 18:13:15 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 18:13:53 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-10-11 18:14:53 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-11 18:16:41 +0200alex`(~user@171.red-83-36-41.dynamicip.rima-tde.net) (Ping timeout: 250 seconds)
2022-10-11 18:16:51 +0200MajorBiscuit(~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds)
2022-10-11 18:17:32 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-10-11 18:17:32 +0200Feuermagier(~Feuermagi@user/feuermagier) (Quit: Leaving)
2022-10-11 18:18:45 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
2022-10-11 18:19:21 +0200johnjaye(~pi@173.209.64.74) (Ping timeout: 252 seconds)
2022-10-11 18:20:09 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt)
2022-10-11 18:20:42 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 18:22:27 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 244 seconds)
2022-10-11 18:23:22 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 18:27:47 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 248 seconds)
2022-10-11 18:34:11 +0200Franciman(~Franciman@mx1.fracta.dev) (Ping timeout: 248 seconds)
2022-10-11 18:35:38 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 268 seconds)
2022-10-11 18:43:36 +0200econo(uid147250@user/econo)
2022-10-11 18:45:46 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-10-11 18:46:03 +0200abrantesasf(~abrantesa@187.64.158.2) (Read error: Connection reset by peer)
2022-10-11 18:48:43 +0200nate1(~nate@98.45.169.16) (Ping timeout: 246 seconds)
2022-10-11 18:49:04 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 246 seconds)
2022-10-11 18:51:37 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-11 18:53:15 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-10-11 18:57:16 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-10-11 18:58:26 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-11 19:01:16 +0200thyriaen(~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1)
2022-10-11 19:01:52 +0200 <dminuoso> Guest17: What is the existential encoding by the way?
2022-10-11 19:05:36 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com)
2022-10-11 19:08:51 +0200Henson(~kvirc@207.136.101.195)
2022-10-11 19:10:02 +0200 <Henson> it seems as though the convention in Lens is to name lenses with an underscore. I have encountered MANY times when this has been a problem because VSCode thinks it's a type hole and doesn't give me a warning that it's something that is not in scope. Is there an alternative convention for naming lenses that doesn't confuse them with type holes?
2022-10-11 19:10:52 +0200 <Guest17> dminuoso: https://www.tweag.io/blog/2022-05-05-existential-optics/
2022-10-11 19:11:17 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com) (Ping timeout: 250 seconds)
2022-10-11 19:12:49 +0200 <dminuoso> Guest17: Ah cool, thjanks.
2022-10-11 19:12:56 +0200Topsi(~Topsi@dyndsl-095-033-025-008.ewe-ip-backbone.de)
2022-10-11 19:13:16 +0200 <dminuoso> Henson: The convention merely stems from various TH helpers, by default, generating lenses for every field that starts with an underscore.
2022-10-11 19:14:08 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-10-11 19:14:44 +0200 <geekosaur> you can use whatever prefix you want as long as you replace `makeLenses` with the appropriate call specifying that prefix
2022-10-11 19:14:55 +0200 <geekosaur> I misremember how you do that right now
2022-10-11 19:14:57 +0200 <dminuoso> Henson: But you can use a custom lensRules with the field _fieldToDef swapped with a suitable function. So you could - in a separate file - write `makeLenses = makeLensesWith (lensRules { _fieldDef = yourFunction })`
2022-10-11 19:15:04 +0200 <dminuoso> And use that instead.
2022-10-11 19:15:09 +0200 <geekosaur> right, that
2022-10-11 19:15:46 +0200 <dminuoso> Henson: It could be some trivial _fieldDef that just selects *every* field.
2022-10-11 19:16:15 +0200 <dminuoso> Or maybe soem `makeLenses pref = ...` such that `makeLenses "foo_"` would generate lenses for every field starting with foo_.
2022-10-11 19:16:18 +0200 <dminuoso> The sky is the limit.
2022-10-11 19:16:45 +0200 <dminuoso> (Note that _fieldDef not just selects, but also renames - so it controls both whether or not a field is used, and also what the generated lens name is)
2022-10-11 19:17:26 +0200 <dminuoso> Henson: Take also note of `lensRulesFor`, `lookingupNamer` and `mappingNamer`
2022-10-11 19:17:48 +0200Franciman(~Franciman@mx1.fracta.dev)
2022-10-11 19:18:53 +0200alecs(~alecs@host-62-211-49-5.pool62211.interbusiness.it)
2022-10-11 19:21:33 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 19:22:46 +0200jbayardo(~jbayardo@20.83.116.49)
2022-10-11 19:23:02 +0200thegeekinside(~thegeekin@189.180.7.159)
2022-10-11 19:24:12 +0200tgi(~thegeekin@189.180.54.50) (Ping timeout: 268 seconds)
2022-10-11 19:27:04 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds)
2022-10-11 19:27:52 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 19:29:51 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-11 19:30:48 +0200tgi(~thegeekin@189.180.7.159)
2022-10-11 19:32:12 +0200jbayardo(~jbayardo@20.83.116.49) (Ping timeout: 244 seconds)
2022-10-11 19:32:50 +0200thegeekinside(~thegeekin@189.180.7.159) (Ping timeout: 268 seconds)
2022-10-11 19:33:51 +0200raym(~aritra@user/raym) (Ping timeout: 260 seconds)
2022-10-11 19:36:49 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-10-11 19:39:19 +0200raym(~aritra@user/raym)
2022-10-11 19:39:26 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds)
2022-10-11 19:40:17 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-10-11 19:40:33 +0200 <Henson> I just write my Lenses by hand, so I don't need to fit into a TH mould, I'm just trying to stick to a convention, if one exists.
2022-10-11 19:41:28 +0200razetime(~quassel@117.193.4.181) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-11 19:41:47 +0200 <dminuoso> The _ convention is just for when you want TH generated lenses.
2022-10-11 19:42:52 +0200 <Henson> ok
2022-10-11 19:44:03 +0200 <geekosaur> yeh, I wouldn't worry about conventions if you';re not using TH
2022-10-11 19:44:45 +0200 <Henson> ok, thank you for the tips
2022-10-11 19:45:04 +0200acidjnk(~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-11 19:48:07 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-10-11 19:48:38 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-10-11 19:49:44 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-10-11 19:52:12 +0200jbayardo(~jbayardo@20.83.116.49)
2022-10-11 19:52:26 +0200mbuf(~Shakthi@49.204.135.6) (Quit: Leaving)
2022-10-11 19:53:44 +0200 <Guest17> I found the conversion function I was looking for
2022-10-11 19:53:52 +0200 <Guest17> it's elens in this post
2022-10-11 19:53:54 +0200 <Guest17> https://www.reddit.com/r/haskell/comments/ujmjx0/comment/i7sayy4/?utm_source=reddit&utm_medium=web…
2022-10-11 19:54:37 +0200alecs(~alecs@host-62-211-49-5.pool62211.interbusiness.it) (Ping timeout: 265 seconds)
2022-10-11 19:56:21 +0200alecs(~alecs@151.36.35.186)
2022-10-11 19:58:35 +0200Guest17(~Guest17@217.64.164.1) (Quit: Client closed)
2022-10-11 19:59:53 +0200acidjnk(~acidjnk@p200300d6e7137a811112d37158fd9527.dip0.t-ipconnect.de)
2022-10-11 20:00:17 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2022-10-11 20:02:26 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 20:03:32 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2022-10-11 20:09:35 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-10-11 20:14:00 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-10-11 20:14:36 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-10-11 20:15:12 +0200titibandit(~titibandi@xdsl-89-0-65-2.nc.de)
2022-10-11 20:15:53 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-10-11 20:20:38 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 20:23:03 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-10-11 20:23:31 +0200extratail(~archie@2804:214:82c9:273b:11b:69f9:589e:dd5a) (Ping timeout: 248 seconds)
2022-10-11 20:24:49 +0200AlexNoo_(~AlexNoo@178.34.161.92)
2022-10-11 20:24:50 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
2022-10-11 20:25:34 +0200 <c209e6dc-4d76-47> I'm trying to build something using cabal on a server over ssh but the home directory has only 4GB quota, I do have another location with more storage, but how do I change the cabal home path from ~/.cabal?
2022-10-11 20:26:02 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 265 seconds)
2022-10-11 20:27:06 +0200Alex_test(~al_test@94.233.240.222) (Ping timeout: 268 seconds)
2022-10-11 20:27:06 +0200AlexZenon(~alzenon@94.233.240.222) (Ping timeout: 268 seconds)
2022-10-11 20:28:41 +0200AlexNoo(~AlexNoo@94.233.240.222) (Ping timeout: 260 seconds)
2022-10-11 20:29:03 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-10-11 20:29:11 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-10-11 20:29:47 +0200 <monochrom> Yes there is an environment variable for that. Let me find it...
2022-10-11 20:30:03 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-10-11 20:31:57 +0200AlexZenon(~alzenon@178.34.161.92)
2022-10-11 20:32:14 +0200Alex_test(~al_test@178.34.161.92)
2022-10-11 20:32:31 +0200 <monochrom> CABAL_CONFIG
2022-10-11 20:32:56 +0200 <monochrom> Err no, CABAL_DIR
2022-10-11 20:33:43 +0200AlexNoo_AlexNoo
2022-10-11 20:34:08 +0200 <c209e6dc-4d76-47> I see, thanks
2022-10-11 20:34:30 +0200 <c209e6dc-4d76-47> so I can look into doing cabal clean to remove files from ~/.cabal first or just do rm -rf ~/.cabal safely?
2022-10-11 20:35:43 +0200 <c209e6dc-4d76-47> latter seems to have worked
2022-10-11 20:36:11 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-10-11 20:39:08 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
2022-10-11 20:39:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-11 20:41:24 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-11 20:41:29 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-10-11 20:42:44 +0200tgi(~thegeekin@189.180.7.159) (Remote host closed the connection)
2022-10-11 20:45:03 +0200raym(~aritra@user/raym) (Ping timeout: 244 seconds)
2022-10-11 20:46:12 +0200raym(~aritra@user/raym)
2022-10-11 20:52:48 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-10-11 20:53:23 +0200raym(~aritra@user/raym) (Ping timeout: 248 seconds)
2022-10-11 20:54:20 +0200raym(~aritra@user/raym)
2022-10-11 20:56:50 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 20:58:00 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
2022-10-11 21:01:09 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 21:03:31 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 250 seconds)
2022-10-11 21:06:03 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-10-11 21:06:45 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2022-10-11 21:09:13 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-11 21:12:03 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-10-11 21:12:46 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-11 21:16:51 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection)
2022-10-11 21:17:34 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com)
2022-10-11 21:17:45 +0200mvk(~mvk@2607:fea8:5ce3:8500::a80f)
2022-10-11 21:19:08 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de)
2022-10-11 21:20:20 +0200 <FlaminWalrus> Any ideas on how to make this small program more memory efficient? I run it on a ~300Mb text file containing Fortran-formatted floats, and the program just eats 15GB of RAM and spins. Not even sure if it should be more strict or more lazy; tried both to little avail. https://paste.tomsmeding.com/7n9G7jrl
2022-10-11 21:23:57 +0200 <tomsmeding> FlaminWalrus: replacing the `point` list by an Array (or Vector) should already help, but there's probably other things too (deferring to the rest of the crowd here)
2022-10-11 21:24:50 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-11 21:25:20 +0200 <EvanR> I don't see anything wrong with reading the data in into a TimeSeries (list of (complex) doubles), but I am highly suspicious of sending such a list into an FFT
2022-10-11 21:25:48 +0200 <tomsmeding> (performance may be gained by reading the file as a strict ByteString and parsing the floats using the bytestring-lexing package; `read` on Doubles is veeeery slow)
2022-10-11 21:25:58 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-10-11 21:27:24 +0200 <tomsmeding> EvanR: an array will at least remove _quite_ a couple of pointers from that representation; if you move to a fully unboxed array, you'll have 16 bytes per element instead of the current at least 8(Complex) + 2*(8(Double) + 8(Double#)) + 8(pointer to next cons cell) = 40 bytes
2022-10-11 21:27:33 +0200 <EvanR> yeah there's a constant factor increase in cost reading in a String and using read
2022-10-11 21:28:32 +0200 <dolio> Doing !! repeatedly in a giant list is not going to be good, either.
2022-10-11 21:29:00 +0200 <EvanR> the fft is treating the list as an array, so that's... yeah
2022-10-11 21:29:08 +0200 <tomsmeding> lol yes
2022-10-11 21:34:40 +0200 <dolio> I think the algorithm is O(n²) just from the list element accesses.
2022-10-11 21:35:35 +0200 <tomsmeding> _mosT_ algorithms that are supposed to be subquadratic time and use !! are in fact at least quadratic
2022-10-11 21:35:35 +0200 <dminuoso> I would start by profiling.
2022-10-11 21:35:43 +0200 <dminuoso> So we dont have to guess.
2022-10-11 21:36:11 +0200 <tomsmeding> to be fair, profiling memory usage in haskell is nontrivial, especially for someone who hasn't yet realised that using Array/Vector here instead of (!!) might be a good idea
2022-10-11 21:37:44 +0200 <dminuoso> It's even less trivial to guess based on this non-trivial code.
2022-10-11 21:38:00 +0200 <dminuoso> There could be some lingering lazyness problem solvable by a single bang.
2022-10-11 21:38:26 +0200 <tomsmeding> fair
2022-10-11 21:38:28 +0200 <Square> Is there any agreement on what is best for readability choosing between "let..in" and "where" syntax? I just discovered "where" makes me structure things better.
2022-10-11 21:38:32 +0200 <dolio> No, come on.
2022-10-11 21:40:02 +0200 <dminuoso> Square: If its just a single binding needed for understanding what an expression does, I would use let-in (as it forces the reader to read or skip to get to the relevant expression), otherwise I would prefer where.
2022-10-11 21:40:03 +0200 <EvanR> a single bang which makes fft using lists fast xD
2022-10-11 21:40:13 +0200 <EvanR> that's a bang alright
2022-10-11 21:40:15 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 21:40:21 +0200 <tomsmeding> EvanR: fast no, using less memory maybe
2022-10-11 21:40:43 +0200 <EvanR> solving the obvious problems first xD
2022-10-11 21:40:45 +0200 <monochrom> The agreement is use what you like.
2022-10-11 21:40:58 +0200 <dminuoso> I mean I see sum after map for example. foldl' is likely a better choice.
2022-10-11 21:41:01 +0200 <Square> dminuoso, sounds like a fair rule.
2022-10-11 21:41:08 +0200 <EvanR> a faster way to convert String to Double is like icing on the cake
2022-10-11 21:41:55 +0200 <monochrom> tomsmeding: I think EvanR was speaking hypothetically to set up a joke/pun. :)
2022-10-11 21:41:59 +0200biberu(~biberu@user/biberu)
2022-10-11 21:42:01 +0200 <dminuoso> FlaminWalrus: Yeah, each time you do a `sum $ map`, consider foldl' instead.
2022-10-11 21:42:05 +0200teo(~teo@user/teo)
2022-10-11 21:42:16 +0200kenran(~user@user/kenran)
2022-10-11 21:43:14 +0200 <dminuoso> (Though I wonder whether perhaps there's a RULES for that)
2022-10-11 21:43:31 +0200 <tomsmeding> isn't that precisely what `build` is for
2022-10-11 21:43:40 +0200 <EvanR> I didn't notice the list being recursive split into smaller and smaller chunks, but if it is, that is a big source of memory um sink of memory
2022-10-11 21:43:56 +0200 <dminuoso> tomsmeding: build is for foldr fusion.
2022-10-11 21:44:06 +0200extratail(~archie@2804:214:82c9:273b:11b:69f9:589e:dd5a)
2022-10-11 21:44:20 +0200Topsi(~Topsi@dyndsl-095-033-025-008.ewe-ip-backbone.de) (Ping timeout: 265 seconds)
2022-10-11 21:44:35 +0200 <dminuoso> But that wouldnt apply here
2022-10-11 21:44:45 +0200 <tomsmeding> dminuoso: https://play-haskell.tomsmeding.com/saved/xeYGufTp seems to (press Core)
2022-10-11 21:44:48 +0200alecs(~alecs@151.36.35.186) (Ping timeout: 264 seconds)
2022-10-11 21:44:50 +0200 <dolio> Make sure you optimize your list functions before you completely stop using lists.
2022-10-11 21:44:51 +0200 <dminuoso> mmm
2022-10-11 21:45:09 +0200 <EvanR> FlaminWalrus, taking subslices of an array is much more efficient than the equivalent operation on lists
2022-10-11 21:45:45 +0200 <dminuoso> tomsmeding: give me a moment to analyze the core here, I always find it difficult to read.
2022-10-11 21:45:53 +0200 <EvanR> not to mention the !! to ! improvement
2022-10-11 21:46:23 +0200 <tomsmeding> dminuoso: I feel you, I was mostly going by `ghc -O -ddump-rule-rewrites a.hs` printing `fold/build` twice
2022-10-11 21:46:27 +0200zxrom(~zxrom@mm-232-14-212-37.vitebsk.dynamic.pppoe.byfly.by)
2022-10-11 21:46:39 +0200 <tomsmeding> and then checking the core to make sure it wasn't a fluke
2022-10-11 21:47:21 +0200pavonia(~user@user/siracusa)
2022-10-11 21:47:25 +0200 <dminuoso> tomsmeding: Okay, but this will only work if the list producer actually uses `build`.
2022-10-11 21:47:37 +0200 <dminuoso> Otherwise you should foldl'.
2022-10-11 21:47:45 +0200 <tomsmeding> right, but we're talking about `map` here
2022-10-11 21:47:48 +0200 <monochrom> FFT is better off with an array instead of a list or a bunch of lists.
2022-10-11 21:48:08 +0200 <tomsmeding> monochrom: that's too obvious, we're having fun with the less obvious things
2022-10-11 21:48:17 +0200 <monochrom> OK!
2022-10-11 21:48:30 +0200 <dminuoso> tomsmeding: uh, so?
2022-10-11 21:48:32 +0200 <EvanR> the twist never gets old
2022-10-11 21:48:43 +0200 <EvanR> arrays are actually trees in ram xD
2022-10-11 21:49:07 +0200 <EvanR> why didn't they just use an array of ram
2022-10-11 21:49:16 +0200 <dminuoso> tomsmeding: map does not use build, what's your point?
2022-10-11 21:49:26 +0200 <tomsmeding> dminuoso: that ghc -ddump-rule-rewrites command also prints this https://paste.tomsmeding.com/tWtG5yZ4
2022-10-11 21:49:31 +0200 <tomsmeding> more RULEs
2022-10-11 21:49:50 +0200 <monochrom> Then let's consider an improvement based on defining your own data-strict spine-nonstrict list type "data L a = N | C !a (L a)" and furthermore your own strict complex number type "data C = !Double :+ !Double" ...
2022-10-11 21:49:51 +0200 <dminuoso> tomsmeding: can you make the module names disappear please?
2022-10-11 21:50:06 +0200 <dolio> map gets rewritten to use build.
2022-10-11 21:50:07 +0200 <monochrom> In fact, let's unbox some of those fields, too...
2022-10-11 21:50:17 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-11 21:50:19 +0200 <dminuoso> dolio: Oh okay, that's good to know.
2022-10-11 21:50:44 +0200 <monochrom> EvanR: I think the hardware does think in terms of an array of RAM areas.
2022-10-11 21:50:44 +0200 <EvanR> Complex already has strict fields at least
2022-10-11 21:51:02 +0200 <tomsmeding> dminuoso: https://paste.tomsmeding.com/jV3VuWAe better?
2022-10-11 21:51:03 +0200 <monochrom> Oh cool.
2022-10-11 21:51:14 +0200 <dminuoso> Ah yes, thanks :)
2022-10-11 21:52:02 +0200 <EvanR> when I come back tomorrow, I expect to see a fast FFT using lists
2022-10-11 21:52:23 +0200 <tomsmeding> EvanR: written by you
2022-10-11 21:52:31 +0200 <EvanR> I'm not smart enough
2022-10-11 21:52:32 +0200alecs(~alecs@151.34.71.118)
2022-10-11 21:52:54 +0200 <monochrom> fast FFT? ATM machine? >:)
2022-10-11 21:52:57 +0200kenran(~user@user/kenran)
2022-10-11 21:53:11 +0200 <dminuoso> So why would there be a rewrite rule rewriting map, when you could just hardwire that implementation in?
2022-10-11 21:53:22 +0200Sauvin(~colere@about/linux/staff/sauvin) (Quit: Leaving)
2022-10-11 21:53:23 +0200 <dminuoso> Or wait, there's a map/build kind of rule?
2022-10-11 21:53:33 +0200 <EvanR> yes because lists are slow for the operations required, so it cancels one of the Fs out of the FFT to make an FT
2022-10-11 21:53:46 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-11 21:53:47 +0200 <EvanR> so you need to add fast back in
2022-10-11 21:54:00 +0200 <monochrom> I wonder if one can make FFT fast with FIFOs.
2022-10-11 21:54:04 +0200 <dminuoso> Found it:
2022-10-11 21:54:06 +0200 <dminuoso> "map" [~1] forall f xs. map f xs = build (\c n -> foldr (mapFB c f) n xs)
2022-10-11 21:54:11 +0200 <dolio> Because if it doesn't fuse, you want to rewrite it back to the recursive implementation, which is better.
2022-10-11 21:54:19 +0200 <tomsmeding> dminuoso: presumably yes; I think all the build stuff is just in rules
2022-10-11 21:54:29 +0200kenran(~user@user/kenran)
2022-10-11 21:54:37 +0200 <dminuoso> tomsmeding: and no, its not.
2022-10-11 21:55:32 +0200 <dminuoso> Oh also nice to know there is a RULES `map coerce = coerce`
2022-10-11 21:55:44 +0200 <tomsmeding> TIL I love it
2022-10-11 21:56:12 +0200 <monochrom> They really have thought of everything. :)
2022-10-11 21:56:13 +0200 <dolio> sum for lists is also defined using foldl', from what I can see.
2022-10-11 21:57:16 +0200 <tomsmeding> dolio: only since base-4.16, before that it was, well, https://hackage.haskell.org/package/base-4.15.1.0/docs/src/GHC.List.html#sum
2022-10-11 21:57:30 +0200 <tomsmeding> slightly embarassing
2022-10-11 21:57:43 +0200 <tomsmeding> s/r/rr/
2022-10-11 21:58:02 +0200 <dminuoso> Thats 9.0.2
2022-10-11 21:58:04 +0200 <EvanR> i was told for years that foldl would be automagically optimized
2022-10-11 21:58:14 +0200 <dminuoso> So only since 9.2.1 heh
2022-10-11 21:58:15 +0200 <tomsmeding> I mean, probably, but still
2022-10-11 21:58:51 +0200Colere(~colere@about/linux/staff/sauvin)
2022-10-11 21:58:59 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-11 21:59:01 +0200 <EvanR> I guess the '-crowd won xD
2022-10-11 21:59:18 +0200 <monochrom> Well I was told for years that 2010 was when we could send astronauts to Jupiter, too.
2022-10-11 21:59:33 +0200 <dolio> It's not really that embarassing, because for lots of cases, GHC doesn't need you to write foldl', I think.
2022-10-11 21:59:48 +0200 <dolio> When you're operating on a concrete type, like in this case.
2022-10-11 22:00:24 +0200 <dminuoso> Why is that not embarrassing in that case?
2022-10-11 22:00:43 +0200 <dolio> Because it's already doing what you want.
2022-10-11 22:00:58 +0200 <EvanR> I'd agree if the slow code made into something that mattered for some amount of time, would be embarrassing
2022-10-11 22:01:07 +0200 <dminuoso> Naively I would have thought foldl would cost me thunk allocations
2022-10-11 22:01:22 +0200ph88(~ph88@2a02:8109:9e00:71d0:5ba:5f3b:8b59:3371)
2022-10-11 22:02:04 +0200 <dminuoso> `foldl' (+) 0 [1..100000000]` will compute, but `foldl (+) 0 [1..100000000]` will stackoverflow for me
2022-10-11 22:02:42 +0200 <dminuoso> dolio: this seems to not do what I want.
2022-10-11 22:02:47 +0200 <EvanR> in ghci?
2022-10-11 22:03:02 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-10-11 22:03:14 +0200 <tomsmeding> works fine with ghc -O
2022-10-11 22:03:28 +0200 <EvanR> that you get different results in general in ghci is a larger issue
2022-10-11 22:03:39 +0200 <dminuoso> Mmm
2022-10-11 22:03:46 +0200 <tomsmeding> nah ghci just doesn't do any optimisations, and strictness analysis is a nontrivial optimisation
2022-10-11 22:04:16 +0200 <dminuoso> But honestly, if you *rely* on a particular RULES to fire, or an optimization to kick in, you should really consider writing it optimized yourself.
2022-10-11 22:04:29 +0200 <EvanR> optimizations make working things work better... if it means broken or not broken we need a different word xD
2022-10-11 22:04:44 +0200 <dminuoso> Unless you use something like inspection-testing
2022-10-11 22:05:20 +0200 <EvanR> which is why TCO is annoying
2022-10-11 22:06:05 +0200 <EvanR> TCNB (tail calls not broken)
2022-10-11 22:07:23 +0200 <FlaminWalrus> Thanks for the suggestions; this is my first Haskell program outside one or two Advent of Code problems a year or so ago. The obvious isn't obvious to me quite yet ☺
2022-10-11 22:07:58 +0200 <tomsmeding> FlaminWalrus: please forgive us all for our use of language :)
2022-10-11 22:08:39 +0200rockystone(~rocky@user/rockymarine)
2022-10-11 22:08:54 +0200 <FlaminWalrus> It's all good, I've got enough math and computational physics background to guess what it all means
2022-10-11 22:11:50 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-11 22:12:10 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-11 22:13:35 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-11 22:13:51 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-11 22:14:29 +0200loras(~bc@c-73-139-125-125.hsd1.fl.comcast.net) (Quit: Leaving)
2022-10-11 22:15:31 +0200vorpuni(~pvorp@2001:861:3881:c690:c993:5fdd:bfff:f466) (Ping timeout: 248 seconds)
2022-10-11 22:16:12 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-10-11 22:17:22 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b)
2022-10-11 22:18:17 +0200codaraxis__(~codaraxis@user/codaraxis)
2022-10-11 22:18:34 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds)
2022-10-11 22:21:40 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Ping timeout: 244 seconds)
2022-10-11 22:21:48 +0200teo(~teo@user/teo) (Ping timeout: 268 seconds)
2022-10-11 22:22:02 +0200codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 265 seconds)
2022-10-11 22:24:08 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
2022-10-11 22:25:25 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-10-11 22:26:32 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-11 22:31:29 +0200jonathanx(~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 244 seconds)
2022-10-11 22:34:14 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-10-11 22:46:20 +0200nate1(~nate@98.45.169.16)
2022-10-11 22:48:29 +0200teo(~teo@user/teo)
2022-10-11 22:49:56 +0200vorpuni(~pvorp@2001:861:3881:c690:6a24:2212:7415:f659)
2022-10-11 22:50:48 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-11 22:51:21 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-11 22:54:10 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2022-10-11 22:54:10 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2022-10-11 22:54:13 +0200allbery_bgeekosaur
2022-10-11 23:01:48 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-11 23:02:00 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
2022-10-11 23:02:11 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-11 23:07:23 +0200zer0bitz(~zer0bitz@2001:2003:f748:2000:8093:1499:1d37:f588) (Ping timeout: 268 seconds)
2022-10-11 23:09:53 +0200leungbk(~user@cpe-142-129-149-172.socal.res.rr.com) (Ping timeout: 265 seconds)
2022-10-11 23:10:11 +0200 <monochrom> Oh! ghcup is now recommending GHC 9.2.4.
2022-10-11 23:10:19 +0200 <monochrom> "This recompiles everything."
2022-10-11 23:11:05 +0200teo(~teo@user/teo) (Ping timeout: 268 seconds)
2022-10-11 23:13:04 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2022-10-11 23:16:26 +0200 <drlkf> does anyone have an idea how to make a json parser similar to the (.:) operator, but with array nth ?
2022-10-11 23:18:12 +0200biberu(~biberu@user/biberu)
2022-10-11 23:20:25 +0200phma(~phma@2001:5b0:210f:49a8:1266:723e:2abd:17a6) (Read error: Connection reset by peer)
2022-10-11 23:20:52 +0200phma(~phma@host-67-44-208-113.hnremote.net)
2022-10-11 23:23:00 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-10-11 23:29:06 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-11 23:29:07 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!)
2022-10-11 23:31:56 +0200libertyprime(~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
2022-10-11 23:36:55 +0200Henson(~kvirc@207.136.101.195) (Ping timeout: 250 seconds)
2022-10-11 23:39:27 +0200ubert(~Thunderbi@77.119.164.69.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2022-10-11 23:42:52 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
2022-10-11 23:51:44 +0200michalz(~michalz@185.246.207.218) (Remote host closed the connection)
2022-10-11 23:52:01 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-11 23:55:37 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-10-11 23:56:00 +0200jinsun(~jinsun@user/jinsun)
2022-10-11 23:59:09 +0200ubert(~Thunderbi@77.119.214.60.wireless.dyn.drei.com)
2022-10-11 23:59:51 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 260 seconds)