2022-10-11 00:00:12 +0200 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2022-10-11 00:01:01 +0200 | lottaquestions_ | (~nick@2607:fa49:503e:7100:253:563:daad:1d7e) (Ping timeout: 246 seconds) |
2022-10-11 00:02:33 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 268 seconds) |
2022-10-11 00:03:20 +0200 | ozkutuk[m] | (~ozkutuktc@2001:470:69fc:105::2:9af8) |
2022-10-11 00:07:08 +0200 | jmd_ | (~jmdaemon@user/jmdaemon) |
2022-10-11 00:07:47 +0200 | jmdaemon | (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds) |
2022-10-11 00:12:52 +0200 | foul_owl | (~kerry@174-21-75-230.tukw.qwest.net) (Ping timeout: 265 seconds) |
2022-10-11 00:14:00 +0200 | hochata | (~user@user/hochata) (Remote host closed the connection) |
2022-10-11 00:17:42 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2022-10-11 00:18:10 +0200 | zns | (~zns@user/zns) (Quit: zzz) |
2022-10-11 00:18:32 +0200 | zns | (~zns@user/zns) |
2022-10-11 00:18:39 +0200 | ozkutuk[m] | (~ozkutuktc@2001:470:69fc:105::2:9af8) (Quit: Reconnecting) |
2022-10-11 00:18:53 +0200 | ozkutuk[m] | (~ozkutuktc@2001:470:69fc:105::2:9af8) |
2022-10-11 00:18:57 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2022-10-11 00:19:56 +0200 | ozkutuk[m] | (~ozkutuktc@2001:470:69fc:105::2:9af8) (Client Quit) |
2022-10-11 00:20:12 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
2022-10-11 00:20:41 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) (Client Quit) |
2022-10-11 00:20:55 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
2022-10-11 00:23:45 +0200 | beteigeuze1 | (~Thunderbi@89.187.168.50) |
2022-10-11 00:24:50 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
2022-10-11 00:25:16 +0200 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds) |
2022-10-11 00:25:17 +0200 | beteigeuze1 | beteigeuze |
2022-10-11 00:25:50 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-10-11 00:26:56 +0200 | foul_owl | (~kerry@23.82.194.107) |
2022-10-11 00:28:16 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
2022-10-11 00:35:27 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) (Quit: Reconnecting) |
2022-10-11 00:35:29 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-10-11 00:35:44 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-10-11 00:35:45 +0200 | ozkutuk[m] | (~ozkutukm]@2001:470:69fc:105::2:9af8) |
2022-10-11 00:37:39 +0200 | zns | (~zns@user/zns) (Quit: zzz) |
2022-10-11 00:38:10 +0200 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 268 seconds) |
2022-10-11 00:39:18 +0200 | ozkutuk[m] | (~ozkutukm]@2001:470:69fc:105::2:9af8) (Client Quit) |
2022-10-11 00:39:32 +0200 | ozkutuk[m] | (~ozkutuk@2001:470:69fc:105::2:9af8) |
2022-10-11 00:43:15 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2022-10-11 00:47:25 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 00:48:45 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 00:50:33 +0200 | TonyStone | (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
2022-10-11 00:53:06 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 00:53:32 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-10-11 00:54:30 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-11 00:54:55 +0200 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
2022-10-11 00:57:15 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-10-11 00:58:00 +0200 | acidjnk | (~acidjnk@p200300d6e7137a503d80e44891d38f9e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-10-11 00:58:38 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 01:01:03 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ea80:7ffc:2e04:51ee) |
2022-10-11 01:02:07 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-10-11 01:02:42 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-10-11 01:04:19 +0200 | ph88 | (~ph88@2a02:8109:9e00:71d0:7166:ab0e:b806:c76c) |
2022-10-11 01:05:38 +0200 | zeenk | (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!) |
2022-10-11 01:08:03 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.6) |
2022-10-11 01:09:24 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:c200:b8b0:dc:a578:bfaa) (Ping timeout: 264 seconds) |
2022-10-11 01:09:33 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-10-11 01:09:42 +0200 | perrierjouet | (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) |
2022-10-11 01:10:37 +0200 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
2022-10-11 01:14:51 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ea80:7ffc:2e04:51ee) (Ping timeout: 260 seconds) |
2022-10-11 01:15:47 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds) |
2022-10-11 01:16:20 +0200 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) |
2022-10-11 01:18:08 +0200 | argento | (~argent0@191.81.194.124) |
2022-10-11 01:19:25 +0200 | DDR | (~DDR@2604:3d08:4c7f:8250:79f3:1c2b:2580:abd1) (Ping timeout: 246 seconds) |
2022-10-11 01:20:40 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-10-11 01:22:38 +0200 | causal | (~user@50.35.83.177) |
2022-10-11 01:32:01 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 01:32:16 +0200 | ddellacosta | (~ddellacos@86.106.143.227) |
2022-10-11 01:32:19 +0200 | finsternis | (~X@23.226.237.192) |
2022-10-11 01:32:47 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-10-11 01:32:47 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-10-11 01:32:47 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-10-11 01:38:36 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds) |
2022-10-11 01:42:33 +0200 | Midjak | (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
2022-10-11 01:48:56 +0200 | dcoutts__ | (~duncan@host86-163-164-210.range86-163.btcentralplus.com) |
2022-10-11 01:51:36 +0200 | dcoutts_ | (~duncan@host86-170-66-8.range86-170.btcentralplus.com) (Ping timeout: 260 seconds) |
2022-10-11 02:01:24 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-10-11 02:02:40 +0200 | causal | (~user@50.35.83.177) |
2022-10-11 02:02:59 +0200 | beteigeuze | (~Thunderbi@89.187.168.50) (Remote host closed the connection) |
2022-10-11 02:03:18 +0200 | beteigeuze | (~Thunderbi@89.187.168.50) |
2022-10-11 02:12:44 +0200 | arkeet | (arkeet@moriya.ca) |
2022-10-11 02:18:24 +0200 | raym | (~aritra@user/raym) (Ping timeout: 264 seconds) |
2022-10-11 02:23:45 +0200 | raym | (~aritra@user/raym) |
2022-10-11 02:29:27 +0200 | [_] | (~itchyjunk@user/itchyjunk/x-7353470) |
2022-10-11 02:31:02 +0200 | jpds | (~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 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-10-11 02:33:51 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 02:40:03 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
2022-10-11 02:42:45 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 02:45:08 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
2022-10-11 02:47:36 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 02:48:50 +0200 | eggplantade | (~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 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-10-11 02:52:58 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Ping timeout: 244 seconds) |
2022-10-11 02:53:20 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
2022-10-11 02:53:35 +0200 | Lord_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 +0200 | lottaquestions_ | (~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 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-10-11 03:04:37 +0200 | jpds | (~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 +0200 | Franciman | (~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 +0200 | Franciman | (~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 +0200 | rekahsoft | (~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 +0200 | rekahsoft | (~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 +0200 | rekahsoft | (~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 +0200 | machinedgod | (~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 +0200 | xff0x | (~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 +0200 | frost | (~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 +0200 | beteigeuze | (~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 +0200 | cyphase | (~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 +0200 | cyphase | (~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 +0200 | rockystone | (~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 +0200 | leungbk | (~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) |
2022-10-11 03:56:43 +0200 | leungbk | (~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) (Client Quit) |
2022-10-11 03:57:23 +0200 | leungbk | (~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 +0200 | mr_mxyzptlk | (~Srain@2806:266:48a:240:a579:dfff:fd47:c997) (Remote host closed the connection) |
2022-10-11 03:59:21 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-10-11 03:59:41 +0200 | ski | . 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 +0200 | ski | '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 +0200 | ubert1 | (~Thunderbi@77.119.164.69.wireless.dyn.drei.com) |
2022-10-11 04:02:56 +0200 | ubert | (~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 +0200 | ubert1 | ubert |
2022-10-11 04:03:36 +0200 | leungbk | (~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 +0200 | leungbk | (~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 +0200 | yuzhao_ | (~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 +0200 | yuzhao | (~yuzhao@36.112.45.72) (Ping timeout: 252 seconds) |
2022-10-11 04:06:53 +0200 | rockystone | (~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 +0200 | zzz | zzz[m] |
2022-10-11 04:09:26 +0200 | [_] | [itchyjunk] |
2022-10-11 04:09:55 +0200 | zzz[m] | zzz |
2022-10-11 04:11:36 +0200 | rockystone | (~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 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 04:13:24 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
2022-10-11 04:15:09 +0200 | extratail | (~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 +0200 | gqplox | (~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 +0200 | leungbk | (~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 +0200 | leungbk | (~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 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection) |
2022-10-11 04:28:50 +0200 | andreabedini | (~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 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2022-10-11 04:36:37 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-11 04:36:37 +0200 | finn_elija | FinnElija |
2022-10-11 04:41:35 +0200 | leungbk | (~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 +0200 | ski | . 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 +0200 | leungbk | (~user@2603-8000-1201-2dd2-5d38-428e-02cf-32d2.res6.spectrum.com) |
2022-10-11 04:43:16 +0200 | leungbk | (~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 +0200 | rockystone | (~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 +0200 | Typedfern | (~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 +0200 | tgi | (~thegeekin@189.180.118.117) |
2022-10-11 04:51:21 +0200 | ski | idly wonders in which environments `HOME_DIR' is set |
2022-10-11 04:54:51 +0200 | causal | (~user@50.35.83.177) (Quit: WeeChat 3.6) |
2022-10-11 04:55:56 +0200 | thegeekinside | (~thegeekin@189.180.118.117) (Ping timeout: 244 seconds) |
2022-10-11 04:56:14 +0200 | thegeekinside | (~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 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 04:57:10 +0200 | <EvanR> | (instead of machine code) |
2022-10-11 04:57:27 +0200 | thegeekinside | (~thegeekin@189.180.118.117) (Remote host closed the connection) |
2022-10-11 04:57:35 +0200 | tgi | (~thegeekin@189.180.118.117) (Remote host closed the connection) |
2022-10-11 04:57:49 +0200 | td_ | (~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 +0200 | td_ | (~td@94.134.91.197) |
2022-10-11 05:00:25 +0200 | thegeekinside | (~thegeekin@189.180.118.117) |
2022-10-11 05:02:05 +0200 | frost | (~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 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 05:12:59 +0200 | ddellacosta | (~ddellacos@86.106.143.227) (Ping timeout: 244 seconds) |
2022-10-11 05:13:20 +0200 | leungbk | (~user@2603-8000-1201-2dd2-4bcb-8ea7-10ea-7a7c.res6.spectrum.com) |
2022-10-11 05:15:37 +0200 | razetime | (~quassel@117.193.4.181) |
2022-10-11 05:18:11 +0200 | jbayardo | (~jbayardo@20.83.116.49) (Remote host closed the connection) |
2022-10-11 05:21:14 +0200 | eggplantade | (~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 +0200 | loras | (~loras@c-73-139-125-125.hsd1.fl.comcast.net) |
2022-10-11 05:27:17 +0200 | jbayardo | (~jbayardo@20.83.116.49) |
2022-10-11 05:30:56 +0200 | jbayardo | (~jbayardo@20.83.116.49) (Remote host closed the connection) |
2022-10-11 05:33:22 +0200 | img | (~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 +0200 | img | (~img@user/img) |
2022-10-11 05:34:05 +0200 | talismanick | (~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 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2022-10-11 05:42:24 +0200 | burnsidesLlama | (~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 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds) |
2022-10-11 05:46:34 +0200 | Vajb | (~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer) |
2022-10-11 05:47:17 +0200 | Vajb | (~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 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) |
2022-10-11 06:00:17 +0200 | DDR | (~DDR@2604:3d08:4c7f:8250:e38c:e536:e3ca:1a0f) |
2022-10-11 06:02:47 +0200 | Vajb | (~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 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 06:07:01 +0200 | mbuf | (~Shakthi@49.204.112.116) |
2022-10-11 06:07:15 +0200 | Buliarous | (~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 +0200 | Vajb | (~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 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-10-11 06:11:59 +0200 | inversed | (~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 +0200 | leungbk | (~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 +0200 | EvanR | thonks |
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 +0200 | inversed | (~inversed@90.209.137.56) |
2022-10-11 06:20:40 +0200 | lambdap237 | (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap237) |
2022-10-11 06:21:15 +0200 | lambdap237 | (~lambdap@static.167.190.119.168.clients.your-server.de) |
2022-10-11 06:22:54 +0200 | dsrt^ | (~dsrt@c-76-17-6-165.hsd1.ga.comcast.net) (Remote host closed the connection) |
2022-10-11 06:23:08 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 06:25:14 +0200 | jao | (~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 +0200 | FinnElija | (~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 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-10-11 06:35:00 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-11 06:36:59 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2022-10-11 06:41:05 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 06:41:28 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-10-11 06:41:31 +0200 | biberu | (~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 +0200 | titibandit | (~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 +0200 | Franciman | (~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer) |
2022-10-11 06:45:59 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-10-11 06:46:09 +0200 | biberu | (~biberu@user/biberu) |
2022-10-11 06:49:08 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-10-11 06:49:09 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-10-11 06:49:09 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-10-11 06:55:17 +0200 | talismanick | (~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 244 seconds) |
2022-10-11 06:56:50 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 244 seconds) |
2022-10-11 07:00:09 +0200 | Franciman | (~Franciman@mx1.fracta.dev) |
2022-10-11 07:02:00 +0200 | rekahsoft | (~rekahsoft@142.189.68.220) (Ping timeout: 244 seconds) |
2022-10-11 07:03:45 +0200 | Lycurgus | (~juan@user/Lycurgus) |
2022-10-11 07:09:59 +0200 | Lycurgus | (~juan@user/Lycurgus) (Quit: Exeunt juan@acm.org) |
2022-10-11 07:10:45 +0200 | yvan-sraka | (~yvan-srak@46.183.103.8) |
2022-10-11 07:11:59 +0200 | yuzhao | (~yuzhao@36.112.45.72) |
2022-10-11 07:13:36 +0200 | yuzhao_ | (~yuzhao@36.112.45.72) (Ping timeout: 260 seconds) |
2022-10-11 07:13:50 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 07:15:24 +0200 | titibandit | (~titibandi@xdsl-89-0-65-2.nc.de) (Quit: Leaving.) |
2022-10-11 07:19:55 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
2022-10-11 07:25:44 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds) |
2022-10-11 07:29:34 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2022-10-11 07:31:00 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-10-11 07:31:41 +0200 | freeside | (~mengwong@103.252.202.193) (Ping timeout: 260 seconds) |
2022-10-11 07:31:54 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) |
2022-10-11 07:31:54 +0200 | wroathe | (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
2022-10-11 07:31:54 +0200 | wroathe | (~wroathe@user/wroathe) |
2022-10-11 07:32:26 +0200 | argento | (~argent0@191.81.194.124) (Remote host closed the connection) |
2022-10-11 07:32:49 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:c200:9e04:2be9:6643:df78) |
2022-10-11 07:32:52 +0200 | extratail | (~archie@2804:214:82be:8ae9:99a:eac4:866e:815c) (Ping timeout: 246 seconds) |
2022-10-11 07:33:24 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-10-11 07:33:27 +0200 | califax | (~califax@user/califx) (Remote host closed the connection) |
2022-10-11 07:34:30 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-10-11 07:34:33 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 07:35:55 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 07:38:39 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2022-10-11 07:39:46 +0200 | califax | (~califax@user/califx) |
2022-10-11 07:43:14 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2022-10-11 07:45:46 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-10-11 07:47:59 +0200 | DDR | (~DDR@2604:3d08:4c7f:8250:e38c:e536:e3ca:1a0f) (Ping timeout: 244 seconds) |
2022-10-11 07:52:18 +0200 | titibandit | (~titibandi@xdsl-89-0-65-2.nc.de) |
2022-10-11 07:53:43 +0200 | yvan-sraka | (~yvan-srak@46.183.103.8) (Remote host closed the connection) |
2022-10-11 07:55:13 +0200 | tcard | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) |
2022-10-11 07:55:37 +0200 | tcard_ | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Ping timeout: 246 seconds) |
2022-10-11 07:57:23 +0200 | tcard | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Read error: Connection reset by peer) |
2022-10-11 07:57:37 +0200 | tcard | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) |
2022-10-11 07:59:41 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-11 08:00:21 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
2022-10-11 08:00:40 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 08:01:51 +0200 | bgs | (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection) |
2022-10-11 08:02:37 +0200 | jmorris | (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2022-10-11 08:03:41 +0200 | califax | (~califax@user/califx) (Ping timeout: 258 seconds) |
2022-10-11 08:04:34 +0200 | tcard | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) (Read error: Connection reset by peer) |
2022-10-11 08:04:40 +0200 | tcard_ | (~tcard@2400:4051:5801:7500:19ce:ed82:2ab7:90f9) |
2022-10-11 08:04:43 +0200 | califax | (~califax@user/califx) |
2022-10-11 08:05:33 +0200 | nate1 | (~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 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 244 seconds) |
2022-10-11 08:11:34 +0200 | skrider | (~skrider@2607:f140:6000:29:3621:a5cd:d0ee:a46) |
2022-10-11 08:12:19 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 248 seconds) |
2022-10-11 08:13:13 +0200 | skrider | (~skrider@2607:f140:6000:29:3621:a5cd:d0ee:a46) (Client Quit) |
2022-10-11 08:13:54 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2022-10-11 08:17:48 +0200 | jargon | (~jargon@184.101.208.112) (Remote host closed the connection) |
2022-10-11 08:20:15 +0200 | andreabedini | (~andreabed@8s8kj681vht2qj3xkwc5.ip6.superloop.com) (Quit: WeeChat 3.6) |
2022-10-11 08:29:30 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-10-11 08:30:38 +0200 | titibandit | (~titibandi@xdsl-89-0-65-2.nc.de) (Remote host closed the connection) |
2022-10-11 08:30:56 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 08:31:11 +0200 | kenran | (~user@user/kenran) |
2022-10-11 08:32:56 +0200 | thegeekinside | (~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 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:39:23 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:40:34 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:40:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2022-10-11 08:41:48 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:42:59 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:44:04 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:46:05 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:47:40 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:48:35 +0200 | jonathanx_ | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds) |
2022-10-11 08:49:23 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:50:29 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:51:00 +0200 | acidjnk | (~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de) |
2022-10-11 08:51:11 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 08:51:29 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:51:59 +0200 | zeenk | (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) |
2022-10-11 08:52:36 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 264 seconds) |
2022-10-11 08:52:52 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:53:08 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 08:54:17 +0200 | mncheck | (~mncheck@193.224.205.254) |
2022-10-11 08:54:41 +0200 | yvan-sraka | (~yvan-srak@46.183.103.17) |
2022-10-11 08:57:25 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 08:57:54 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2022-10-11 08:58:01 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:4408:559f:5dea:dc65) |
2022-10-11 08:59:42 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 08:59:52 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
2022-10-11 09:03:46 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Remote host closed the connection) |
2022-10-11 09:04:03 +0200 | mbuf | (~Shakthi@49.204.112.116) (Quit: Leaving) |
2022-10-11 09:04:03 +0200 | kuribas | (~user@silversquare.silversquare.eu) |
2022-10-11 09:05:18 +0200 | MajorBiscuit | (~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl) |
2022-10-11 09:06:08 +0200 | darkstardev13 | (~darkstard@50.126.124.156) |
2022-10-11 09:06:18 +0200 | natechan | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-10-11 09:07:36 +0200 | rosalind | (rosalind@id-194105.uxbridge.irccloud.com) (Quit: Updating details, brb) |
2022-10-11 09:07:42 +0200 | n8chan | (~nate@98.45.169.16) |
2022-10-11 09:07:46 +0200 | rosalind | (rosalind@id-194105.uxbridge.irccloud.com) |
2022-10-11 09:08:16 +0200 | darkstardev13 | (~darkstard@50.126.124.156) (Max SendQ exceeded) |
2022-10-11 09:08:48 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-10-11 09:08:57 +0200 | Ristovski | (~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 250 seconds) |
2022-10-11 09:09:43 +0200 | briandaed | (~briandaed@185.234.210.211.r.toneticgroup.pl) |
2022-10-11 09:11:55 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-10-11 09:14:24 +0200 | cfricke | (~cfricke@user/cfricke) |
2022-10-11 09:16:40 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-10-11 09:20:17 +0200 | Ristovski | (~Ristovski@hellomouse/perf/ristovski) |
2022-10-11 09:21:00 +0200 | <tomsmeding> | delightful quotes! |
2022-10-11 09:21:09 +0200 | darkstardevx | (~darkstard@50.126.124.156) |
2022-10-11 09:23:21 +0200 | darkstardevx | (~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 +0200 | darkstardevx | (~darkstard@50.126.124.156) |
2022-10-11 09:32:37 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-10-11 09:38:46 +0200 | thyriaen | (~thyriaen@2a01:aea0:dd4:463c:6245:cbff:fe9f:48b1) |
2022-10-11 09:45:16 +0200 | ph88 | (~ph88@2a02:8109:9e00:71d0:7166:ab0e:b806:c76c) (Ping timeout: 260 seconds) |
2022-10-11 09:46:49 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 244 seconds) |
2022-10-11 09:47:45 +0200 | Typedfern | (~Typedfern@221.red-83-37-36.dynamicip.rima-tde.net) |
2022-10-11 09:48:14 +0200 | CiaoSen | (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-10-11 09:50:11 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-11 09:53:54 +0200 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2022-10-11 09:55:00 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 264 seconds) |
2022-10-11 10:00:34 +0200 | frost | (~frost@user/frost) |
2022-10-11 10:01:29 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 10:02:18 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2022-10-11 10:04:20 +0200 | nschoe | (~q@2a01:e0a:8e:a190:6cde:f540:4aad:1d22) |
2022-10-11 10:06:24 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 265 seconds) |
2022-10-11 10:06:52 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
2022-10-11 10:13:59 +0200 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) |
2022-10-11 10:17:18 +0200 | Ristovski | (~Ristovski@hellomouse/perf/ristovski) (Ping timeout: 244 seconds) |
2022-10-11 10:19:30 +0200 | yvan-sraka | (~yvan-srak@46.183.103.17) (Remote host closed the connection) |
2022-10-11 10:22:30 +0200 | chele | (~chele@user/chele) |
2022-10-11 10:22:52 +0200 | yvan-sraka | (~yvan-srak@46.183.103.17) |
2022-10-11 10:23:11 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-11 10:23:28 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-11 10:24:27 +0200 | yvan-sraka | (~yvan-srak@46.183.103.17) (Remote host closed the connection) |
2022-10-11 10:27:02 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 10:27:38 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 244 seconds) |
2022-10-11 10:29:38 +0200 | shriekingnoise | (~shrieking@186.137.167.202) (Quit: Quit) |
2022-10-11 10:30:28 +0200 | yvan-sraka | (~yvan-srak@46.183.103.17) |
2022-10-11 10:31:33 +0200 | leungbk | (~user@cpe-142-129-149-172.socal.res.rr.com) |
2022-10-11 10:39:27 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
2022-10-11 10:42:37 +0200 | razetime | (~quassel@117.193.4.181) (Ping timeout: 244 seconds) |
2022-10-11 10:43:37 +0200 | teo | (~teo@user/teo) |
2022-10-11 10:44:32 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 10:44:58 +0200 | loras | (~loras@c-73-139-125-125.hsd1.fl.comcast.net) (Ping timeout: 268 seconds) |
2022-10-11 10:45:04 +0200 | johnjaye | (~pi@173.209.64.74) (Ping timeout: 265 seconds) |
2022-10-11 10:45:24 +0200 | mcglk | (~mcglk@131.191.49.120) (Read error: Connection reset by peer) |
2022-10-11 10:46:42 +0200 | johnjaye | (~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 +0200 | freeside | (~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 +0200 | mcglk | (~mcglk@131.191.49.120) |
2022-10-11 10:51:43 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 10:53:59 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 244 seconds) |
2022-10-11 10:54:17 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2022-10-11 10:55:14 +0200 | ccapndave | (~ccapndave@xcpe-62-167-164-44.cgn.res.adslplus.ch) |
2022-10-11 10:57:18 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
2022-10-11 10:57:23 +0200 | rosalind | (rosalind@id-194105.uxbridge.irccloud.com) () |
2022-10-11 10:58:10 +0200 | razetime | (~quassel@117.193.4.181) |
2022-10-11 10:58:52 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Remote host closed the connection) |
2022-10-11 10:59:04 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
2022-10-11 11:00:05 +0200 | losfair[m] | (~losfairma@2001:470:69fc:105::2:7ca3) (Quit: You have been kicked for being idle) |
2022-10-11 11:01:16 +0200 | yvan-sraka | (~yvan-srak@46.183.103.17) (Remote host closed the connection) |
2022-10-11 11:01:19 +0200 | gmg | (~user@user/gehmehgeh) |
2022-10-11 11:09:36 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 11:12:25 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-11 11:14:30 +0200 | leungbk | (~user@cpe-142-129-149-172.socal.res.rr.com) (Ping timeout: 268 seconds) |
2022-10-11 11:19:18 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 244 seconds) |
2022-10-11 11:23:45 +0200 | leungbk | (~user@cpe-142-129-149-172.socal.res.rr.com) |
2022-10-11 11:25:41 +0200 | zoelea | (~zoelea@202.91.42.6) |
2022-10-11 11:27:58 +0200 | zoelea | (~zoelea@202.91.42.6) () |
2022-10-11 11:29:40 +0200 | frost | (~frost@user/frost) (Quit: Client closed) |
2022-10-11 11:30:09 +0200 | raehik1 | (~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 +0200 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2022-10-11 11:35:50 +0200 | briandaed | (~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 +0200 | madnight | (~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 +0200 | eggplantade | (~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 +0200 | yvan-sraka | (~yvan-srak@46.183.103.8) |
2022-10-11 11:46:00 +0200 | ft | (~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 +0200 | eggplantade | (~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 +0200 | spivak | (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 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 244 seconds) |
2022-10-11 11:52:36 +0200 | jonathanx | (~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 +0200 | michalz | (~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 +0200 | mbuf | (~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 +0200 | xff0x | (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds) |
2022-10-11 12:11:18 +0200 | raym | (~aritra@user/raym) (Ping timeout: 268 seconds) |
2022-10-11 12:12:55 +0200 | mvxkz | (~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 +0200 | raym | (~aritra@user/raym) |
2022-10-11 12:17:41 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 12:19:28 +0200 | <mvxkz> | anyone? |
2022-10-11 12:21:04 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 12:25:02 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 12:33:25 +0200 | ii8 | (~ii8@45.63.97.131) (Quit: ii8) |
2022-10-11 12:34:26 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 260 seconds) |
2022-10-11 12:35:46 +0200 | CiaoSen | (~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 +0200 | beteigeuze | (~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 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 12:40:59 +0200 | jakalx | (~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 +0200 | alex` | (~user@171.red-83-36-41.dynamicip.rima-tde.net) |
2022-10-11 12:46:06 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
2022-10-11 12:49:10 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-10-11 12:49:12 +0200 | raym | (~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 +0200 | burnsidesLlama | (~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 +0200 | CiaoSen | (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-10-11 12:57:48 +0200 | shailangsa | (~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 +0200 | xff0x | (~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 +0200 | yvan-sraka | (~yvan-srak@46.183.103.8) (Remote host closed the connection) |
2022-10-11 12:59:03 +0200 | thyriaen | (~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 +0200 | raym | (~aritra@user/raym) |
2022-10-11 13:01:12 +0200 | ccapndave | (~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 +0200 | jakalx | (~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 +0200 | burnsidesLlama | (~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 +0200 | Midjak | (~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 +0200 | ccapndave | (~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 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-10-11 13:15:30 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:8093:1499:1d37:f588) |
2022-10-11 13:16:06 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
2022-10-11 13:17:33 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-10-11 13:21:33 +0200 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Quit: beteigeuze) |
2022-10-11 13:22:01 +0200 | leungbk | (~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 +0200 | leungbk | (~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 +0200 | leungbk | (~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 +0200 | leungbk | (~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 +0200 | xff0x | (~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 +0200 | razetime | (~quassel@117.193.4.181) (Ping timeout: 260 seconds) |
2022-10-11 13:30:52 +0200 | xff0x | (~xff0x@ai071162.d.east.v6connect.net) |
2022-10-11 13:31:01 +0200 | leungbk | (~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com) (Client Quit) |
2022-10-11 13:31:17 +0200 | ccapndave | (~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 +0200 | leungbk | (~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 +0200 | razetime | (~quassel@117.193.4.181) |
2022-10-11 13:43:10 +0200 | extratail | (~archie@2804:214:82c9:273b:11b:69f9:589e:dd5a) |
2022-10-11 13:45:50 +0200 | yvan-sraka | (~yvan-srak@46.183.103.8) |
2022-10-11 13:46:09 +0200 | MajorBiscuit | (~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5) |
2022-10-11 13:47:48 +0200 | lyle | (~lyle@104.246.145.85) |
2022-10-11 13:50:52 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
2022-10-11 13:51:14 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-10-11 13:53:36 +0200 | yvan-sraka | (~yvan-srak@46.183.103.8) (Remote host closed the connection) |
2022-10-11 13:53:54 +0200 | yvan-sraka | (~yvan-srak@37.173.21.3) |
2022-10-11 13:54:15 +0200 | lyle | (~lyle@104.246.145.85) (Ping timeout: 252 seconds) |
2022-10-11 13:54:17 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 268 seconds) |
2022-10-11 13:59:42 +0200 | yvan-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 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 14:02:58 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 14:05:31 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2022-10-11 14:07:36 +0200 | leungbk | (~user@2603-8000-1201-2dd2-ed4f-5e28-791d-2486.res6.spectrum.com) (Ping timeout: 264 seconds) |
2022-10-11 14:07:44 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
2022-10-11 14:09:03 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 14:15:15 +0200 | Putonlalla | (~Putonlall@it-cyan.it.jyu.fi) (Remote host closed the connection) |
2022-10-11 14:15:32 +0200 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2022-10-11 14:16:09 +0200 | shailangsa | (~shailangs@host86-182-139-4.range86-182.btcentralplus.com) |
2022-10-11 14:20:29 +0200 | Ristovski | (~Ristovski@hellomouse/perf/ristovski) |
2022-10-11 14:23:44 +0200 | tdmm | (1c9b9145fc@2604:bf00:561:2000::1c8) () |
2022-10-11 14:26:07 +0200 | yvan-sraka | (~yvan-srak@37.173.21.3) |
2022-10-11 14:26:14 +0200 | yvan-sraka | (~yvan-srak@37.173.21.3) (Remote host closed the connection) |
2022-10-11 14:27:20 +0200 | yvan-sraka | (~yvan-srak@37.173.21.3) |
2022-10-11 14:30:21 +0200 | yvan-sraka | (~yvan-srak@37.173.21.3) (Remote host closed the connection) |
2022-10-11 14:32:47 +0200 | mvxkz | (~mvxkz@119.30.46.32) (Remote host closed the connection) |
2022-10-11 14:33:55 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 258 seconds) |
2022-10-11 14:34:46 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-10-11 14:43:03 +0200 | famubu | (~famubu@14.139.174.50) |
2022-10-11 14:43:03 +0200 | famubu | (~famubu@14.139.174.50) (Changing host) |
2022-10-11 14:43:03 +0200 | famubu | (~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 +0200 | frost | (~frost@user/frost) |
2022-10-11 15:00:52 +0200 | acidjnk | (~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2022-10-11 15:02:39 +0200 | burnsidesLlama | (~burnsides@client-8-70.eduroam.oxuni.org.uk) |
2022-10-11 15:03:34 +0200 | Guest17 | (~Guest17@217.64.164.1) |
2022-10-11 15:08:09 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) |
2022-10-11 15:10:26 +0200 | razetime | (~quassel@117.193.4.181) (Remote host closed the connection) |
2022-10-11 15:10:27 +0200 | thegeekinside | (~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 +0200 | burnsidesLlama | (~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 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 15:20:08 +0200 | acidjnk | (~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de) |
2022-10-11 15:21:20 +0200 | tgi | (~thegeekin@189.180.54.50) |
2022-10-11 15:22:26 +0200 | thegeekinside | (~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 +0200 | frost | (~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 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) |
2022-10-11 15:28:29 +0200 | dolio | (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
2022-10-11 15:30:25 +0200 | dolio | (~dolio@130.44.130.54) |
2022-10-11 15:31:35 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 15:33:24 +0200 | dolio | (~dolio@130.44.130.54) (Client Quit) |
2022-10-11 15:33:31 +0200 | famubu | (~famubu@user/famubu) (Ping timeout: 268 seconds) |
2022-10-11 15:34:13 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 268 seconds) |
2022-10-11 15:34:37 +0200 | dolio | (~dolio@130.44.130.54) |
2022-10-11 15:34:57 +0200 | alecs | (~alecs@bo-18-159-115.service.infuturo.it) |
2022-10-11 15:37:00 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
2022-10-11 15:42:20 +0200 | Surobaki | (~surobaki@user/surobaki) |
2022-10-11 15:45:50 +0200 | Surobaki | (~surobaki@user/surobaki) (Remote host closed the connection) |
2022-10-11 15:46:02 +0200 | Surobaki | (~surobaki@137.44.222.70) |
2022-10-11 15:47:16 +0200 | jero98772 | (~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) |
2022-10-11 15:47:25 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-10-11 15:47:55 +0200 | kuribas | (~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 +0200 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
2022-10-11 15:48:36 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2022-10-11 15:49:18 +0200 | rockystone | (~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 +0200 | wroathe | (~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 +0200 | ubert | (~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 +0200 | ubert | (~Thunderbi@77.119.164.69.wireless.dyn.drei.com) |
2022-10-11 15:52:37 +0200 | eggplantade | (~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 +0200 | causal | (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e) |
2022-10-11 15:56:13 +0200 | Franciman | (~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 +0200 | alecs | (~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 +0200 | jonathanx_ | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
2022-10-11 15:58:51 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Read error: Connection reset by peer) |
2022-10-11 15:59:25 +0200 | alecs | (~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 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
2022-10-11 16:02:57 +0200 | jonathanx_ | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2022-10-11 16:03:37 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2022-10-11 16:03:38 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-10-11 16:03:38 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
2022-10-11 16:03:38 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2022-10-11 16:03:38 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-10-11 16:03:38 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-10-11 16:03:38 +0200 | califax | (~califax@user/califx) (Write error: Connection reset by peer) |
2022-10-11 16:05:01 +0200 | Surobaki | (~surobaki@137.44.222.70) (Ping timeout: 244 seconds) |
2022-10-11 16:05:03 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-11 16:05:05 +0200 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2022-10-11 16:05:13 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-10-11 16:05:24 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-10-11 16:05:37 +0200 | califax | (~califax@user/califx) |
2022-10-11 16:05:54 +0200 | stiell_ | (~stiell@gateway/tor-sasl/stiell) |
2022-10-11 16:05:57 +0200 | shriekingnoise | (~shrieking@186.137.167.202) |
2022-10-11 16:10:26 +0200 | MajorBiscuit | (~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl) |
2022-10-11 16:10:31 +0200 | alecs | (~alecs@bo-18-159-115.service.infuturo.it) (Ping timeout: 246 seconds) |
2022-10-11 16:12:00 +0200 | alecs | (~alecs@bo-18-159-115.service.infuturo.it) |
2022-10-11 16:18:27 +0200 | Franciman | (~Franciman@mx1.fracta.dev) |
2022-10-11 16:19:32 +0200 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
2022-10-11 16:29:03 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2022-10-11 16:34:11 +0200 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2022-10-11 16:34:17 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds) |
2022-10-11 16:34:56 +0200 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) |
2022-10-11 16:45:24 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds) |
2022-10-11 16:49:28 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-10-11 16:51:26 +0200 | alecs | (~alecs@bo-18-159-115.service.infuturo.it) (Ping timeout: 265 seconds) |
2022-10-11 16:52:50 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
2022-10-11 16:53:03 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-10-11 16:53:49 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-10-11 16:53:53 +0200 | Franciman | (~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer) |
2022-10-11 16:54:25 +0200 | razetime | (~quassel@117.193.4.181) |
2022-10-11 16:55:57 +0200 | kenran | (~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 +0200 | dr_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 +0200 | zebrag | (~chris@user/zebrag) |
2022-10-11 16:59:57 +0200 | loras | (~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 +0200 | bc_ | (~bc@c-73-139-125-125.hsd1.fl.comcast.net) |
2022-10-11 17:00:13 +0200 | bc_ | (~bc@c-73-139-125-125.hsd1.fl.comcast.net) (Remote host closed the connection) |
2022-10-11 17:00:34 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) (Ping timeout: 246 seconds) |
2022-10-11 17:04:00 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 265 seconds) |
2022-10-11 17:07:05 +0200 | Feuermagier_ | (~Feuermagi@213.149.82.60) |
2022-10-11 17:07:57 +0200 | Guest17 | (~Guest17@217.64.164.1) (Ping timeout: 244 seconds) |
2022-10-11 17:08:47 +0200 | azimut_ | (~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 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 17:09:48 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 265 seconds) |
2022-10-11 17:10:34 +0200 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2022-10-11 17:11:22 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:4408:559f:5dea:dc65) (Quit: WeeChat 2.8) |
2022-10-11 17:12:48 +0200 | vorpuni | (~pvorp@2001:861:3881:c690:c993:5fdd:bfff:f466) |
2022-10-11 17:15:08 +0200 | Guest17 | (~Guest17@217.64.164.1) |
2022-10-11 17:15:16 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 17:16:00 +0200 | jonathanx | (~jonathan@h-98-128-168-222.NA.cust.bahnhof.se) |
2022-10-11 17:18:24 +0200 | CiaoSen | (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-10-11 17:20:17 +0200 | Franciman | (~Franciman@mx1.fracta.dev) |
2022-10-11 17:22:06 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-10-11 17:22:36 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 264 seconds) |
2022-10-11 17:24:24 +0200 | dr_merijn | (~dr_merijn@86-86-29-250.fixed.kpn.net) |
2022-10-11 17:25:10 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-10-11 17:25:26 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 17:27:24 +0200 | jonathanx | (~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 +0200 | Feuermagier | (~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 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 17:42:39 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 17:43:01 +0200 | Feuermagier_ | (~Feuermagi@213.149.82.60) (Ping timeout: 260 seconds) |
2022-10-11 17:45:15 +0200 | beteigeuze | (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 244 seconds) |
2022-10-11 17:45:21 +0200 | teo | (~teo@user/teo) (Ping timeout: 260 seconds) |
2022-10-11 17:45:27 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 17:45:58 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-10-11 18:02:04 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2022-10-11 18:04:41 +0200 | nschoe | (~q@2a01:e0a:8e:a190:6cde:f540:4aad:1d22) (Ping timeout: 268 seconds) |
2022-10-11 18:07:08 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 18:09:18 +0200 | shapr | (~user@68.54.166.125) |
2022-10-11 18:12:48 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-10-11 18:13:15 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-10-11 18:13:53 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2022-10-11 18:14:53 +0200 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2022-10-11 18:16:41 +0200 | alex` | (~user@171.red-83-36-41.dynamicip.rima-tde.net) (Ping timeout: 250 seconds) |
2022-10-11 18:16:51 +0200 | MajorBiscuit | (~MajorBisc@c-001-009-031.client.tudelft.eduvpn.nl) (Ping timeout: 260 seconds) |
2022-10-11 18:17:32 +0200 | talismanick | (~talismani@2601:200:c100:c9e0::1b0b) |
2022-10-11 18:17:32 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Quit: Leaving) |
2022-10-11 18:18:45 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) |
2022-10-11 18:19:21 +0200 | johnjaye | (~pi@173.209.64.74) (Ping timeout: 252 seconds) |
2022-10-11 18:20:09 +0200 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2022-10-11 18:20:42 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 18:22:27 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) (Ping timeout: 244 seconds) |
2022-10-11 18:23:22 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 18:27:47 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 248 seconds) |
2022-10-11 18:34:11 +0200 | Franciman | (~Franciman@mx1.fracta.dev) (Ping timeout: 248 seconds) |
2022-10-11 18:35:38 +0200 | MajorBiscuit | (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 268 seconds) |
2022-10-11 18:43:36 +0200 | econo | (uid147250@user/econo) |
2022-10-11 18:45:46 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds) |
2022-10-11 18:46:03 +0200 | abrantesasf | (~abrantesa@187.64.158.2) (Read error: Connection reset by peer) |
2022-10-11 18:48:43 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2022-10-11 18:49:04 +0200 | fserucas | (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 246 seconds) |
2022-10-11 18:51:37 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-11 18:53:15 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2022-10-11 18:57:16 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2022-10-11 18:58:26 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2022-10-11 19:01:16 +0200 | thyriaen | (~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 +0200 | leungbk | (~user@cpe-142-129-149-172.socal.res.rr.com) |
2022-10-11 19:08:51 +0200 | Henson | (~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 +0200 | leungbk | (~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 +0200 | Topsi | (~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 +0200 | Feuermagier | (~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 +0200 | Franciman | (~Franciman@mx1.fracta.dev) |
2022-10-11 19:18:53 +0200 | alecs | (~alecs@host-62-211-49-5.pool62211.interbusiness.it) |
2022-10-11 19:21:33 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 19:22:46 +0200 | jbayardo | (~jbayardo@20.83.116.49) |
2022-10-11 19:23:02 +0200 | thegeekinside | (~thegeekin@189.180.7.159) |
2022-10-11 19:24:12 +0200 | tgi | (~thegeekin@189.180.54.50) (Ping timeout: 268 seconds) |
2022-10-11 19:27:04 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 265 seconds) |
2022-10-11 19:27:52 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 19:29:51 +0200 | gurkenglas | (~gurkengla@p548ac72e.dip0.t-ipconnect.de) |
2022-10-11 19:30:48 +0200 | tgi | (~thegeekin@189.180.7.159) |
2022-10-11 19:32:12 +0200 | jbayardo | (~jbayardo@20.83.116.49) (Ping timeout: 244 seconds) |
2022-10-11 19:32:50 +0200 | thegeekinside | (~thegeekin@189.180.7.159) (Ping timeout: 268 seconds) |
2022-10-11 19:33:51 +0200 | raym | (~aritra@user/raym) (Ping timeout: 260 seconds) |
2022-10-11 19:36:49 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-10-11 19:39:19 +0200 | raym | (~aritra@user/raym) |
2022-10-11 19:39:26 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
2022-10-11 19:40:17 +0200 | ChaiTRex | (~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 +0200 | razetime | (~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 +0200 | acidjnk | (~acidjnk@p200300d6e7137a344db4216ce866c9cc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2022-10-11 19:48:07 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2022-10-11 19:48:38 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2022-10-11 19:49:44 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-10-11 19:52:12 +0200 | jbayardo | (~jbayardo@20.83.116.49) |
2022-10-11 19:52:26 +0200 | mbuf | (~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 +0200 | alecs | (~alecs@host-62-211-49-5.pool62211.interbusiness.it) (Ping timeout: 265 seconds) |
2022-10-11 19:56:21 +0200 | alecs | (~alecs@151.36.35.186) |
2022-10-11 19:58:35 +0200 | Guest17 | (~Guest17@217.64.164.1) (Quit: Client closed) |
2022-10-11 19:59:53 +0200 | acidjnk | (~acidjnk@p200300d6e7137a811112d37158fd9527.dip0.t-ipconnect.de) |
2022-10-11 20:00:17 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2022-10-11 20:02:26 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 20:03:32 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2022-10-11 20:09:35 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2022-10-11 20:14:00 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Quit: Leaving) |
2022-10-11 20:14:36 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2022-10-11 20:15:12 +0200 | titibandit | (~titibandi@xdsl-89-0-65-2.nc.de) |
2022-10-11 20:15:53 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2022-10-11 20:20:38 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 20:23:03 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-10-11 20:23:31 +0200 | extratail | (~archie@2804:214:82c9:273b:11b:69f9:589e:dd5a) (Ping timeout: 248 seconds) |
2022-10-11 20:24:49 +0200 | AlexNoo_ | (~AlexNoo@178.34.161.92) |
2022-10-11 20:24:50 +0200 | c209e6dc-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 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 265 seconds) |
2022-10-11 20:27:06 +0200 | Alex_test | (~al_test@94.233.240.222) (Ping timeout: 268 seconds) |
2022-10-11 20:27:06 +0200 | AlexZenon | (~alzenon@94.233.240.222) (Ping timeout: 268 seconds) |
2022-10-11 20:28:41 +0200 | AlexNoo | (~AlexNoo@94.233.240.222) (Ping timeout: 260 seconds) |
2022-10-11 20:29:03 +0200 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2022-10-11 20:29:11 +0200 | albet70 | (~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 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2022-10-11 20:31:57 +0200 | AlexZenon | (~alzenon@178.34.161.92) |
2022-10-11 20:32:14 +0200 | Alex_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 +0200 | AlexNoo_ | 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 +0200 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2022-10-11 20:39:08 +0200 | c209e6dc-4d76-47 | (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!) |
2022-10-11 20:39:30 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2022-10-11 20:41:24 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2022-10-11 20:41:29 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) |
2022-10-11 20:42:44 +0200 | tgi | (~thegeekin@189.180.7.159) (Remote host closed the connection) |
2022-10-11 20:45:03 +0200 | raym | (~aritra@user/raym) (Ping timeout: 244 seconds) |
2022-10-11 20:46:12 +0200 | raym | (~aritra@user/raym) |
2022-10-11 20:52:48 +0200 | rockystone | (~rocky@user/rockymarine) (Ping timeout: 244 seconds) |
2022-10-11 20:53:23 +0200 | raym | (~aritra@user/raym) (Ping timeout: 248 seconds) |
2022-10-11 20:54:20 +0200 | raym | (~aritra@user/raym) |
2022-10-11 20:56:50 +0200 | rockystone | (~rocky@user/rockymarine) |
2022-10-11 20:58:00 +0200 | c209e6dc-4d76-47 | (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) |
2022-10-11 21:01:09 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 21:03:31 +0200 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 250 seconds) |
2022-10-11 21:06:03 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2022-10-11 21:06:45 +0200 | Natch | (~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) |
2022-10-11 21:09:13 +0200 | CiaoSen | (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2022-10-11 21:12:03 +0200 | biberu | (~biberu@user/biberu) (Read error: Connection reset by peer) |
2022-10-11 21:12:46 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-10-11 21:16:51 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Remote host closed the connection) |
2022-10-11 21:17:34 +0200 | leungbk | (~user@cpe-142-129-149-172.socal.res.rr.com) |
2022-10-11 21:17:45 +0200 | mvk | (~mvk@2607:fea8:5ce3:8500::a80f) |
2022-10-11 21:19:08 +0200 | ft | (~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 +0200 | coot | (~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 +0200 | rockystone | (~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 +0200 | rockystone | (~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 +0200 | biberu | (~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 +0200 | teo | (~teo@user/teo) |
2022-10-11 21:42:16 +0200 | kenran | (~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 +0200 | extratail | (~archie@2804:214:82c9:273b:11b:69f9:589e:dd5a) |
2022-10-11 21:44:20 +0200 | Topsi | (~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 +0200 | alecs | (~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 +0200 | zxrom | (~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 +0200 | pavonia | (~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 +0200 | kenran | (~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 +0200 | alecs | (~alecs@151.34.71.118) |
2022-10-11 21:52:54 +0200 | <monochrom> | fast FFT? ATM machine? >:) |
2022-10-11 21:52:57 +0200 | kenran | (~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 +0200 | Sauvin | (~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 +0200 | kenran | (~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 +0200 | kenran | (~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 +0200 | Colere | (~colere@about/linux/staff/sauvin) |
2022-10-11 21:58:59 +0200 | rockystone | (~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 +0200 | ph88 | (~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 +0200 | wootehfoot | (~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 +0200 | rockystone | (~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 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2022-10-11 22:12:10 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) |
2022-10-11 22:13:35 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2022-10-11 22:13:51 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-10-11 22:14:29 +0200 | loras | (~bc@c-73-139-125-125.hsd1.fl.comcast.net) (Quit: Leaving) |
2022-10-11 22:15:31 +0200 | vorpuni | (~pvorp@2001:861:3881:c690:c993:5fdd:bfff:f466) (Ping timeout: 248 seconds) |
2022-10-11 22:16:12 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2022-10-11 22:17:22 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) |
2022-10-11 22:18:17 +0200 | codaraxis__ | (~codaraxis@user/codaraxis) |
2022-10-11 22:18:34 +0200 | burnsidesLlama | (~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 244 seconds) |
2022-10-11 22:21:40 +0200 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:9960:b0f8:561f:a74b) (Ping timeout: 244 seconds) |
2022-10-11 22:21:48 +0200 | teo | (~teo@user/teo) (Ping timeout: 268 seconds) |
2022-10-11 22:22:02 +0200 | codaraxis___ | (~codaraxis@user/codaraxis) (Ping timeout: 265 seconds) |
2022-10-11 22:24:08 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2022-10-11 22:25:25 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-10-11 22:26:32 +0200 | ec | (~ec@gateway/tor-sasl/ec) |
2022-10-11 22:31:29 +0200 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 244 seconds) |
2022-10-11 22:34:14 +0200 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds) |
2022-10-11 22:46:20 +0200 | nate1 | (~nate@98.45.169.16) |
2022-10-11 22:48:29 +0200 | teo | (~teo@user/teo) |
2022-10-11 22:49:56 +0200 | vorpuni | (~pvorp@2001:861:3881:c690:6a24:2212:7415:f659) |
2022-10-11 22:50:48 +0200 | CiaoSen | (~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2022-10-11 22:51:21 +0200 | nate1 | (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
2022-10-11 22:54:10 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2022-10-11 22:54:10 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2022-10-11 22:54:13 +0200 | allbery_b | geekosaur |
2022-10-11 23:01:48 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-10-11 23:02:00 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection) |
2022-10-11 23:02:11 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2022-10-11 23:07:23 +0200 | zer0bitz | (~zer0bitz@2001:2003:f748:2000:8093:1499:1d37:f588) (Ping timeout: 268 seconds) |
2022-10-11 23:09:53 +0200 | leungbk | (~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 +0200 | teo | (~teo@user/teo) (Ping timeout: 268 seconds) |
2022-10-11 23:13:04 +0200 | biberu | (~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 +0200 | biberu | (~biberu@user/biberu) |
2022-10-11 23:20:25 +0200 | phma | (~phma@2001:5b0:210f:49a8:1266:723e:2abd:17a6) (Read error: Connection reset by peer) |
2022-10-11 23:20:52 +0200 | phma | (~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 +0200 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2022-10-11 23:29:07 +0200 | zeenk | (~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!) |
2022-10-11 23:31:56 +0200 | libertyprime | (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) |
2022-10-11 23:36:55 +0200 | Henson | (~kvirc@207.136.101.195) (Ping timeout: 250 seconds) |
2022-10-11 23:39:27 +0200 | ubert | (~Thunderbi@77.119.164.69.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2022-10-11 23:42:52 +0200 | c209e6dc-4d76-47 | (~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!) |
2022-10-11 23:51:44 +0200 | michalz | (~michalz@185.246.207.218) (Remote host closed the connection) |
2022-10-11 23:52:01 +0200 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2022-10-11 23:55:37 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2022-10-11 23:56:00 +0200 | jinsun | (~jinsun@user/jinsun) |
2022-10-11 23:59:09 +0200 | ubert | (~Thunderbi@77.119.214.60.wireless.dyn.drei.com) |
2022-10-11 23:59:51 +0200 | mncheck | (~mncheck@193.224.205.254) (Ping timeout: 260 seconds) |