2022/08/07

2022-08-07 00:01:22 +0200 <monochrom> I believe that the status quo is already the least worst.
2022-08-07 00:01:26 +0200 <erisco> I see this all the time in designing computer systems... for example, "user" might refer to a human interacting with the system, or it might refer to a username, or it might refer to a table row, or an object class, and so on
2022-08-07 00:02:39 +0200 <monochrom> Consider the alternative: "The integers are an abstract type that supports the following API and obeys the following axioms". You will be left with no audience at all.
2022-08-07 00:03:35 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-07 00:03:45 +0200 <monochrom> With "an integer is a bunch of bits/digits" you at least can retain some audience and you can tell the abstract reality later.
2022-08-07 00:04:37 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 00:04:39 +0200 <erisco> it is a lure... I know ones and zeros, and if so if an integer is just a collection of those, it can't be so hard
2022-08-07 00:05:10 +0200geekosaureyes "CFG" suspiciously
2022-08-07 00:05:49 +0200 <geekosaur> emotion is unlikely to ever boil down to anything so simple
2022-08-07 00:06:10 +0200 <monochrom> I know how to teach queues abstractly, i.e., without referring to any model such as "a linked list and you may only front-add and back-delete". I know no one actually does that, not even myself. There is a reason.
2022-08-07 00:06:14 +0200 <erisco> obv... emotion can only be described with an attribute grammar
2022-08-07 00:07:41 +0200 <erisco> I dunno monochrom, I feel like this sort of reductionism can be a curse
2022-08-07 00:08:27 +0200 <qrpnxz> i've never seen "user" refer to username, or table row, or object class. I thought you were going to say it can refer to a human, or also to some computer client
2022-08-07 00:08:42 +0200 <geekosaur> I have
2022-08-07 00:08:50 +0200 <geekosaur> but I used to be a DBA
2022-08-07 00:08:59 +0200 <erisco> you have never seen a users table or a User class?
2022-08-07 00:09:32 +0200 <qrpnxz> Well User pretty distinct form user :), i guess what was missing is the context.
2022-08-07 00:09:55 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-07 00:09:56 +0200phma(~phma@host-67-44-208-54.hnremote.net) (Read error: Connection reset by peer)
2022-08-07 00:10:05 +0200 <monochrom> I've never seen an OOP programmer who doesn't use the word "car" to refer to an in-memory imposter object that pretends to be a car. >:)
2022-08-07 00:10:17 +0200phma(~phma@host-67-44-208-54.hnremote.net)
2022-08-07 00:10:38 +0200nattiestnate(~nate@180.243.13.242)
2022-08-07 00:11:16 +0200 <erisco> there is something that seems better about more fundamental descriptions... more real, or more informed, more advanced, etc... it has merit in physics I think but it doesn't translate the same to mathematics, or to computer science by extension, and I think that is where the harm comes from
2022-08-07 00:11:22 +0200 <monochrom> Oh hey to be fair, I have never seen a Haskell programmer who doesn't use the word "Person" to refer to "data Person = Person { ...}" which is a record type not a person. >:)
2022-08-07 00:11:22 +0200 <qrpnxz> monochrom: btw, ...abstract reality? That sounds oxymoronic xD
2022-08-07 00:11:59 +0200 <geekosaur> no? some ways rerality is the ultimate abstraction
2022-08-07 00:12:08 +0200 <darkling> Have a look at the http-range-14 arguments some time. :)
2022-08-07 00:12:11 +0200 <qrpnxz> to me reality is the opposite of abstraction
2022-08-07 00:12:20 +0200 <monochrom> When I teach the State monad I also say "the fantasy of mutable state" and "the mathematical reality" >:)
2022-08-07 00:12:26 +0200 <qrpnxz> reality is as specific as you get, sample of one, unique
2022-08-07 00:12:35 +0200 <qrpnxz> all abstraction is extracting a pattern out of that
2022-08-07 00:12:48 +0200 <monochrom> Right? "Reality" means whatever I define it to mean!
2022-08-07 00:12:56 +0200 <geekosaur> you might look at how well that worked for robotics
2022-08-07 00:13:20 +0200 <geekosaur> abstraction turned out to be necessary, becayuse treating everything as a concrete one-off lost hard
2022-08-07 00:14:06 +0200michalz(~michalz@185.246.204.87) (Remote host closed the connection)
2022-08-07 00:14:21 +0200nattiestnate(~nate@180.243.13.242) (Client Quit)
2022-08-07 00:14:40 +0200nattiestnate(~nate@180.243.13.242)
2022-08-07 00:15:32 +0200mvk(~mvk@2607:fea8:5ce3:8500::d5f2) (Ping timeout: 244 seconds)
2022-08-07 00:15:44 +0200 <monochrom> But more concretely (pun!), in the case of trying to describe an "integer type", suppose you are given Haskell 2020 without the Data.Bits module. Then Haskell's "Integer type" is truly an abstract type, you are not given access to its representation, you may only use a puny API such as read, (+), show. Your reality is abstract.
2022-08-07 00:15:56 +0200 <monochrom> Err Haskell 2010!
2022-08-07 00:16:01 +0200 <EvanR> you can have many mutually incompatible realities coexisting for whatever reason
2022-08-07 00:16:11 +0200 <erisco> I shy away from "abstraction" anymore because it suggests something illusory, and that is not what I intend
2022-08-07 00:16:21 +0200 <monochrom> (There is no "Haskell 2020 The Pandemic Special Edition" haha)
2022-08-07 00:16:27 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua)
2022-08-07 00:16:40 +0200 <qrpnxz> arguable even bits respects ADT, because you can think it only pulls bits from "where they should be". You can implement bits for something that didn't have bits.
2022-08-07 00:17:01 +0200 <EvanR> I'm doubling down on abstraction any time I mean "stuff I care about" and this is not literally everything in sight
2022-08-07 00:17:22 +0200 <monochrom> I have begun to tell students "it's telephone games all the way down".
2022-08-07 00:17:26 +0200acidjnk(~acidjnk@p200300d6e7058605e481051ccd0ab90b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-08-07 00:17:28 +0200 <qrpnxz> noooo
2022-08-07 00:17:37 +0200 <EvanR> and it's annoying when someone comes to a conclusion that we care about everything in sight
2022-08-07 00:18:02 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-08-07 00:18:33 +0200 <monochrom> Strictly technicality speaking, as far as science has found, the only reality for computing is the quantum world. But what's the fun in that?
2022-08-07 00:18:37 +0200 <darkling> There are multiple abstractions, depending on who you're talking to and what they do with the ideas.
2022-08-07 00:18:48 +0200 <EvanR> if you begin from pure constructions and move toward a solution from nothing, it's impossible to care about everything ever, much easier xD
2022-08-07 00:18:58 +0200 <darkling> The difficulties come when two of those domains collide, and you've got to make sense of both at the same time.
2022-08-07 00:19:15 +0200 <monochrom> Anything above the quantum level is a fictional abstraction, by definition.
2022-08-07 00:19:35 +0200 <EvanR> quantum physics is its own perfectly cromulent abstraction
2022-08-07 00:19:36 +0200zanyan(~zanyan@2a02:6b64:f194:0:d0c7:84be:16ed:9f2a)
2022-08-07 00:19:40 +0200 <qrpnxz> sure? i've seen above the quantum level, never seen below it.
2022-08-07 00:19:41 +0200 <darkling> I'm pretty sure quantum mechanics is a poor abstraction, too. We just haven't worked out what of yet.
2022-08-07 00:19:45 +0200 <monochrom> And also a social construct!
2022-08-07 00:20:14 +0200 <zanyan> Hey there! Was wondering whether I could get some help on a Haskell project I'm working on? The modules don't seem to be loading
2022-08-07 00:20:35 +0200 <qrpnxz> could you be more specific
2022-08-07 00:20:43 +0200 <zanyan> Well I'm using this http://learn.hfm.io/fractals/fractals.html to try and draw some recursive fractal code
2022-08-07 00:20:52 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 245 seconds)
2022-08-07 00:20:54 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2022-08-07 00:21:22 +0200EvanR(~EvanR@user/evanr) (Quit: Leaving)
2022-08-07 00:21:27 +0200 <qrpnxz> lol
2022-08-07 00:21:39 +0200 <qrpnxz> sorry guy, i don't have a mac
2022-08-07 00:21:47 +0200 <zanyan> no no, I don't have one either
2022-08-07 00:21:52 +0200nattiestnate(~nate@180.243.13.242) (Quit: WeeChat 3.6)
2022-08-07 00:22:06 +0200 <zanyan> I don't think you need one(?...)
2022-08-07 00:22:18 +0200 <zanyan> or wait, do you? which would probably explain why none of the code is working
2022-08-07 00:23:17 +0200 <geekosaur[m]> Looks to me like it uses cabal v1
2022-08-07 00:23:39 +0200 <qrpnxz> "Run GHCi inside the Fractals.hsproj directory after downloading and unpacking. Then, load the Fractals module"
2022-08-07 00:23:43 +0200 <qrpnxz> did you do that?
2022-08-07 00:23:57 +0200 <zanyan> yup, ran GHCi in the directory, and loaded the fractals module
2022-08-07 00:24:04 +0200 <geekosaur[m]> Things don't work that way with cabal v3, you need to create a project
2022-08-07 00:24:09 +0200 <zanyan> but when I did, it said no modules loaded
2022-08-07 00:24:23 +0200 <zanyan> right right, thank you!
2022-08-07 00:24:42 +0200 <geekosaur[m]> Dependencies won't be found otherwise
2022-08-07 00:24:53 +0200 <zanyan> I'm trying to find some nice interactive tutorials on haskell... it's a shame this tut is outdated then
2022-08-07 00:25:01 +0200 <qrpnxz> hoogle says you need https://hackage.haskell.org/package/Rasterific and https://hackage.haskell.org/package/JuicyPixels
2022-08-07 00:25:17 +0200 <zanyan> I'm applying to universities so I thought it would it be neat to learn some functional programming ahead of time
2022-08-07 00:25:17 +0200 <qrpnxz> you can get those with `cabal install --lib [namehere]`
2022-08-07 00:25:25 +0200 <geekosaur[m]> You could also force v1 but we got rid of it for very good reason
2022-08-07 00:25:26 +0200 <zanyan> alright I'll try that!
2022-08-07 00:25:27 +0200 <qrpnxz> zanyan: neat!
2022-08-07 00:25:45 +0200 <zanyan> (well, I'm still unsure whether I want to do Econ or CS but still :P)
2022-08-07 00:26:04 +0200 <monochrom> Do both.
2022-08-07 00:26:15 +0200 <qrpnxz> lol
2022-08-07 00:26:24 +0200 <zanyan> oh, if only I could
2022-08-07 00:26:27 +0200 <monochrom> We need more programmers who understand and accept that a lot of programming decisions are economical.
2022-08-07 00:26:29 +0200 <qrpnxz> why not
2022-08-07 00:26:36 +0200 <qrpnxz> haha
2022-08-07 00:26:51 +0200 <qrpnxz> super combo: actuarial science + CS
2022-08-07 00:27:03 +0200 <zanyan> Unfortunately the universities in the UK do not offer it :(
2022-08-07 00:27:09 +0200 <qrpnxz> ????
2022-08-07 00:27:15 +0200 <zanyan> well, econ + cs
2022-08-07 00:27:17 +0200 <qrpnxz> who doesn't offer econ
2022-08-07 00:27:32 +0200 <qrpnxz> what? You can't do two degrees in UK?
2022-08-07 00:27:32 +0200 <zanyan> oh, many offer econ, but not many offer a joint degree of econ and cs
2022-08-07 00:27:49 +0200 <zanyan> well, I'm 17 so I'm going to be an undergrad. I can only pick one at the moment
2022-08-07 00:28:22 +0200 <zanyan> @qr
2022-08-07 00:28:22 +0200 <lambdabot> Maybe you meant: wn v url src rc pl id do bf arr @ ? .
2022-08-07 00:28:31 +0200 <monochrom> I have a feeling that if you go for a game theory degree then it's one degree but it does both economics and CS.
2022-08-07 00:28:38 +0200 <zanyan> uhhh yeah installing the libraries again doesn't do much
2022-08-07 00:29:11 +0200 <zanyan> monochrom oh yeah, I love reading about game theory
2022-08-07 00:29:24 +0200 <zanyan> https://github.com/Zzzayaan/the_prisoners_dilemma/blob/main/the_prisoners_dilemma.ipynb (here's my little notebook where I've looked into it)
2022-08-07 00:29:56 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-07 00:30:21 +0200 <erisco> what job does an economist hold after graduating? I am wondering if it is like CS where you learn propositional logic and how to balance AVL trees to then write HTTP handlers than shuffle JSON around for the next 30 years
2022-08-07 00:30:28 +0200 <zanyan> I feel like I would have a better chance of getting into a good university for econ though, we at least have an economics teacher. Unfortunately I haven't studied CS yet and we have no support for the subject
2022-08-07 00:30:57 +0200 <zanyan> erisco well a lot go into IB and consultancy
2022-08-07 00:31:18 +0200 <zanyan> I suppose a lot head into the public sector too
2022-08-07 00:32:56 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Quit: Leaving)
2022-08-07 00:33:05 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua)
2022-08-07 00:33:22 +0200 <qrpnxz> loading the file work just fine for me after cabal installing the libs
2022-08-07 00:33:26 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-07 00:34:11 +0200 <zanyan> really?
2022-08-07 00:34:18 +0200 <qrpnxz> yes
2022-08-07 00:34:21 +0200 <zanyan> I'll try do it again
2022-08-07 00:35:05 +0200 <zanyan> `cabal install --lib JuicyPixels` and `cabal install --lib Rasterific` right?
2022-08-07 00:35:16 +0200 <zanyan> then cd into the directory
2022-08-07 00:35:32 +0200 <geekosaur> I think you need to be in the directory
2022-08-07 00:35:48 +0200 <zanyan> oh, cd first and load them then?
2022-08-07 00:35:55 +0200 <geekosaur> so the environment file containing those libraries is available to it
2022-08-07 00:36:11 +0200 <zanyan> alright, that's where I might've been wrong
2022-08-07 00:37:01 +0200 <zanyan> no, still getting the error :/
2022-08-07 00:37:30 +0200niko(niko@libera/staff/niko) (Ping timeout: 615 seconds)
2022-08-07 00:37:42 +0200 <zanyan> after installing them in the directory, I run ghci and then do `:l Fractals.hs` and that's where I see the "Failed, no modules loaded" dialogue
2022-08-07 00:38:03 +0200 <geekosaur> there should be more errors before that, can you pastebin them?
2022-08-07 00:38:08 +0200 <geekosaur> @where paste
2022-08-07 00:38:08 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2022-08-07 00:38:08 +0200 <zanyan> will do
2022-08-07 00:38:45 +0200 <zanyan> https://paste.tomsmeding.com/jYK8CNdd
2022-08-07 00:39:07 +0200 <erisco> zanyan, maybe your intersection is automated trading
2022-08-07 00:39:35 +0200 <zanyan> aha, I'm not sure. I've told my school I want to do CS at Oxford
2022-08-07 00:39:49 +0200 <geekosaur> so you have it installed in the environment twice and that's confusing ghci
2022-08-07 00:39:57 +0200 <zanyan> but if I feel like I would like to switch to Econ, then Cambridge is probably the better choice for me
2022-08-07 00:40:11 +0200 <zanyan> geekosaur ah right, how would I go about fixing that?
2022-08-07 00:40:19 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-07 00:40:22 +0200 <erisco> academically, I know profs involved with economic simulations
2022-08-07 00:41:19 +0200 <geekosaur> there should be a file .ghc.environment.<platform>-<ghcversion> in that directory
2022-08-07 00:41:41 +0200noteness(~noteness@user/noteness)
2022-08-07 00:41:46 +0200 <geekosaur> so for example I have a .ghc.environment.x86_64-linux-9.2.2
2022-08-07 00:41:51 +0200 <erisco> there aint all that much for programmers that doesn't intersect with another discipline
2022-08-07 00:42:04 +0200 <geekosaur> edit that file and look for duplicate lines
2022-08-07 00:42:17 +0200 <geekosaur> or lines that only differ in the hash
2022-08-07 00:42:29 +0200 <geekosaur> or remove the file completely and `cabal install --lib` again
2022-08-07 00:42:46 +0200 <zanyan> hmmm, alright, I'll try do that now, thanks!
2022-08-07 00:43:02 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-08-07 00:44:45 +0200 <zanyan> okay well I created a new directory with a fresh copy of those .hs project files
2022-08-07 00:44:49 +0200 <zanyan> would that work?
2022-08-07 00:45:13 +0200 <geekosaur> yes. a bit silly since everything else is okay, just that environment file needs to be regenerated properly
2022-08-07 00:46:11 +0200 <zanyan> I couldn't find that file for some reason
2022-08-07 00:47:20 +0200 <geekosaur> hm. possibly it's in the global environment then, in which case it needs to be removed from there
2022-08-07 00:47:53 +0200 <zanyan> yeah, I'll try do that since I'm getting the same message
2022-08-07 00:48:18 +0200 <geekosaur> ~/.ghc/<platform>-<ghcver>/environments
2022-08-07 00:48:30 +0200 <geekosaur> I think it's a file default in that directory
2022-08-07 00:48:59 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-08-07 00:50:52 +0200JimL(~quassel@89-162-2-132.fiber.signal.no) (Quit: No Ping reply in 180 seconds.)
2022-08-07 00:51:41 +0200qrpnxz(~qrpnxz@fsf/member/qrpnxz) (Ping timeout: 244 seconds)
2022-08-07 00:52:05 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-08-07 00:52:30 +0200qrpnxz(~qrpnxz@fsf/member/qrpnxz)
2022-08-07 00:54:01 +0200 <zanyan> ah, it's proving to be a pain
2022-08-07 00:54:17 +0200 <zanyan> I'm using windows so I'm not sure how different that'll be for linux systems
2022-08-07 00:56:42 +0200aeka(~aeka@user/hiruji) (Ping timeout: 245 seconds)
2022-08-07 00:57:39 +0200aeka(~aeka@2606:6080:1001:17:9ea4:71f9:d294:d7b7)
2022-08-07 01:01:02 +0200 <geekosaur> hrm. 9.2.2 at least only documents unix paths for environment files 😞
2022-08-07 01:03:21 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-08-07 01:06:42 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 01:08:43 +0200 <zanyan> oh well, maybe it's a sign I shouldn't work on this project lol
2022-08-07 01:08:51 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-08-07 01:08:55 +0200 <qrpnxz> idk why even after you said you never programmed and don't use mac, i just assume you are on linux lol. You poor soul
2022-08-07 01:09:04 +0200 <zanyan> (maybe it's a sign I should go study Econ instead???)
2022-08-07 01:09:12 +0200 <zanyan> haha it's fine!
2022-08-07 01:09:17 +0200 <qrpnxz> it's a sign programming not trivial :)
2022-08-07 01:09:42 +0200 <zanyan> I have programmed a little - I used Python here when discussing some game theory https://github.com/Zzzayaan/the_prisoners_dilemma/blob/main/the_prisoners_dilemma.ipynb
2022-08-07 01:09:56 +0200 <zanyan> very very simple python algorithms but yeah that's about it
2022-08-07 01:10:37 +0200 <qrpnxz> i think about the very first thing i played with (after bash) was python, but went immediately to C
2022-08-07 01:11:01 +0200 <zanyan> interesting choice
2022-08-07 01:11:22 +0200 <zanyan> my first programming language wasn't a language at all, I just got experienced at messing with actionscript bytecode
2022-08-07 01:11:35 +0200 <qrpnxz> i think best choice, personally (for learning)
2022-08-07 01:11:43 +0200 <zanyan> after that it's pretty much been tinkering
2022-08-07 01:12:37 +0200 <qrpnxz> C don't have many very good online resources but i made do. Later I learned about the K&R C book and it's my go to recommend. Excellent book
2022-08-07 01:12:47 +0200 <zanyan> I don't think I have time to learn C in depth within this month though
2022-08-07 01:12:58 +0200 <zanyan> I have to send my application off by October
2022-08-07 01:13:27 +0200 <qrpnxz> with the book you could learn pretty good C in a month easy i think. As to whether that gives any advantage for some college application, i have no idea
2022-08-07 01:14:05 +0200 <zanyan> It might do, depends if I have enough time to apply that knowledge somewhere (maybe binary exploitation?)
2022-08-07 01:14:47 +0200JimL(~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 252 seconds)
2022-08-07 01:14:54 +0200 <geekosaur> more like making trivially exploitable binaries, if you;re learningf from K&R
2022-08-07 01:15:02 +0200 <geekosaur> it's a book from an earlier age
2022-08-07 01:15:12 +0200 <zanyan> oh right
2022-08-07 01:15:55 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-08-07 01:16:24 +0200 <zanyan> it's going to be pretty weird using it on Windows though. Heard Linux is a very C-friendly OS
2022-08-07 01:16:39 +0200 <zanyan> I suppose WSL exists for a reason though
2022-08-07 01:16:46 +0200 <erisco> C is the 101 at my uni
2022-08-07 01:17:01 +0200 <qrpnxz> erisco: what uni?
2022-08-07 01:17:04 +0200 <qrpnxz> nice
2022-08-07 01:17:17 +0200 <erisco> university of windsor (canada)
2022-08-07 01:17:20 +0200 <zanyan> nice
2022-08-07 01:17:35 +0200 <qrpnxz> zanyan: linux is generally programming friendly. I consider windows to be generally not technical user friendly
2022-08-07 01:18:11 +0200 <zanyan> I want to apply to Oxford, Imperial, UCL, St Andrews and Durham if I'll be applying for CS. For economics, probably Cambridge, LSE, UCL, Imperial and Kings
2022-08-07 01:18:27 +0200 <zanyan> qrpnxz Gotchu
2022-08-07 01:19:22 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-07 01:19:22 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-07 01:19:22 +0200wroathe(~wroathe@user/wroathe)
2022-08-07 01:20:57 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 01:22:37 +0200 <erisco> I wonder if schools should update C to Rust
2022-08-07 01:24:01 +0200 <qrpnxz> i doubt it. C is much simpler, and the direct memory manipulation is very informative. But I would be in support of doing Rust shortly after C
2022-08-07 01:26:26 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
2022-08-07 01:30:05 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-08-07 01:30:57 +0200zanyan(~zanyan@2a02:6b64:f194:0:d0c7:84be:16ed:9f2a) (Quit: Client closed)
2022-08-07 01:33:19 +0200 <erisco> the memory manipulation with Assembly is better
2022-08-07 01:38:25 +0200 <qrpnxz> i disagree
2022-08-07 01:38:44 +0200 <qrpnxz> math is too much of a pain in assembly
2022-08-07 01:39:07 +0200 <qrpnxz> C at least have expressions
2022-08-07 01:40:28 +0200 <erisco> math in assembly is alright if you are good at towers of honoi :P
2022-08-07 01:40:38 +0200 <qrpnxz> lmao
2022-08-07 01:41:28 +0200 <monochrom> Schools will not update C to Rust if Unix does not update C to Rust.
2022-08-07 01:43:13 +0200 <erisco> the number of profs for who C was a breakthrough will only decrease, and I think that will lead to its academic extinction... but likely no sooner
2022-08-07 01:44:03 +0200 <monochrom> No. As long as all OSes are written in C, C will not go extinct. The standard OS course must still use C.
2022-08-07 01:44:51 +0200 <monochrom> Show me an OS written in Rust or C++ or Go, and maybe you will have marginally a case of using it for an OS course.
2022-08-07 01:45:05 +0200 <erisco> Chrome OS
2022-08-07 01:45:15 +0200 <monochrom> Until then your anti-C ideology does not matter.
2022-08-07 01:45:45 +0200 <erisco> apparently is Linux-based... that was my best shot
2022-08-07 01:45:49 +0200 <monochrom> And I don't see why "breakthrough" is relevant.
2022-08-07 01:46:32 +0200 <monochrom> Undergrad curricula are not about teaching breakthroughs in the first place.
2022-08-07 01:46:56 +0200 <monochrom> Binary search trees are no longer a breakthrough, that's why it's taught. Similarly for C.
2022-08-07 01:47:19 +0200 <monochrom> If anything it's the real breakthroughs such as Clojure or Lean that is not taught.
2022-08-07 01:47:52 +0200 <monochrom> Or the polynomial-time primality algorithm.
2022-08-07 01:48:43 +0200 <qrpnxz> well, ocaml does have a "app as operating system" thing, which is pretty bloody sick actually, but idk how that's entirely relevant to your point mono :)
2022-08-07 01:50:18 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua) (Quit: Leaving)
2022-08-07 01:50:33 +0200 <monochrom> I teach a Unix course and I have a lot of ideological friends who are fascinated by C++ or Rust and ask me why I am still sticking to C in that course.
2022-08-07 01:50:38 +0200 <erisco> I don't know if an OS course needs to be mandatory
2022-08-07 01:50:39 +0200 <monochrom> Dude, it's a Unix course.
2022-08-07 01:50:39 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua)
2022-08-07 01:51:46 +0200 <erisco> and I know some profs teach based on what they personally find cool
2022-08-07 01:51:54 +0200 <qrpnxz> Unix course should be mandatory imo
2022-08-07 01:52:17 +0200 <qrpnxz> where unix means linux of course, but if you stick to posix i'm ok too
2022-08-07 01:52:18 +0200 <erisco> so, that is why I think, over time, as profs contemporary with the advent and rise of C retire, that particular bias will diminish
2022-08-07 01:53:02 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 240 seconds)
2022-08-07 01:53:33 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua) (Remote host closed the connection)
2022-08-07 01:53:58 +0200 <erisco> I think C is Crappy compared to some more modern languages
2022-08-07 01:53:59 +0200 <qrpnxz> if there are no more unix profs left, we are in dire straits
2022-08-07 01:54:04 +0200 <monochrom> If it's any consolation for you, in an alternate universe where Unix loses to the Mac Classic, their MacOS course uses Pascal, because that's how you make MacOS syscalls there.
2022-08-07 01:54:40 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua)
2022-08-07 01:54:44 +0200 <geekosaur> or original windows
2022-08-07 01:55:08 +0200 <qrpnxz> idk much about pascal except it's about same level as C and that it does some possibly cringy call by name, but really i'm ignorant
2022-08-07 01:55:12 +0200 <geekosaur> C API for syscalls dodn't come along until win32
2022-08-07 01:55:48 +0200 <monochrom> Algol had call by name, Pascal doesn't.
2022-08-07 01:56:14 +0200 <monochrom> Pascal has call by reference. But C++ does too. And less cringy than C's "pass me your pointer".
2022-08-07 01:58:28 +0200 <monochrom> If you want to make C irrelevant, you must first make Unix irrelevant.
2022-08-07 01:58:35 +0200 <monochrom> But good luck with that.
2022-08-07 01:58:51 +0200 <erisco> I already think it can be made irrelevant
2022-08-07 01:59:14 +0200 <monochrom> Seeing that no data centre runs PalmOS or something.
2022-08-07 01:59:26 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 268 seconds)
2022-08-07 01:59:56 +0200 <geekosaur> even Microsoft failed to make Unix irrelevant
2022-08-07 01:59:58 +0200 <erisco> OSes are a specialisation... once upon a time, they were an intimate partner for any programming activity
2022-08-07 02:00:32 +0200 <erisco> but today I don't think their role is as noticed
2022-08-07 02:00:59 +0200 <erisco> you might as well teach AWS in place of Unix
2022-08-07 02:01:24 +0200 <qrpnxz> aws runs on linux, so still relevant
2022-08-07 02:01:39 +0200dcoutts__(~duncan@host86-150-18-57.range86-150.btcentralplus.com)
2022-08-07 02:01:43 +0200 <qrpnxz> just because you don't own the machine doesn't mean the os disapeared
2022-08-07 02:02:04 +0200 <geekosaur> and you can't run aws on your desktop
2022-08-07 02:02:21 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-07 02:02:35 +0200 <geekosaur> or your laptop
2022-08-07 02:02:42 +0200 <qrpnxz> indeed lol
2022-08-07 02:02:46 +0200 <erisco> AWS is full of serverless, uh, services... which is what I am more so referring to
2022-08-07 02:03:43 +0200 <geekosaur> and you can just ignore all the rest?
2022-08-07 02:03:48 +0200 <erisco> yes
2022-08-07 02:03:52 +0200 <geekosaur> no
2022-08-07 02:04:09 +0200 <monochrom> See, this is why when I say "ideology" it's a derogatory term.
2022-08-07 02:04:12 +0200 <erisco> well, you can, you don't need to know anything about unix or any OS to use aws
2022-08-07 02:04:22 +0200dcoutts_(~duncan@host86-153-247-178.range86-153.btcentralplus.com) (Ping timeout: 268 seconds)
2022-08-07 02:04:26 +0200 <monochrom> Ideology blinds you of reality or even plain reason.
2022-08-07 02:04:29 +0200 <geekosaur> you still can't run aws on your lapto[
2022-08-07 02:05:39 +0200 <erisco> my point is that there are other specialised environments in which you can build and execute programs, and you could be just as focused on one of those and not unix
2022-08-07 02:06:00 +0200 <qrpnxz> erisco: but most of your coding still happen on your computer because aws is expensive and not set up as a programming IDE. The ideal in fact is if your desktop is running what aws is running as closely as possible, which would mean running linux lol
2022-08-07 02:06:08 +0200 <geekosaur> show me the laptop running aws and I might concede your point. until then it's irrelevant
2022-08-07 02:06:30 +0200 <geekosaur> mostly because of what qrpnxz just said
2022-08-07 02:06:31 +0200 <erisco> I don't really understand what my laptop has to do with it
2022-08-07 02:06:41 +0200 <erisco> I don't need to know unix to know how to use my laptop, even if it is running unix
2022-08-07 02:06:50 +0200 <monochrom> Pretty sure Amazon wants to keep their AWS implementation a secret and not let your computer run it. :)
2022-08-07 02:07:37 +0200 <erisco> I think I can get by without knowing about PCBs or scheduling or CPU rings
2022-08-07 02:07:38 +0200 <qrpnxz> programming for a computer you don't have is like programming without a compiler, and then paying 5$ to build it. Terrible.
2022-08-07 02:07:44 +0200 <geekosaur> they also want to be able to hiure people who can develop and maintain it, which means they must know unix
2022-08-07 02:07:51 +0200 <monochrom> You don't need a CS degree to use your laptop. By your logic, universities can cancel all their CS programs now.
2022-08-07 02:08:03 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-08-07 02:09:07 +0200 <monochrom> I dare you to generalize from "we should top teaching C" to "we should stop teaching CS altogether". At least I would respect the epicness of that argument. :)
2022-08-07 02:10:15 +0200 <erisco> I don't see C as necessary in a CS program, even if it is the lingua franca of OS programmers, because I don't see OSes as necessary in a CS program
2022-08-07 02:10:24 +0200 <qrpnxz> lmao mono
2022-08-07 02:12:23 +0200 <qrpnxz> C is like the antidote to learning Python. If all you know is python you are totally screwed up. Should be illegal to know python and not know C. (Better yet no python at all, but this is a compromise 🙂)
2022-08-07 02:13:27 +0200 <monochrom> Oh hey we have a prof at my school who successfully did that.
2022-08-07 02:13:52 +0200 <erisco> I think it should be illegal to only know Java
2022-08-07 02:14:00 +0200 <qrpnxz> monochrom: did what
2022-08-07 02:14:23 +0200 <erisco> put that in your AbstractObservableVisitorFactory and smoke it
2022-08-07 02:14:36 +0200 <monochrom> So, previously, our CS101 and CS102 both used Python. The prof managed to convince us to change to: CS102 should use C.
2022-08-07 02:14:50 +0200 <qrpnxz> epic
2022-08-07 02:15:20 +0200 <erisco> I think after I graduated our intro courses were changed to Python too actually oO
2022-08-07 02:15:34 +0200 <erisco> C is already on the ropes
2022-08-07 02:15:37 +0200 <monochrom> I am in favour. (Not to say I actually had a vote; I didn't, still don't.) I have seen how Python convinced students that, for example, copying a string is O(1)-time.
2022-08-07 02:16:16 +0200 <monochrom> I told the prof "Ideally I would prefer Pascal but I can take a compromise too" :)
2022-08-07 02:16:21 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-08-07 02:16:27 +0200 <qrpnxz> lol
2022-08-07 02:16:49 +0200 <monochrom> united front for Profs Against Python, right? >:)
2022-08-07 02:16:50 +0200 <erisco> a string is the fundamental unit of measure for any dynamic programmer, so O(1) follows naturally
2022-08-07 02:17:01 +0200 <qrpnxz> hahaha
2022-08-07 02:17:24 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 268 seconds)
2022-08-07 02:18:43 +0200Jeanne-Kamikaze(~Jeanne-Ka@142.147.89.248) (Quit: Leaving)
2022-08-07 02:19:09 +0200 <monochrom> But yeah "C as antidote to Python" is what the prof (and me and some others) thought, though we didn't think of wording it like that.
2022-08-07 02:20:08 +0200 <monochrom> But were you aware that python is also a snake species, so "antidote" can be a pun there? :)
2022-08-07 02:21:19 +0200 <erisco> monochrom, actually, now that I think of it, our OS course was also taught in Java, lmao...
2022-08-07 02:21:44 +0200 <erisco> no joke, you had the option of either doing it in C, or doing it make-believe in Java
2022-08-07 02:24:22 +0200 <erisco> I think because some programs had the OS course but not the entry C courses... for whatever reason
2022-08-07 02:27:11 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-07 02:31:16 +0200wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-08-07 02:32:50 +0200 <qrpnxz> monochrom: oh yeah!
2022-08-07 02:33:43 +0200 <monochrom> Nice. Took me a while to see that. :)
2022-08-07 02:34:59 +0200 <erisco> what is Python other than a timid attempt at making Ruby?
2022-08-07 02:35:28 +0200 <erisco> which I have not heard a word of for many years now... is it still a thing? I still have to suffer active record in every ORM I have to use
2022-08-07 02:35:50 +0200 <monochrom> Did Ruby predate Python?
2022-08-07 02:35:54 +0200 <geekosaur> no
2022-08-07 02:36:36 +0200 <geekosaur> python 1.0 and perl 3.0 (first public releases of each) came out at the same time
2022-08-07 02:36:38 +0200 <monochrom> But I don't think of either Python or Ruby as timid.
2022-08-07 02:36:42 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
2022-08-07 02:37:07 +0200gurkenglas(~gurkengla@p548ac3ba.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2022-08-07 02:37:28 +0200 <geekosaur> ruby started out as a perl knock-off with some smalltalk features
2022-08-07 02:37:48 +0200 <monochrom> Both are heavily opinionated, I can only imagine their creators to be egomaniacs.
2022-08-07 02:37:50 +0200 <geekosaur> but by ruby 2.0 most of the perl-isms were deprecated
2022-08-07 02:37:53 +0200 <erisco> my understanding is Python strived to be an OOP, but fell short by having a few non-object values, a weakness that Ruby fixed
2022-08-07 02:38:35 +0200 <erisco> Python did not have the bravery to make numbers assignable
2022-08-07 02:39:00 +0200 <monochrom> Well it has the bravery to say no to FP.
2022-08-07 02:39:23 +0200geekosauris still highly annoyed that in a language that wants so badly to be OO, strings are appended with +
2022-08-07 02:39:27 +0200 <erisco> what are decorators other than a timid attempt at function composition, a staple FP feature
2022-08-07 02:40:00 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 02:41:24 +0200 <monochrom> OK, in the following sense C does not have the bravery to say no to FP. It has ?: . C compilers do not refuse TCO.
2022-08-07 02:42:10 +0200 <monochrom> GvR had the bravery to say no to the former for a long time, and still say no to TCO. In both cases explicitly stating "this is not FP".
2022-08-07 02:42:29 +0200 <monochrom> And still have the bravery to keep lambda castrated.
2022-08-07 02:43:34 +0200 <erisco> this reminds me of how surprised I was to see inline function syntax added to Java
2022-08-07 02:44:12 +0200 <erisco> they just couldn't keep lying about the superiority of inline classes any longer
2022-08-07 02:44:12 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 02:49:53 +0200 <qrpnxz> i mean, anon classes are pretty nice, and in fact the lambda syntax is just a super neat sugar the exact same feature. Fits like a glove.
2022-08-07 02:55:58 +0200 <erisco> I haven't been paying attention to Haskell closely for a couple years... anything big?
2022-08-07 02:58:51 +0200 <qrpnxz> hard to say. Checkout the changelog of your favourite libs?
2022-08-07 02:59:32 +0200 <erisco> I guess my question is almost synonymous with looking at Kmett's new packages
2022-08-07 02:59:49 +0200 <qrpnxz> hahaha
2022-08-07 03:00:06 +0200 <qrpnxz> lens change a lot, it's at 5.0.0 recently i think?
2022-08-07 03:01:18 +0200 <erisco> they didn't really grip me until I studied the profunctor approach... and then I used them mainly to unwrap and wrap newtypes and not much else oO
2022-08-07 03:05:24 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
2022-08-07 03:05:54 +0200 <geekosaur> text and aeson both had major revs. ghc9 got linear types
2022-08-07 03:07:10 +0200 <qrpnxz> oh yeah, text 2 is here pretty recently
2022-08-07 03:07:13 +0200 <qrpnxz> now with utf8 finally
2022-08-07 03:07:15 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-08-07 03:07:50 +0200Colere(~colere@about/linux/staff/sauvin) (Ping timeout: 240 seconds)
2022-08-07 03:08:07 +0200 <geekosaur> ghc 9.2 got LANGUAGE GHC2021 with a bunch of extensions turned on by default
2022-08-07 03:08:32 +0200 <qrpnxz> was gonna bring that up and got distracted. https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html
2022-08-07 03:08:40 +0200 <qrpnxz> still had the link in my buffer lol
2022-08-07 03:09:49 +0200Furor(~colere@about/linux/staff/sauvin)
2022-08-07 03:10:59 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-07 03:10:59 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-07 03:10:59 +0200wroathe(~wroathe@user/wroathe)
2022-08-07 03:11:02 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-08-07 03:11:03 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-07 03:12:18 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 03:17:10 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-08-07 03:19:12 +0200Sciencentistguy9(~sciencent@hacksoc/ordinary-member)
2022-08-07 03:20:56 +0200codaraxis__(~codaraxis@user/codaraxis)
2022-08-07 03:20:59 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 268 seconds)
2022-08-07 03:20:59 +0200Sciencentistguy9Sciencentistguy
2022-08-07 03:23:46 +0200 <erisco> linear types might be fun
2022-08-07 03:24:35 +0200codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
2022-08-07 03:32:53 +0200mvk(~mvk@2607:fea8:5ce3:8500::d5f2)
2022-08-07 03:34:07 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-07 03:35:20 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-08-07 03:35:22 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Remote host closed the connection)
2022-08-07 03:36:46 +0200nilradical(~nilradica@user/naso)
2022-08-07 03:37:53 +0200neceve(~quassel@2.26.93.14)
2022-08-07 03:39:20 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
2022-08-07 03:47:19 +0200neceve(~quassel@2.26.93.14) (Ping timeout: 252 seconds)
2022-08-07 03:49:09 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-07 03:52:33 +0200FurorColere
2022-08-07 03:57:36 +0200 <albet70> what SKI calculus is used for?
2022-08-07 04:01:15 +0200 <qrpnxz> stack have any prebuilt way to display pretty graphs from benchmarks? Kind of a PITA to move this data to librecalc
2022-08-07 04:01:47 +0200 <qrpnxz> i should just write a short program, i'm a programmer after all
2022-08-07 04:03:30 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-07 04:10:15 +0200 <Cale> albet70: It's not so much useful as it is an interesting thing to think about -- that 2 or 3 combinators are sufficient to encode computation. The types of S and K in a typed lambda calculus can be taken as axioms for intuitionistic logic (though usually most would prefer a presentation based on structural rules these days)
2022-08-07 04:10:53 +0200 <Cale> albet70: also, they're closely related to Applicative: pure and (<*>) for the instance Applicative ((->) e) are exactly K and S
2022-08-07 04:12:06 +0200frost(~frost@user/frost)
2022-08-07 04:12:18 +0200 <Cale> If you need something which is Turing complete and extremely simple, it can sometimes fit the bill, though there are a lot of those.
2022-08-07 04:13:21 +0200mob(~kvirc@62-11-5-95.dialup.tiscali.it) (Ping timeout: 252 seconds)
2022-08-07 04:18:06 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-08-07 04:18:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-08-07 04:18:06 +0200finn_elijaFinnElija
2022-08-07 04:19:55 +0200 <albet70> class SKI repr where app :: repr (a -> b) -> repr a -> repr b; s :: repr ((a -> b -> c) -> (a -> b) -> a -> c); k :: repr (a -> b -> a); i :: repr (a -> a); this s's type signature is like (<*>) @((->)_) :: (_ -> a -> b) -> (_ -> a) -> _ -> b
2022-08-07 04:20:28 +0200 <qrpnxz> it makes sense because lambda calc is turing complete, and all S and K do is give you "computation with an implied environment". So if you make every single function argument as an implied argument in a reader monad, then bam, you have the same program but just using (<*>) and pure to deal with the environment that would otherwise be done with lambda abstractions
2022-08-07 04:24:43 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2022-08-07 04:27:15 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Quit: Konversation terminated!)
2022-08-07 04:28:51 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-08-07 04:35:26 +0200td_(~td@94.134.91.51) (Ping timeout: 240 seconds)
2022-08-07 04:36:49 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2022-08-07 04:37:33 +0200td_(~td@94.134.91.67)
2022-08-07 04:40:20 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-07 04:42:48 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-08-07 04:42:53 +0200 <edwardk> erisco: re new packages: mostly spent some time puttering with stronger linear-logic in haskell, with supporting various unlifted data types with a somewhat modified prelude, recently trying to get something like egg ported over and failing several times to make it nice, and i still every once in a while keep dusting off the new distributive changes and trying to make a go at rewriting the whole package hierarchy
2022-08-07 04:43:29 +0200 <edwardk> currently making a go at doing some of the typechecker like code i like to write in rust, we'll see how long that lasts.
2022-08-07 04:43:51 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-08-07 04:44:26 +0200mzan(~quassel@mail.asterisell.com) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-08-07 04:45:40 +0200mzan(~quassel@mail.asterisell.com)
2022-08-07 04:46:21 +0200 <erisco> what is the typechecker code about?
2022-08-07 04:52:10 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-08-07 05:12:43 +0200frost(~frost@user/frost)
2022-08-07 05:15:04 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-08-07 05:15:19 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-08-07 05:20:00 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds)
2022-08-07 05:21:02 +0200wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2022-08-07 05:22:06 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-07 05:22:06 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-07 05:22:06 +0200wroathe(~wroathe@user/wroathe)
2022-08-07 05:23:05 +0200vglfr(~vglfr@194.9.14.33) (Read error: Connection reset by peer)
2022-08-07 05:23:57 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 05:31:16 +0200 <erisco> albet70, SKI doesn't use variables, which makes certain analyses and constructions much easier... variable scope, hygiene, etc, is complicated
2022-08-07 05:35:17 +0200 <erisco> first you remove loops, then mutability, then variables... a hat trick to impress friends
2022-08-07 05:41:35 +0200xff0x(~xff0x@2405:6580:b080:900:5628:7137:a023:aad6) (Ping timeout: 255 seconds)
2022-08-07 05:42:38 +0200xff0x(~xff0x@2405:6580:b080:900:d33e:2826:e840:9afc)
2022-08-07 05:43:26 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-08-07 05:49:56 +0200 <albet70> S is ap, K is const, I is id, right?
2022-08-07 05:49:57 +0200 <monochrom> "First they remove your loops. Then they remove your mutability. Then they remove your variables. Then you win." :)
2022-08-07 05:53:36 +0200 <edwardk> erisco: i spend a lot of time writing little toy typecheckers and the like, but this one is really about trying to see if i can put a better skin on enso.org's language
2022-08-07 05:54:32 +0200 <edwardk> which requires some pretty nasty typechecking tricks to pull off, because you have a language with things like positional and named arguments, but also currying, basically there are like 4 places in the design of the type system that need something like row types
2022-08-07 05:54:43 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-07 05:54:44 +0200 <edwardk> and one of them requires those row types to be able to be instantiated with polytypes
2022-08-07 05:55:11 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-07 05:56:30 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-07 05:56:53 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-07 05:58:40 +0200 <edwardk> albet70: yes, i like to think of them in terms of the reader monad as well. S is like 'f <*> x' an application that takes an extra environment and plumbs it both ways. K ignores it (pure = const). I uses it (ask = id)
2022-08-07 05:59:11 +0200 <edwardk> albet70: i wanted to say things with explicitly reader-like analogues, because then its clearer, mixing (<*>) with const and id makes it pretty hard to see the reader connections
2022-08-07 05:59:34 +0200 <edwardk> otoh, pure and ask are pretty obscure if you just want to think of it in combinator terms =)
2022-08-07 06:00:20 +0200 <edwardk> ok, simd bitvector for rust done, now i can actually get the succinct stuff i need done, and then i can finally get my catamorphisms out of the way
2022-08-07 06:02:50 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-07 06:04:39 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-08-07 06:05:34 +0200gmg(~user@user/gehmehgeh)
2022-08-07 06:16:19 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-08-07 06:22:25 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-08-07 06:23:25 +0200rembo10(~rembo10@main.remulis.com)
2022-08-07 06:24:27 +0200nilradical(~nilradica@user/naso) ()
2022-08-07 06:26:18 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-08-07 06:26:23 +0200vglfr(~vglfr@194.9.14.33) (Read error: Connection reset by peer)
2022-08-07 06:27:04 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 06:27:50 +0200hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Ping timeout: 268 seconds)
2022-08-07 06:28:50 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-07 06:30:05 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Read error: Connection reset by peer)
2022-08-07 06:30:21 +0200 <albet70> are there some types instance of applicative but not functor?
2022-08-07 06:31:54 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2022-08-07 06:33:25 +0200vglfr(~vglfr@194.9.14.33) (Read error: Connection reset by peer)
2022-08-07 06:33:40 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 06:37:05 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 252 seconds)
2022-08-07 06:40:02 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
2022-08-07 06:42:06 +0200 <dolio> No.
2022-08-07 06:42:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-08-07 06:42:39 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-08-07 06:42:39 +0200finn_elijaFinnElija
2022-08-07 06:43:32 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-08-07 06:44:04 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-07 06:51:17 +0200foul_owl(~kerry@23.82.194.107) (Ping timeout: 245 seconds)
2022-08-07 06:57:00 +0200 <qrpnxz> albet70: https://hackage.haskell.org/package/base-4.16.3.0/docs/Control-Applicative.html#v:liftA
2022-08-07 06:57:38 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 07:01:45 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 268 seconds)
2022-08-07 07:02:09 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-07 07:06:09 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 07:06:30 +0200 <albet70> and instance of functor but not applicative?
2022-08-07 07:11:54 +0200mbuf(~Shakthi@122.165.55.71)
2022-08-07 07:18:08 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 07:18:26 +0200 <absentia> albet70: every functor gets an applicative "for free"
2022-08-07 07:18:28 +0200 <absentia> https://hackage.haskell.org/package/free-5.1.9/docs/Control-Applicative-Free.html
2022-08-07 07:19:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds)
2022-08-07 07:23:33 +0200notzmv(~zmv@user/notzmv)
2022-08-07 07:24:42 +0200 <jackdk> albet70: `Data.Map.Map k` is `Functor` and `Apply` (from `semigroupoids`) but not `Applicative` (no valid `pure`)
2022-08-07 07:26:07 +0200myme1(~myme@2a01:799:d5a:cd00:f235:66bd:b223:d95e) (Ping timeout: 272 seconds)
2022-08-07 07:26:59 +0200myme1(~myme@2a01:799:d5a:cd00:e0d6:bd5d:e9e6:2667)
2022-08-07 07:27:02 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-07 07:28:28 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-07 07:28:28 +0200Vajb(~Vajb@85-76-11-145-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-08-07 07:28:40 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-08-07 07:31:01 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-07 07:42:55 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 268 seconds)
2022-08-07 07:43:49 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds)
2022-08-07 07:51:04 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-08-07 07:52:55 +0200acidjnk(~acidjnk@p200300d6e7058660dd6adf7799b0bbfd.dip0.t-ipconnect.de)
2022-08-07 07:54:12 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 07:59:36 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
2022-08-07 08:03:06 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-08-07 08:03:08 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-07 08:05:57 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection)
2022-08-07 08:07:44 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-07 08:09:43 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-08-07 08:10:05 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Remote host closed the connection)
2022-08-07 08:10:47 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-08-07 08:13:22 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-08-07 08:15:04 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de)
2022-08-07 08:28:38 +0200noteness(~noteness@user/noteness) (Ping timeout: 268 seconds)
2022-08-07 08:37:32 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl) (Ping timeout: 245 seconds)
2022-08-07 08:42:08 +0200Sujjek(~Sujjek@90.95.10.128)
2022-08-07 08:42:45 +0200 <Sujjek> Hi, how can I overcome the problem with cabal init "cabal: The name hopfield is already in use by another package on Hackage."?
2022-08-07 08:43:02 +0200acidjnk(~acidjnk@p200300d6e7058660dd6adf7799b0bbfd.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-08-07 08:43:22 +0200 <absentia> Sujjek: are you trying to install hopfield
2022-08-07 08:43:27 +0200 <absentia> as a dependency of your project
2022-08-07 08:43:32 +0200nilradical(~nilradica@user/naso)
2022-08-07 08:43:39 +0200 <sclv> Sujjek: use another name lol
2022-08-07 08:44:21 +0200 <Sujjek> No
2022-08-07 08:44:38 +0200 <Sujjek> It appears my cabal is outdated
2022-08-07 08:44:54 +0200 <absentia> https://hackage.haskell.org/package/hopfield
2022-08-07 08:45:24 +0200 <Sujjek> No my project is called hopfield
2022-08-07 08:46:00 +0200 <absentia> Sujjek: that's what the error is saying
2022-08-07 08:46:03 +0200 <absentia> it's already in use
2022-08-07 08:46:08 +0200 <absentia> by the package linked
2022-08-07 08:48:00 +0200 <Sujjek> I know
2022-08-07 08:48:19 +0200 <dsal> Your query is confusing. Is https://hackage.haskell.org/package/hopfield your package?
2022-08-07 08:48:41 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-08-07 08:51:24 +0200 <Sujjek> No. `mkdir hopfield; cd hopfield; cabal init` >>> "cabal: The name hopfield is already in use by another package on Hackage."
2022-08-07 08:51:43 +0200noteness(~noteness@user/noteness)
2022-08-07 08:52:02 +0200 <Sujjek> I just rm -rf ~/.cabal so it doesn't know the hackage packages and that let me create it
2022-08-07 08:52:20 +0200 <dsal> Oh. I've not used cabal directly. That seems like it should be advisory. You wouldn't be able to publish something called `hopfield` but you should be able to make a project called that that you don't intend to publish.
2022-08-07 08:54:17 +0200 <absentia> Sujjek: what cabal version
2022-08-07 08:54:30 +0200 <absentia> oh guess you figured it out
2022-08-07 08:55:47 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-08-07 08:56:42 +0200 <Sujjek> It's fixed in master https://github.com/haskell/cabal/issues/7909
2022-08-07 09:07:01 +0200Sujjek(~Sujjek@90.95.10.128) (Remote host closed the connection)
2022-08-07 09:07:12 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de) (Quit: Leaving.)
2022-08-07 09:14:59 +0200gurkenglas(~gurkengla@p548ac3ba.dip0.t-ipconnect.de)
2022-08-07 09:17:53 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 268 seconds)
2022-08-07 09:22:52 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 09:23:49 +0200nilradical(~nilradica@user/naso)
2022-08-07 09:23:55 +0200coot(~coot@213.134.176.158)
2022-08-07 09:25:45 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 09:26:05 +0200nilradical(~nilradica@user/naso)
2022-08-07 09:38:07 +0200Tuplanolla(~Tuplanoll@91-159-69-231.elisa-laajakaista.fi)
2022-08-07 09:38:23 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 09:44:55 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
2022-08-07 09:45:06 +0200acidjnk(~acidjnk@p200300d6e7058660e0ca873366cee89c.dip0.t-ipconnect.de)
2022-08-07 09:52:07 +0200foul_owl(~kerry@23.82.194.108)
2022-08-07 09:53:11 +0200nilradical(~nilradica@user/naso)
2022-08-07 10:01:20 +0200merijn(~merijn@c-001-001-007.client.esciencecenter.eduvpn.nl)
2022-08-07 10:02:25 +0200KaipeiKaiepi
2022-08-07 10:03:26 +0200jargon(~jargon@184.101.188.251) (Remote host closed the connection)
2022-08-07 10:06:33 +0200mc47(~mc47@xmonad/TheMC47)
2022-08-07 10:09:56 +0200JimL(~quassel@89-162-2-132.fiber.signal.no) (Read error: Connection reset by peer)
2022-08-07 10:10:07 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds)
2022-08-07 10:15:43 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-08-07 10:21:20 +0200vglfr(~vglfr@194.9.14.33) (Read error: Connection reset by peer)
2022-08-07 10:21:30 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 10:24:59 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-08-07 10:27:13 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-08-07 10:27:32 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 10:38:39 +0200Midjak(~Midjak@82.66.147.146)
2022-08-07 10:42:33 +0200Midjak(~Midjak@82.66.147.146) (Read error: Connection reset by peer)
2022-08-07 10:43:29 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 252 seconds)
2022-08-07 10:45:46 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-08-07 10:46:10 +0200Sgeo(~Sgeo@user/sgeo)
2022-08-07 10:46:50 +0200JimL(~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 268 seconds)
2022-08-07 10:48:17 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-08-07 10:48:59 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 10:52:04 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-07 10:55:26 +0200acidjnk(~acidjnk@p200300d6e7058660e0ca873366cee89c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-08-07 11:00:22 +0200maroloccio(~marolocci@62.98.94.196)
2022-08-07 11:07:37 +0200elkcl_(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
2022-08-07 11:08:47 +0200elkcl(~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 245 seconds)
2022-08-07 11:08:48 +0200elkcl_elkcl
2022-08-07 11:11:08 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-07 11:11:57 +0200kenran(~kenran@200116b82b39570069e9463f1b15ab5c.dip.versatel-1u1.de)
2022-08-07 11:13:26 +0200kenran(~kenran@200116b82b39570069e9463f1b15ab5c.dip.versatel-1u1.de) (Client Quit)
2022-08-07 11:14:39 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-08-07 11:14:39 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer)
2022-08-07 11:14:39 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer)
2022-08-07 11:14:39 +0200noteness(~noteness@user/noteness) (Write error: Connection reset by peer)
2022-08-07 11:15:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-08-07 11:15:28 +0200noteness(~noteness@user/noteness)
2022-08-07 11:15:34 +0200gmg(~user@user/gehmehgeh)
2022-08-07 11:15:43 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-08-07 11:25:21 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-08-07 11:26:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-07 11:33:50 +0200 <pavonia> Is there already a strict function to apply a function n times on a given value?
2022-08-07 11:37:27 +0200 <merijn> pavonia: iterate' ?
2022-08-07 11:38:47 +0200 <pavonia> Oh, didn't see there's a strict version of it
2022-08-07 11:45:25 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-07 11:46:02 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 268 seconds)
2022-08-07 11:47:53 +0200yaroot(~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp) (Ping timeout: 268 seconds)
2022-08-07 11:49:52 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 11:50:28 +0200nilradical(~nilradica@user/naso)
2022-08-07 11:52:00 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-07 11:52:37 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-07 11:56:08 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv)
2022-08-07 11:57:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2022-08-07 11:57:39 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 11:57:52 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-08-07 11:58:40 +0200nilradical(~nilradica@user/naso)
2022-08-07 11:58:43 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 11:59:02 +0200nilradical(~nilradica@user/naso)
2022-08-07 12:03:13 +0200yaroot(~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953)
2022-08-07 12:04:39 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 12:04:57 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-08-07 12:06:47 +0200mbuf(~Shakthi@122.165.55.71) (Quit: Leaving)
2022-08-07 12:09:56 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-08-07 12:11:41 +0200neceve(~quassel@2.26.93.14)
2022-08-07 12:12:24 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-08-07 12:18:33 +0200coot(~coot@213.134.176.158) (Read error: Connection reset by peer)
2022-08-07 12:18:42 +0200coot(~coot@213.134.176.158)
2022-08-07 12:19:07 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net)
2022-08-07 12:23:35 +0200instantaphex(~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 252 seconds)
2022-08-07 12:26:31 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-08-07 12:27:56 +0200yaroot(~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) (Ping timeout: 255 seconds)
2022-08-07 12:29:38 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 12:34:21 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net)
2022-08-07 12:36:18 +0200yaroot(~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953)
2022-08-07 12:38:59 +0200MajorBiscuit(~MajorBisc@86-88-79-148.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-08-07 12:42:07 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
2022-08-07 12:44:04 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 12:53:18 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-08-07 12:53:30 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv) (Read error: Connection reset by peer)
2022-08-07 12:54:11 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv)
2022-08-07 12:54:24 +0200acidjnk(~acidjnk@p200300d6e7058660e81ade68fca2dfc2.dip0.t-ipconnect.de)
2022-08-07 12:54:46 +0200coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-08-07 12:57:35 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!)
2022-08-07 13:03:33 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
2022-08-07 13:04:04 +0200JimL(~quassel@89-162-2-132.fiber.signal.no) (Quit: No Ping reply in 180 seconds.)
2022-08-07 13:06:41 +0200JimL(~quassel@89-162-2-132.fiber.signal.no)
2022-08-07 13:07:57 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 13:09:13 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 13:09:32 +0200coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot_)
2022-08-07 13:13:24 +0200ubert(~Thunderbi@77.119.210.41.wireless.dyn.drei.com)
2022-08-07 13:20:37 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 13:21:27 +0200nilradical(~nilradica@user/naso)
2022-08-07 13:21:42 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
2022-08-07 13:24:09 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 13:25:34 +0200Pickchea(~private@user/pickchea)
2022-08-07 13:26:17 +0200nilradical(~nilradica@user/naso) (Ping timeout: 245 seconds)
2022-08-07 13:28:14 +0200acidjnk(~acidjnk@p200300d6e7058660e81ade68fca2dfc2.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-08-07 13:30:18 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 13:30:50 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-07 13:34:00 +0200Cerins1(~Cerins@m90-128-49-116.cust.tele2.lv)
2022-08-07 13:35:11 +0200Cerins1(~Cerins@m90-128-49-116.cust.tele2.lv) (Client Quit)
2022-08-07 13:36:11 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv) (Ping timeout: 252 seconds)
2022-08-07 13:38:04 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-07 13:39:29 +0200Pickchea(~private@user/pickchea) (Ping timeout: 252 seconds)
2022-08-07 13:43:46 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-08-07 13:45:40 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net) (Ping timeout: 268 seconds)
2022-08-07 13:46:05 +0200nilradical(~nilradica@user/naso)
2022-08-07 13:49:12 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
2022-08-07 13:54:20 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 13:54:49 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-07 13:59:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-08-07 14:01:17 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv)
2022-08-07 14:06:33 +0200joo-_(~joo-_@fsf/member/joo--) (Quit: leaving)
2022-08-07 14:07:50 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-08-07 14:08:50 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-07 14:23:11 +0200rawles(~x@user/rawles)
2022-08-07 14:23:33 +0200vglfr(~vglfr@194.9.14.33) (Read error: Connection reset by peer)
2022-08-07 14:25:30 +0200joo-_(~joo-_@87-49-45-115-mobile.dk.customer.tdc.net)
2022-08-07 14:25:30 +0200joo-_(~joo-_@87-49-45-115-mobile.dk.customer.tdc.net) (Changing host)
2022-08-07 14:25:30 +0200joo-_(~joo-_@fsf/member/joo--)
2022-08-07 14:27:25 +0200 <rawles> Can someone name this function for me? I have a list of values whose type I've defined as a record. The second field is a timestamp, and the same data can appear several times in this list. I want to take my sorted list and retain only the first element appearing for each timestamp. Any ideas for an elegant way to do this?
2022-08-07 14:27:38 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-07 14:28:10 +0200 <rawles> I could group them by timestamp, and take the head of each list, but maybe there's a nicer way.
2022-08-07 14:28:50 +0200remedan(~remedan@octo.cafe) (Read error: Connection reset by peer)
2022-08-07 14:31:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-07 14:31:12 +0200 <Cale> That already sounds like a one-liner...
2022-08-07 14:31:22 +0200acidjnk(~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de)
2022-08-07 14:32:19 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 14:32:34 +0200remedan(~remedan@octo.cafe)
2022-08-07 14:32:50 +0200 <Cale> map head . groupBy ((==) `on` fooTimestamp)
2022-08-07 14:33:42 +0200 <Cale> or you could write a lambda there and it's not much longer
2022-08-07 14:33:43 +0200 <rawles> Fantastic. Thanks Cale. I'll give that a go in a bit.
2022-08-07 14:34:49 +0200 <Cale> head is guaranteed not to fail here because groupBy only ever produces nonempty groups, but if you're worried about how the code might evolve, using (\(x:_) -> x) is also an option (which will produce a more helpful error message at runtime if anyone ever gives it an empty list)
2022-08-07 14:35:32 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua)
2022-08-07 14:35:49 +0200 <rawles> Programming in Haskell at this stage is as much an self-education as it is creating code, so that sounds like a good habit. Thanks.
2022-08-07 14:35:56 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua) (Remote host closed the connection)
2022-08-07 14:36:48 +0200 <absentia> https://hackage.haskell.org/package/protolude-0.3.2/docs/Protolude-List.html
2022-08-07 14:37:10 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua)
2022-08-07 14:37:19 +0200 <rawles> oh nice!
2022-08-07 14:39:26 +0200jmd_(~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
2022-08-07 14:40:33 +0200Midjak(~Midjak@82.66.147.146)
2022-08-07 14:41:17 +0200kyborg2011(~kyborg201@host-176-36-215-61.b024.la.net.ua) (Ping timeout: 245 seconds)
2022-08-07 14:58:13 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 14:59:37 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
2022-08-07 15:00:11 +0200coot_(~coot@213.134.176.158)
2022-08-07 15:00:21 +0200 <Cale> That's just basically a subset of what's in Data.List
2022-08-07 15:00:56 +0200 <absentia> with safer `head`
2022-08-07 15:01:16 +0200 <Cale> oh, I see
2022-08-07 15:01:32 +0200coot_(~coot@213.134.176.158) (Read error: Connection reset by peer)
2022-08-07 15:01:42 +0200 <Cale> Though, that often won't help any, because you'll just end up wanting to pattern match on the Just which you know is coming.
2022-08-07 15:01:44 +0200coot_(~coot@213.134.176.158)
2022-08-07 15:01:59 +0200 <Cale> (Like in this case)
2022-08-07 15:02:25 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 15:02:38 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-07 15:04:17 +0200 <Cale> But yeah, 'head' and 'tail' are kind of a silly thing to have around in general, since they're both beginner traps most of the time, but also very easy to implement when you need them, and implementing them inline means the compiler has the opportunity to generate a better error message if you end up being (or becoming) incorrect about the list always being nonempty.
2022-08-07 15:04:29 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-08-07 15:05:41 +0200remedan(~remedan@octo.cafe) (Quit: Bye!)
2022-08-07 15:07:25 +0200 <Cale> haha, safeFromJust :: Maybe a -> Maybe a; safeFromJust = id
2022-08-07 15:07:50 +0200acidjnk(~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-08-07 15:09:10 +0200 <hpc> or if you want to optimize it, safeFromJust = unsafeCoerce
2022-08-07 15:15:21 +0200remedan(~remedan@octo.cafe)
2022-08-07 15:16:50 +0200 <rawles> Imagine I want to write a library that constructs a bitmap graphic in a canvas of 256x256 pixels. In my library, functions flip pixels, draw lines, and so on. But I don't want to carry around tens of thousands of values on the stack each time I change something. What should I be looking into to solve this - should I be learning about mutable data structures, or something else?
2022-08-07 15:16:57 +0200 <rawles> (I have a lot of questions)
2022-08-07 15:17:28 +0200 <geekosaur> take a look at JuicyPixels, nmuch of that might already be done for you
2022-08-07 15:18:08 +0200 <rawles> geekosaur: Thank you
2022-08-07 15:18:50 +0200 <geekosaur> also all values in Haskell are on the heap 🙂
2022-08-07 15:19:08 +0200 <geekosaur> there is a pattern match stack, and a C stack for FFI calls
2022-08-07 15:19:32 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 15:19:48 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 15:20:12 +0200 <rawles> Oh I see, that makes sense.
2022-08-07 15:20:45 +0200nilradical(~nilradica@user/naso)
2022-08-07 15:20:51 +0200 <geekosaur> (the pattern match stack is how things get evaluated, since a 100% lazy language would never do anything. so patterns cause forcing of lazy values)
2022-08-07 15:22:33 +0200remedan(~remedan@octo.cafe) (Read error: Connection reset by peer)
2022-08-07 15:25:26 +0200nilradical(~nilradica@user/naso) (Ping timeout: 240 seconds)
2022-08-07 15:26:42 +0200remedan(~remedan@octo.cafe)
2022-08-07 15:26:51 +0200remedan(~remedan@octo.cafe) (Read error: Connection reset by peer)
2022-08-07 15:27:57 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 244 seconds)
2022-08-07 15:28:16 +0200kilolympus(~kilolympu@90.206.106.191)
2022-08-07 15:30:41 +0200mxs(~mxs@user/mxs) (Ping timeout: 255 seconds)
2022-08-07 15:31:01 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 15:31:05 +0200remedan(~remedan@octo.cafe)
2022-08-07 15:34:37 +0200zxx7529(~Thunderbi@user/zxx7529) (Ping timeout: 245 seconds)
2022-08-07 15:35:21 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
2022-08-07 15:35:48 +0200remedan(~remedan@octo.cafe) (Remote host closed the connection)
2022-08-07 15:35:56 +0200maroloccio(~marolocci@62.98.94.196) (Quit: WeeChat 3.0)
2022-08-07 15:36:36 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 15:36:47 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv) (Quit: Leaving)
2022-08-07 15:37:20 +0200 <yin> is Stack still relevant?
2022-08-07 15:38:01 +0200 <yin> or has cabal caught up and made it obsolete?
2022-08-07 15:38:29 +0200 <geekosaur> there are still a few things stack does better, notably documentation
2022-08-07 15:38:53 +0200 <geekosaur> also some people prefer the resolver-based setup to cabal's more floating arrangement
2022-08-07 15:39:12 +0200 <hpc> ghcup solves what i expect most people use the resolver for
2022-08-07 15:39:15 +0200 <geekosaur> (although you can now simulate a resolver with a cabal.freeze file, but it's only a simulation)
2022-08-07 15:39:33 +0200 <hpc> (installing ghc/cabal in the first place, rather than trying to precisely control package versions)
2022-08-07 15:40:46 +0200 <hpc> can't you also download a cabal.freeze file that corresponds to a resolver?
2022-08-07 15:41:55 +0200 <geekosaur> yes
2022-08-07 15:42:18 +0200 <geekosaur> the upcoming 3.8 release even includes a way to have cabal download it for you
2022-08-07 15:43:55 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 268 seconds)
2022-08-07 15:44:36 +0200 <geekosaur> in any case, stack still has something like 50% of the "market",m such as it is, and up to 80% in industry; it's not going away any time soon
2022-08-07 15:45:31 +0200 <geekosaur> I think most people in here prefer cabal, though, so it'll be easier to get help for it
2022-08-07 15:48:17 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-08-07 15:48:18 +0200 <hpc> at the very least, cabal is more "fundamental", so even if you're using stack you have to understand cabal anyway
2022-08-07 15:48:38 +0200hrberg(~quassel@171.79-160-161.customer.lyse.net)
2022-08-07 15:49:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-07 15:50:04 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-07 15:51:57 +0200zebrag(~chris@user/zebrag)
2022-08-07 15:51:59 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 15:53:26 +0200[Leary](~Leary]@122-58-224-198-vdsl.sparkbb.co.nz) (Ping timeout: 240 seconds)
2022-08-07 15:54:10 +0200hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net)
2022-08-07 15:56:11 +0200nilradical(~nilradica@user/naso)
2022-08-07 15:58:54 +0200 <yin> yeah i stopped using stack because i didn't really see the benefits
2022-08-07 15:59:15 +0200 <yin> since cabal became sane
2022-08-07 16:02:51 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
2022-08-07 16:04:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-07 16:04:54 +0200doelie(~tom@c-73-17-195-134.hsd1.me.comcast.net)
2022-08-07 16:05:02 +0200gurkenglas(~gurkengla@p548ac3ba.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-08-07 16:06:41 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-07 16:06:55 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-08-07 16:07:07 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 16:07:09 +0200 <doelie> hi. what's a good place to start reading about dependent types in Haskell? i got a bit confused from just googling. there seems to be a lot of fragmented, outdated information online about how to emulate it and (unfinshed?) attempts to integrate it in ghc
2022-08-07 16:08:11 +0200 <geekosaur> the singletons library is how to emulate it. work to integrate it is still ongoing, various pieces have been appearing but it's fragmented and incomplete as yet
2022-08-07 16:08:39 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-07 16:08:43 +0200 <hippoid> i'm used to seeing the terms covariant and contravariant in terms of oop, but those terms are used in haskell as well in regards to bifuntors and profunctors. What's the meaning of covariant and contravariant in haskell, where there are no subclasses and superclasses?
2022-08-07 16:09:07 +0200 <doelie> geekosaur: thanks
2022-08-07 16:09:22 +0200 <geekosaur> https://www.cis.upenn.edu/~sweirich/papers/eisenberg-thesis.pdf is the plan, only partially implemented
2022-08-07 16:09:51 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-07 16:10:45 +0200geranim0(~geranim0@modemcable062.79-202-24.mc.videotron.ca)
2022-08-07 16:10:49 +0200bob(~geranim0@modemcable062.79-202-24.mc.videotron.ca)
2022-08-07 16:12:44 +0200 <hpc> hippoid: they mean sort of the same thing, funny enough
2022-08-07 16:12:49 +0200 <kaol> If you squint a bit substituting a type variable with a concrete type is somewhat like subclassing.
2022-08-07 16:13:02 +0200 <hpc> in OOP, they have to do with parameterized types, if you have say Foo<T> you can think about the variance of T
2022-08-07 16:13:11 +0200remedan(~remedan@octo.cafe)
2022-08-07 16:13:13 +0200 <hpc> in haskell, when you have (a -> b) you can think about the variance of a
2022-08-07 16:13:51 +0200 <hpc> there's a page on this somewhere...
2022-08-07 16:15:08 +0200 <hippoid> for (a->b), is there an implicit forall a, forall b?
2022-08-07 16:15:19 +0200 <hpc> yeah
2022-08-07 16:15:29 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 244 seconds)
2022-08-07 16:16:08 +0200 <hippoid> hmm, then a and b can vary universally, so where is the constraint on what concrete type either of them can be?
2022-08-07 16:16:09 +0200 <hpc> https://hackage.haskell.org/package/base-4.16.3.0/docs/Data-Functor-Contravariant.html is a bit of a clue
2022-08-07 16:16:17 +0200 <hpc> (Functor being covariant)
2022-08-07 16:16:36 +0200 <hpc> there's also an implicit (a :: Type) and (b :: Type)
2022-08-07 16:16:51 +0200 <hpc> same as when i write Foo<T>, there's quantifiers there that OOP languages have no syntax for
2022-08-07 16:17:41 +0200 <hpc> or it sort of does, but it gets weird with subtyping and doesn't look like a simple forall
2022-08-07 16:17:56 +0200 <hpc> Foo<T extends SomethingElse>, and such
2022-08-07 16:18:19 +0200 <hippoid> huh, i dont get it
2022-08-07 16:19:01 +0200 <hippoid> i should start with -- what does covariant mean?
2022-08-07 16:19:08 +0200 <hpc> https://www.fpcomplete.com/blog/2016/11/covariance-contravariance/ isn't the page i am thinking of, but it seems to explain everything
2022-08-07 16:19:19 +0200 <hpc> except for that MonadIO part at the bottom, that seems like a weird tangent
2022-08-07 16:19:23 +0200 <hippoid> hpc: thanks, ill check that out!
2022-08-07 16:25:51 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-08-07 16:26:02 +0200 <hpc> the bridge betwen oop variance and fp variance might be, imagine you have some function "B convert(A inputvalue)"
2022-08-07 16:26:20 +0200 <hpc> if you can use convert to write Foo<B> convertFoo(Foo<A> inputvalue), it's covariant
2022-08-07 16:26:35 +0200 <hpc> if you can use convert to write Foo<A> convertFoo(Foo<B> inputvalue), it's contravariant
2022-08-07 16:27:33 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 16:30:13 +0200 <hpc> convert might be a whole bunch of code, or it might just be a type cast
2022-08-07 16:31:51 +0200 <hpc> then you can imagine that they way OOP co/contravariance is taught just uses implicit type casts
2022-08-07 16:33:02 +0200joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 240 seconds)
2022-08-07 16:33:17 +0200nilradical(~nilradica@user/naso) (Ping timeout: 252 seconds)
2022-08-07 16:34:54 +0200joo-_(~joo-_@80-62-116-136-mobile.dk.customer.tdc.net)
2022-08-07 16:34:54 +0200joo-_(~joo-_@80-62-116-136-mobile.dk.customer.tdc.net) (Changing host)
2022-08-07 16:34:54 +0200joo-_(~joo-_@fsf/member/joo--)
2022-08-07 16:36:13 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
2022-08-07 16:38:01 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-08-07 16:38:23 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-08-07 16:43:35 +0200zxx7529(~Thunderbi@user/zxx7529) (Quit: zxx7529)
2022-08-07 16:46:40 +0200Flonk(~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat)
2022-08-07 16:47:31 +0200Flonk(~Flonk@vps-zap441517-1.zap-srv.com)
2022-08-07 16:53:16 +0200Flonk(~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat)
2022-08-07 16:53:32 +0200nilradical(~nilradica@user/naso)
2022-08-07 16:53:34 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-07 16:54:28 +0200Flonk(~Flonk@vps-zap441517-1.zap-srv.com)
2022-08-07 16:56:04 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-08-07 16:57:13 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-07 17:01:29 +0200johnw(~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
2022-08-07 17:01:46 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-08-07 17:04:14 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014) (Read error: Connection reset by peer)
2022-08-07 17:04:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi)
2022-08-07 17:05:45 +0200dcoutts__(~duncan@host86-150-18-57.range86-150.btcentralplus.com) (Remote host closed the connection)
2022-08-07 17:06:07 +0200dcoutts__(~duncan@host86-150-18-57.range86-150.btcentralplus.com)
2022-08-07 17:06:38 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 17:07:27 +0200nilradical(~nilradica@user/naso)
2022-08-07 17:09:08 +0200dcoutts_(~duncan@host86-150-18-2.range86-150.btcentralplus.com)
2022-08-07 17:10:38 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 240 seconds)
2022-08-07 17:11:47 +0200dcoutts__(~duncan@host86-150-18-57.range86-150.btcentralplus.com) (Ping timeout: 252 seconds)
2022-08-07 17:11:50 +0200nilradical(~nilradica@user/naso) (Ping timeout: 240 seconds)
2022-08-07 17:13:28 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv)
2022-08-07 17:15:17 +0200dcoutts(~duncan@host86-171-59-73.range86-171.btcentralplus.com)
2022-08-07 17:17:09 +0200dcoutts__(~duncan@host213-122-143-21.range213-122.btcentralplus.com)
2022-08-07 17:17:29 +0200Flonk(~Flonk@vps-zap441517-1.zap-srv.com) (Quit: The Lounge - https://thelounge.chat)
2022-08-07 17:17:50 +0200dcoutts_(~duncan@host86-150-18-2.range86-150.btcentralplus.com) (Ping timeout: 240 seconds)
2022-08-07 17:18:01 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-05bb-8b0e-3f23-c965.res6.spectrum.com) (Ping timeout: 244 seconds)
2022-08-07 17:18:39 +0200Flonk(~Flonk@vps-zap441517-1.zap-srv.com)
2022-08-07 17:20:07 +0200dcoutts(~duncan@host86-171-59-73.range86-171.btcentralplus.com) (Ping timeout: 268 seconds)
2022-08-07 17:21:15 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-07 17:25:02 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 17:29:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-07 17:30:39 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-2cf3-e44c-3193-429d.res6.spectrum.com)
2022-08-07 17:32:44 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-07 17:33:49 +0200dcoutts(~duncan@host86-144-78-222.range86-144.btcentralplus.com)
2022-08-07 17:35:22 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 17:35:41 +0200dcoutts__(~duncan@host213-122-143-21.range213-122.btcentralplus.com) (Ping timeout: 268 seconds)
2022-08-07 17:37:03 +0200nilradical(~nilradica@user/naso)
2022-08-07 17:37:09 +0200dcoutts_(~duncan@host86-144-78-222.range86-144.btcentralplus.com)
2022-08-07 17:39:42 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-07 17:39:42 +0200dcoutts(~duncan@host86-144-78-222.range86-144.btcentralplus.com) (Ping timeout: 244 seconds)
2022-08-07 17:42:04 +0200nilradical(~nilradica@user/naso) (Remote host closed the connection)
2022-08-07 17:42:15 +0200[Leary](~Leary]@122-58-224-198-vdsl.sparkbb.co.nz)
2022-08-07 17:42:21 +0200nilradical(~nilradica@user/naso)
2022-08-07 17:42:38 +0200nilradical(~nilradica@user/naso) (Client Quit)
2022-08-07 17:42:50 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e)
2022-08-07 17:43:35 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de)
2022-08-07 17:43:36 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 17:49:26 +0200cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2022-08-07 17:50:24 +0200dcoutts(~duncan@host86-149-51-51.range86-149.btcentralplus.com)
2022-08-07 17:50:29 +0200emad(~emad@102.40.214.221)
2022-08-07 17:51:35 +0200dcoutts_(~duncan@host86-144-78-222.range86-144.btcentralplus.com) (Ping timeout: 244 seconds)
2022-08-07 17:52:22 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 17:53:18 +0200cheater(~Username@user/cheater)
2022-08-07 18:00:10 +0200mimi1vx[m](~osukupmat@2001:470:69fc:105::2:418d) (Quit: You have been kicked for being idle)
2022-08-07 18:00:48 +0200acidjnk(~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de)
2022-08-07 18:02:53 +0200Cerins(~Cerins@m90-128-49-116.cust.tele2.lv) (Quit: Leaving)
2022-08-07 18:11:27 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-07 18:12:16 +0200noteness(~noteness@user/noteness)
2022-08-07 18:13:59 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net)
2022-08-07 18:14:09 +0200coco(~coco@212-51-146-199.fiber7.init7.net)
2022-08-07 18:15:11 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-07 18:15:11 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-07 18:15:11 +0200wroathe(~wroathe@user/wroathe)
2022-08-07 18:15:29 +0200alp_(~alp@user/alp)
2022-08-07 18:19:08 +0200eldritch_cookie(~eldritch@2804:7f4:8280:8d2f:870a:e15e:a75:13c7)
2022-08-07 18:21:32 +0200lbseale(~quassel@user/ep1ctetus)
2022-08-07 18:27:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-08-07 18:27:42 +0200Guest26(~Guest26@node-b8g.pool-180-180.dynamic.totinternet.net)
2022-08-07 18:28:37 +0200Guest26sdev
2022-08-07 18:33:23 +0200sdev(~Guest26@node-b8g.pool-180-180.dynamic.totinternet.net) (Quit: Client closed)
2022-08-07 18:37:57 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 252 seconds)
2022-08-07 18:41:03 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-07 18:41:52 +0200 <albet70> return is const in Reader?
2022-08-07 18:44:29 +0200 <c_wraith> technically... no. It has a newtype wrapper thrown in somewhere along the line in Reader.
2022-08-07 18:45:01 +0200 <c_wraith> But if you ignore that, like...
2022-08-07 18:45:05 +0200 <c_wraith> @unmtl Reader r a
2022-08-07 18:45:05 +0200 <lambdabot> r -> a
2022-08-07 18:45:10 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-08-07 18:45:15 +0200 <albet70> ignore the type constructor
2022-08-07 18:45:24 +0200 <c_wraith> what else could it do?
2022-08-07 18:45:45 +0200 <c_wraith> like, there's only one useful implementation of a -> (r -> a)
2022-08-07 18:47:13 +0200lbseale(~quassel@user/ep1ctetus) (Ping timeout: 268 seconds)
2022-08-07 18:50:37 +0200 <albet70> return_func = \x -> \_ -> x; return_cont = \a -> \k -> k a
2022-08-07 18:50:55 +0200 <johnw> yes, it's const, modulo type wrappers
2022-08-07 18:51:28 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-07 18:51:29 +0200 <albet70> S is ap, K is const, I is id, is that something?
2022-08-07 18:54:56 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-08-07 18:58:59 +0200lbseale(~quassel@user/ep1ctetus)
2022-08-07 18:59:39 +0200mxs(~mxs@user/mxs)
2022-08-07 19:00:01 +0200Tuplanolla(~Tuplanoll@91-159-69-231.elisa-laajakaista.fi) (Ping timeout: 268 seconds)
2022-08-07 19:02:00 +0200 <albet70> @djinn (((a->b) -> r) -> r) -> ((a->r)->r) -> (b->r) -> r
2022-08-07 19:02:00 +0200 <lambdabot> f a b c = b (\ d -> a (\ e -> c (e d)))
2022-08-07 19:02:07 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 19:03:01 +0200econo(uid147250@user/econo)
2022-08-07 19:03:37 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2022-08-07 19:04:50 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-08-07 19:06:34 +0200cheater(~Username@user/cheater) (Quit: (BitchX) Chester Cheeta uses BitchX. Ayeuhayueuhayueuh!)
2022-08-07 19:10:01 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-08-07 19:10:10 +0200 <albet70> which case would use this function? too weird
2022-08-07 19:10:49 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-08-07 19:11:16 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 19:11:37 +0200emad(~emad@102.40.214.221) (Quit: Leaving)
2022-08-07 19:13:51 +0200Tuplanolla(~Tuplanoll@91-159-68-188.elisa-laajakaista.fi)
2022-08-07 19:15:12 +0200 <monochrom> None. You can stop now.
2022-08-07 19:18:53 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-08-07 19:26:31 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-08-07 19:27:47 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-07 19:29:44 +0200jakalx(~jakalx@base.jakalx.net)
2022-08-07 19:30:21 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 19:31:08 +0200AlexNoo_(~AlexNoo@178.34.151.166)
2022-08-07 19:32:46 +0200 <johnw> albet70: isn't that just liftA2 ($) in Cont r?
2022-08-07 19:33:41 +0200 <tomsmeding> it's the _type_ of that, in any case
2022-08-07 19:33:45 +0200 <monochrom> A shorter name is <*> :)
2022-08-07 19:33:47 +0200AlexZenon(~alzenon@94.233.241.233) (Ping timeout: 245 seconds)
2022-08-07 19:33:53 +0200 <johnw> ah, yes :)
2022-08-07 19:34:03 +0200Alex_test(~al_test@94.233.241.233) (Ping timeout: 252 seconds)
2022-08-07 19:34:04 +0200 <APic>
2022-08-07 19:34:16 +0200Techcable(~Techcable@user/Techcable) (Remote host closed the connection)
2022-08-07 19:34:17 +0200 <johnw> I love the _accuracy_ in this channel :)
2022-08-07 19:34:33 +0200 <tomsmeding> that djinn output is incorrect as an implementation for Cont though
2022-08-07 19:34:41 +0200 <tomsmeding> because it evaluates the argument before the function :p
2022-08-07 19:34:42 +0200AlexNoo(~AlexNoo@94.233.241.233) (Ping timeout: 268 seconds)
2022-08-07 19:34:51 +0200 <monochrom> I am still ambivalent whether I should teach <*> or liftA2 though, when I teach Applicative.
2022-08-07 19:37:07 +0200Techcable(~Techcable@user/Techcable)
2022-08-07 19:37:30 +0200vglfr(~vglfr@194.9.14.33) (Read error: Connection reset by peer)
2022-08-07 19:37:45 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 19:38:13 +0200cheater(~Username@user/cheater)
2022-08-07 19:39:22 +0200Alex_test(~al_test@178.34.151.166)
2022-08-07 19:39:39 +0200AlexZenon(~alzenon@178.34.151.166)
2022-08-07 19:40:29 +0200Guest8787(~Guest87@105.157.240.67)
2022-08-07 19:40:52 +0200Guest8787(~Guest87@105.157.240.67) (Client Quit)
2022-08-07 19:42:10 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 244 seconds)
2022-08-07 19:42:24 +0200 <[exa]> monochrom: imo <*> in combination with <$> looks way more intuitive, and everyone is kinda able to chew themselves through the types to liftA2 after the intuition is in.
2022-08-07 19:43:02 +0200acidjnk(~acidjnk@p200300d6e705866035693c7955124d42.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-08-07 19:44:43 +0200AlexNoo_AlexNoo
2022-08-07 19:44:53 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 255 seconds)
2022-08-07 19:44:54 +0200Vajb(~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-08-07 19:45:01 +0200Vajb(~Vajb@2001:999:70c:2b99:3e15:6929:5bc6:c014)
2022-08-07 19:48:26 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 19:49:18 +0200machinedgod(~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds)
2022-08-07 19:52:35 +0200justsomeguy(~justsomeg@user/justsomeguy)
2022-08-07 19:53:50 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-08-07 19:55:52 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 19:55:59 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 19:59:50 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-07 20:00:18 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-07 20:07:57 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2022-08-07 20:08:57 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 20:09:04 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-08-07 20:09:44 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 20:13:27 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-07 20:14:18 +0200noteness(~noteness@user/noteness)
2022-08-07 20:17:34 +0200 <johnw> monochrom: didatictally, I think the story from fmap -> liftA2 has some clarity, whereas <*> is better if speaking of practicalities
2022-08-07 20:17:57 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 245 seconds)
2022-08-07 20:24:41 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 20:37:32 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-07 20:38:23 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-08-07 20:38:23 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-08-07 20:38:23 +0200wroathe(~wroathe@user/wroathe)
2022-08-07 20:38:47 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 245 seconds)
2022-08-07 20:40:12 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 20:42:18 +0200alp_(~alp@user/alp) (Ping timeout: 240 seconds)
2022-08-07 20:48:05 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-08-07 20:48:48 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-07 20:54:50 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-08-07 20:56:24 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 20:57:12 +0200alp_(~alp@user/alp)
2022-08-07 20:57:50 +0200hippoid(~hippoid@c-98-220-13-8.hsd1.il.comcast.net) (Read error: Connection reset by peer)
2022-08-07 20:58:06 +0200Milan(~Milan@46.245.124.208)
2022-08-07 20:58:20 +0200Milan(~Milan@46.245.124.208) (Client Quit)
2022-08-07 21:00:56 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-07 21:00:58 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2022-08-07 21:02:56 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-07 21:03:31 +0200coot_(~coot@213.134.176.158) (Ping timeout: 252 seconds)
2022-08-07 21:07:45 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds)
2022-08-07 21:07:55 +0200kilolympus(~kilolympu@90.206.106.191) (Ping timeout: 252 seconds)
2022-08-07 21:09:31 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 268 seconds)
2022-08-07 21:11:27 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds)
2022-08-07 21:12:36 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 268 seconds)
2022-08-07 21:12:37 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.5)
2022-08-07 21:13:06 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 21:13:07 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2022-08-07 21:14:53 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 21:16:27 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2022-08-07 21:17:11 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-07 21:19:29 +0200Sgeo(~Sgeo@user/sgeo)
2022-08-07 21:21:26 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 240 seconds)
2022-08-07 21:21:30 +0200acidjnk(~acidjnk@p200300d6e70586601410f2009aecb0a6.dip0.t-ipconnect.de)
2022-08-07 21:24:17 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 21:25:59 +0200kenran(~kenran@200116b82b395700fac15ccb28c8605f.dip.versatel-1u1.de)
2022-08-07 21:26:15 +0200kenran(~kenran@200116b82b395700fac15ccb28c8605f.dip.versatel-1u1.de) (Client Quit)
2022-08-07 21:28:04 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-08-07 21:28:19 +0200jimmy(~rethinkpa@static-198-54-130-104.cust.tzulo.com)
2022-08-07 21:28:38 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 240 seconds)
2022-08-07 21:31:10 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-08-07 21:31:54 +0200 <davean> johnw: I ... yah, I think I'd agree with you. I never actually use liftA2, but its a good way to explain things.
2022-08-07 21:34:31 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 21:38:51 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-07 21:40:07 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-07 21:48:59 +0200lbseale(~quassel@user/ep1ctetus) (Ping timeout: 268 seconds)
2022-08-07 21:50:36 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it) (Remote host closed the connection)
2022-08-07 21:50:56 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 21:55:23 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 255 seconds)
2022-08-07 21:56:57 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-08-07 21:58:31 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
2022-08-07 22:00:35 +0200cosimone(~user@93-44-186-171.ip98.fastwebnet.it)
2022-08-07 22:00:54 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 22:07:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-07 22:08:28 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 22:11:11 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-08-07 22:11:43 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-08-07 22:12:12 +0200coot_(~coot@213.134.176.158)
2022-08-07 22:17:57 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 245 seconds)
2022-08-07 22:19:25 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 22:22:04 +0200jgeerds(~jgeerds@55d46bad.access.ecotel.net)
2022-08-07 22:23:35 +0200 <monochrom> Currently I teach liftA2, then use liftA2($) to show that it is enough to induce liftAn, then introduce the name <*>.
2022-08-07 22:25:25 +0200titibandit(~titibandi@xdsl-212-8-147-38.nc.de) (Remote host closed the connection)
2022-08-07 22:25:52 +0200BanUtama(~blake.rai@user/BanUtama) (Ping timeout: 245 seconds)
2022-08-07 22:27:41 +0200 <darkling> "lift" makes me nervous, probably because every time I've met it so far, it's been used without explanation, and apparently the assumption that I know what it means; I don't.
2022-08-07 22:27:47 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-07 22:28:08 +0200 <geekosaur> "lift" means too many things and none of them are explained 🙂
2022-08-07 22:28:23 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-07 22:28:23 +0200 <c_wraith> yeah, you can't assume there's any pattern to things named lift.
2022-08-07 22:28:29 +0200 <c_wraith> Each one is its own thing
2022-08-07 22:28:45 +0200 <darkling> Well, that's a good meta-explanation, at least. :)
2022-08-07 22:29:06 +0200noteness(~noteness@user/noteness) (Remote host closed the connection)
2022-08-07 22:29:07 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-08-07 22:29:10 +0200 <monochrom> I have long learned that names are meaningless. Context and actual usages give the semantics.
2022-08-07 22:29:33 +0200 <monochrom> Programmers are the worst offenders in two senses.
2022-08-07 22:29:35 +0200noteness(~noteness@user/noteness)
2022-08-07 22:29:36 +0200 <c_wraith> also, types are documentation that *rarely* lies in Haskell
2022-08-07 22:29:50 +0200 <c_wraith> get fluent in reading types :)
2022-08-07 22:29:51 +0200 <monochrom> For example, consider this name one of them coined: "test pollution".
2022-08-07 22:29:57 +0200 <int-e> It's simple: lift is a next-level operation.
2022-08-07 22:30:14 +0200 <Rembane> Do you even <*>?
2022-08-07 22:30:23 +0200 <monochrom> IMO more people should learn Chess.
2022-08-07 22:30:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-08-07 22:30:37 +0200 <c_wraith> great, now I'm going to read <*> as a guy flexing his lats forever
2022-08-07 22:30:40 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-08-07 22:30:47 +0200 <monochrom> Then you will understand that the names "queen", "bishop", "rook", "knight", "pawn" all mean nothing.
2022-08-07 22:30:51 +0200 <int-e> `ap` forever
2022-08-07 22:31:06 +0200 <darkling> Yeah, the CS environment is absolutely dreadful for pinching otherwise well-defined terms and redefining them to mean something subly (or totally) different.
2022-08-07 22:31:32 +0200 <monochrom> The name "king" marginally mean a tiny little bit of something, insofar as it means the one piece you can't sacrifice.
2022-08-07 22:31:33 +0200 <Rembane> c_wraith: You're welcome! :D
2022-08-07 22:31:50 +0200 <darkling> My last job title was "ontologist". Just don't tell the philosophers.
2022-08-07 22:32:02 +0200 <monochrom> And if that is not enough, consider the "cannon" piece in Chinese Chess.
2022-08-07 22:32:19 +0200 <c_wraith> Everyone knows knights are famous for their leaping abilitiesa
2022-08-07 22:32:46 +0200 <monochrom> It's a cute little marvel. It can move like a rook, but not capture like a rook. To capture, you must have exactly one obstacle in the line of sight.
2022-08-07 22:33:05 +0200 <darkling> Yeah, the cannon's great.
2022-08-07 22:33:12 +0200 <monochrom> Oh and everyone knows stone towers are famous for their mobility?
2022-08-07 22:33:29 +0200 <c_wraith> yes. but only in cardinal directions
2022-08-07 22:33:35 +0200Rembaneknows this
2022-08-07 22:33:37 +0200 <monochrom> And queens are famous for walking faster than kings?
2022-08-07 22:33:48 +0200 <Rembane> And being absolutely fierce
2022-08-07 22:34:02 +0200 <absentia> the "bishop" visited my local church the other day
2022-08-07 22:34:05 +0200 <absentia> he was a fuckin impostor
2022-08-07 22:34:07 +0200 <int-e> c_wraith: ...what do you make of bishops avoiding cardinal directions...
2022-08-07 22:34:08 +0200 <absentia> never once moved diagonally
2022-08-07 22:34:16 +0200 <monochrom> And pawns are famous for becoming additional royal consorts when hitting the enemy baseline?
2022-08-07 22:34:23 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 22:34:29 +0200 <absentia> http://bash.org/?261501
2022-08-07 22:34:30 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 22:34:33 +0200 <c_wraith> int-e: I only know it to be true. I cannot comprehend their ways.
2022-08-07 22:34:45 +0200 <int-e> There's more I'd like to add but first I have something to check, mate.
2022-08-07 22:34:51 +0200michalz(~michalz@185.246.204.87)
2022-08-07 22:35:13 +0200 <int-e> c_wraith: They stay true to their colors at least
2022-08-07 22:35:14 +0200 <darkling> It becomes easier if you generalise to fairy chess, and then look at the traditional set as a selected subset. :)
2022-08-07 22:35:47 +0200 <darkling> Alternatively, this: https://en.wikipedia.org/wiki/Gess
2022-08-07 22:35:58 +0200 <darkling> (I've got the original paper for that one. :) )
2022-08-07 22:36:34 +0200 <monochrom> After Chess and Chinese Chess and a few more kinds of games, you learn that "lift" has as much meaning as names in Chess.
2022-08-07 22:37:01 +0200 <monochrom> You just go "yeah whatever, just tell me the actual rules of engagement".
2022-08-07 22:37:53 +0200BanUtama(~blake.rai@user/BanUtama)
2022-08-07 22:38:24 +0200 <monochrom> "is this Chess but Transformers?" butterfly man meme
2022-08-07 22:38:49 +0200jimmy(~rethinkpa@static-198-54-130-104.cust.tzulo.com) (Quit: Leaving)
2022-08-07 22:39:52 +0200 <int-e> it's funny how fork lifts have nothing to do with dininig etiquette.
2022-08-07 22:40:14 +0200 <c_wraith> fork lifts lift the concept of forks to palletes
2022-08-07 22:40:34 +0200 <darkling> Isn't that what dining forks do?
2022-08-07 22:40:40 +0200 <c_wraith> spelling is hared
2022-08-07 22:40:45 +0200 <c_wraith> (case in point...)
2022-08-07 22:40:46 +0200 <darkling> Lift the food to the palette. :)
2022-08-07 22:41:20 +0200 <c_wraith> I was close. It's pallets.
2022-08-07 22:42:10 +0200 <monochrom> I still spell spurrious with a spurious r. :)
2022-08-07 22:42:12 +0200darklinghangs up the homophone.
2022-08-07 22:43:03 +0200 <Rembane> So... what's an isophone?
2022-08-07 22:43:24 +0200 <monochrom> I name my iPhone "monophone". :)
2022-08-07 22:43:52 +0200 <Rembane> ^^
2022-08-07 22:44:31 +0200 <monochrom> Idea for Harry Potter knockoff: Edsger Dijkstra And The Philosopher's Fork :)
2022-08-07 22:44:37 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
2022-08-07 22:45:14 +0200 <Rembane> I want rap battles between Dijkstra and the rest of the world
2022-08-07 22:45:23 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 22:45:27 +0200 <c_wraith> What's wrong with CS people, always trying to starve philosophers?
2022-08-07 22:46:15 +0200 <monochrom> Because the philosophers put us on rail tracks to be hit by a train?
2022-08-07 22:47:24 +0200 <darkling> You'd rather leave the Byzantine generals to work out the issues for themselves?
2022-08-07 22:47:51 +0200 <Rembane> darkling: As long as they live stream it I'm cool
2022-08-07 22:48:10 +0200 <monochrom> hahahaha
2022-08-07 22:49:03 +0200 <darkling> I think that's my call for bedtime. G'night, ladles and jellyspoons. o/
2022-08-07 22:51:02 +0200 <Rembane> \o
2022-08-07 22:53:14 +0200slack1256(~slack1256@181.43.227.178)
2022-08-07 22:55:39 +0200 <slack1256> I got a really minor memory leak. Every week this program run it increases its RSS by 20MiB. I can diagnose leaks easily when they are noticiable, but how would you approach this?
2022-08-07 22:57:26 +0200 <geekosaur> eventlog and hs-speedscope?
2022-08-07 22:58:05 +0200bob(~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection)
2022-08-07 22:58:05 +0200geranim0(~geranim0@modemcable062.79-202-24.mc.videotron.ca) (Remote host closed the connection)
2022-08-07 22:58:23 +0200 <sm> bisect.. remove functionality until it stops., try to narrow it down
2022-08-07 22:59:01 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 252 seconds)
2022-08-07 22:59:33 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 23:00:52 +0200 <sm> ..watch live memory use with +RTS -S, try to identify events that trigger it..
2022-08-07 23:01:03 +0200 <slack1256> sm: The bisect testing takes a lot of time. It does not manifest until the next week...
2022-08-07 23:01:54 +0200 <sm> yes that would be slow, unless you can find ways to trigger it faster
2022-08-07 23:01:55 +0200 <hpc> that's about 32 bits per second
2022-08-07 23:03:07 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 23:05:31 +0200 <monochrom> Take a trip around the solar system at 0.2c speed. Then you can wait less. >:)
2022-08-07 23:06:28 +0200 <sm> if you can't go that fast, rent a super fast vps ? :)
2022-08-07 23:06:43 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
2022-08-07 23:06:53 +0200 <slack1256> hpc: Mmm that is true. I remember there was a new feature on a release note that said you could activate the profiling in certain pieces of code. I could wrap the "loop" part of the program and study the retained allocation per loop.
2022-08-07 23:07:19 +0200 <slack1256> monochrom: Hey, I would if I could. But Musk & Co are more interested on pump-and-dumping doge ;_; .
2022-08-07 23:11:02 +0200zer0bitz(~zer0bitz@2001:2003:f748:2000:788d:7b3b:7037:afae) (Ping timeout: 240 seconds)
2022-08-07 23:13:31 +0200adium(adium@user/adium) (Quit: Stable ZNC by #bnc4you)
2022-08-07 23:14:25 +0200neceve(~quassel@2.26.93.14) (Ping timeout: 252 seconds)
2022-08-07 23:15:21 +0200coco(~coco@212-51-146-199.fiber7.init7.net) (Quit: WeeChat 3.5)
2022-08-07 23:17:55 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-08-07 23:18:28 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-08-07 23:19:01 +0200vglfr(~vglfr@194.9.14.33) (Ping timeout: 268 seconds)
2022-08-07 23:20:51 +0200michalz(~michalz@185.246.204.87) (Remote host closed the connection)
2022-08-07 23:20:57 +0200coot_(~coot@213.134.176.158) (Quit: coot_)
2022-08-07 23:26:40 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-08-07 23:29:30 +0200pavonia(~user@user/siracusa)
2022-08-07 23:35:43 +0200 <slack1256> Oh, eventlog2html has the slope of allocation of different cost-centres... interesting.
2022-08-07 23:36:08 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 23:36:15 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-08-07 23:40:01 +0200vglfr(~vglfr@194.9.14.33)
2022-08-07 23:42:38 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-08-07 23:48:25 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-08-07 23:48:29 +0200 <geekosaur> 9.4.1 just landed, it seems
2022-08-07 23:49:07 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-08-07 23:49:11 +0200gmg(~user@user/gehmehgeh)
2022-08-07 23:51:27 +0200 <monochrom> -fprof-late gives me that AoE4 feeling: Why wasn't it done on day 1? :)
2022-08-07 23:52:50 +0200 <monochrom> (AoE4 is a game such that, for example, 1.5 years after initial release, players can finally pick colours.)
2022-08-07 23:54:35 +0200Hecatestoped after AoE II
2022-08-07 23:54:38 +0200acidjnk(~acidjnk@p200300d6e70586601410f2009aecb0a6.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)