2022/10/13

2022-10-13 00:01:25 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 00:02:16 +0200 <johnw> AndreasK: I wonder why it's ignore the env var then...
2022-10-13 00:03:05 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0)
2022-10-13 00:04:53 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-13 00:05:09 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-10-13 00:05:40 +0200king_gs(~Thunderbi@2806:103e:29:c5:4fb1:a8c9:906f:c6e0) (Client Quit)
2022-10-13 00:05:56 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-13 00:09:05 +0200tempuser_(~archie@2804:214:8617:700:4d1d:352d:668a:1b70) (Quit: Leaving)
2022-10-13 00:12:13 +0200talismanick(~talismani@c-73-41-86-39.hsd1.ca.comcast.net)
2022-10-13 00:13:45 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com)
2022-10-13 00:15:01 +0200 <dminuoso> johnw: Its as per documentation at least
2022-10-13 00:15:07 +0200 <dminuoso> https://cabal.readthedocs.io/en/3.4/installing-packages.html#environment-variables
2022-10-13 00:16:13 +0200 <dminuoso> johnw: With v2 build, you can use the --builddir flag (or control via cabal.project): https://cabal.readthedocs.io/en/3.6/cabal-project.html#cmdoption-builddir
2022-10-13 00:16:36 +0200 <dminuoso> Oh, cannot be specified via cabal.project apparently. Interesting
2022-10-13 00:17:07 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-10-13 00:21:16 +0200 <talismanick> So, I'm trying to use Polysemy with the Template Haskell shortcut syntax (`makeSem`) to generate boilerplate for me
2022-10-13 00:21:51 +0200 <talismanick> but no matter what GADT I pass to it (including examples from docs and tutorials), it errors out with "Parse error: module header, import declaration"
2022-10-13 00:23:14 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-10-13 00:24:01 +0200 <ski> dminuoso : fwiw, with an explicit signature like that (specifying being polymorphic in `o'), you'll guard against inadvertent nqCPS
2022-10-13 00:24:14 +0200 <talismanick> building with GHC 9.2.4, polysemy v1.7.1.0 (latest)
2022-10-13 00:24:42 +0200 <ski> (unless nqCPS is what you're after, of course .. then you can't really do that .. unless if you parameterize on all the operations you intende to do nqCPS with)
2022-10-13 00:25:00 +0200 <dminuoso> What is nqCPS?
2022-10-13 00:25:25 +0200 <talismanick> non <something> continuation passing style?
2022-10-13 00:25:37 +0200 <ski> [Leary] : nice :)
2022-10-13 00:25:47 +0200 <ski> not-quite CPS
2022-10-13 00:25:48 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 00:25:55 +0200 <ski> when not all your calls are tail calls
2022-10-13 00:26:09 +0200 <ski> sometimes you'll "do something extra" to the "final answer computed by a call"
2022-10-13 00:26:23 +0200AlexZenon_2(~alzenon@178.34.161.92)
2022-10-13 00:26:31 +0200 <dminuoso> Yeah, Im doing a lot of nqCPS already
2022-10-13 00:26:47 +0200 <ski> `Codensity f a = forall o. (a -> f o) -> f o' is a principled way to do this, you can only mess with the `f' part of the result, not the `o' part
2022-10-13 00:27:12 +0200 <dminuoso> Mmm interesting
2022-10-13 00:27:16 +0200 <ski> nqCPS is what delimited continuations are all about
2022-10-13 00:27:42 +0200 <dminuoso> Im looking at a paper Continuation-Based Partial Evaluation right now, that seems to touch that subject
2022-10-13 00:28:05 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-10-13 00:28:06 +0200AlexZenon(~alzenon@178.34.161.92) (Ping timeout: 260 seconds)
2022-10-13 00:28:13 +0200 <ski> ah, that's a fun topic :)
2022-10-13 00:28:29 +0200 <ski> found the papers by Olivier Danvy and Caroline Malmkjer, yet ?
2022-10-13 00:28:46 +0200 <dminuoso> I've never really understood what delimited continuations were about, I guess its time now
2022-10-13 00:28:47 +0200 <ski> (those were how i was introduced to partial evaluation)
2022-10-13 00:30:36 +0200mikoto-chan(~mikoto-ch@193.185.223.3) (Ping timeout: 268 seconds)
2022-10-13 00:31:55 +0200 <ski> iirc, one of the MetaML examples involved staging a regex (or similar) pattern-matcher, so it offline computed an matcher, before in the later stage being fed inputs to match on (cf. "run-time compilation")
2022-10-13 00:32:30 +0200 <ski> anyway, that example was written in explicit CPS (for success and failure to match) .. except when it was staged, it became nqCPS !
2022-10-13 00:32:40 +0200libertyprime(~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
2022-10-13 00:32:40 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 00:33:04 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds)
2022-10-13 00:33:19 +0200 <ski> now, MetaML also has `shift' & `reset', so i translated the example back to direct style, inserting a few judicious calls to those two control operations
2022-10-13 00:34:19 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-13 00:35:46 +0200libertyprime(~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Remote host closed the connection)
2022-10-13 00:36:41 +0200 <dminuoso> ski: https://gist.github.com/dminuoso/3b1e7a2f5eab7055e7438f8dd5da7f1f
2022-10-13 00:36:48 +0200 <dminuoso> So this is the code as it is right now
2022-10-13 00:37:23 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-13 00:37:36 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-13 00:39:19 +0200AlexZenon_2AlexZenon
2022-10-13 00:39:39 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 00:40:30 +0200 <AlexNoo> 1778
2022-10-13 00:41:00 +0200 <shapr> good year, that
2022-10-13 00:41:08 +0200 <shapr> hi AlexNoo, how's code?
2022-10-13 00:42:23 +0200 <ystael> Is there a way to make stack _not_ destroy .stack-work/dist when it dies with a build failure?
2022-10-13 00:42:42 +0200 <AlexNoo> hi AlexNoo, how's code?
2022-10-13 00:42:46 +0200 <ystael> I want to examine the battered corpse
2022-10-13 00:42:52 +0200 <AlexNoo> got it wrong
2022-10-13 00:43:46 +0200 <ski> dminuoso : oh, you're still doing an accumulator
2022-10-13 00:43:47 +0200 <shapr> gutetag AlexNoo, wie gehts?
2022-10-13 00:43:59 +0200 <shapr> bah, I'm starting German lessons in two weeks :-|
2022-10-13 00:44:45 +0200 <ski> (also, i was thinking of doing the CPS internally, but not on the outer interface. but i guess you could have it there .. or maybe you could do some `build'-like fusion)
2022-10-13 00:45:27 +0200 <dminuoso> ski: Yeah its a bit of impedence mismatching. :(
2022-10-13 00:45:30 +0200 <AlexNoo> auf keine Weise
2022-10-13 00:46:09 +0200 <dminuoso> Not much of a choice, since Im not just comparing two lists. Im sort of merging two lists on an element-by-element basis, erroring out of any side has extras
2022-10-13 00:46:13 +0200 <ski> doing it without accumulator, in the CPS, should be easy
2022-10-13 00:46:25 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
2022-10-13 00:46:31 +0200 <ski> well, you do need to pass `just' as argument
2022-10-13 00:46:39 +0200 <ski> (effectively that becomes your accumulator, instead)
2022-10-13 00:47:18 +0200 <ski> (you could think of `just' as becoming a difference list, if you want to)
2022-10-13 00:47:54 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-10-13 00:48:03 +0200 <dminuoso> Yeah the perspective has crossed my mind. In a difference place, Im using continuations to construct a nested type, as to avoid stack space for things like `(foo :>) <$> buildInner`
2022-10-13 00:48:08 +0200skitwitches at the redundant bracket pair
2022-10-13 00:48:33 +0200 <ski> with `buildInner' being of type `Maybe Whatever' ?
2022-10-13 00:48:56 +0200 <dminuoso> Something along these lines originally
2022-10-13 00:49:26 +0200 <ski> yea, so you want to avoid percolating up your `Nothing' exception, step-by-step, instead directly jumping to the handler
2022-10-13 00:49:28 +0200 <dminuoso> Now its just `decodeAttr__ attrLen subtree (c . (asNam next :>))`
2022-10-13 00:49:37 +0200 <dminuoso> Indeed
2022-10-13 00:49:47 +0200 <ski> which is what the CPS does, since it allows the `nothing' to be a semi-tail call
2022-10-13 00:50:11 +0200 <ski> this is what the Shivers' paper i mentioned the other day is all about, except that's about doing it in direct style, rather than explicit CPS
2022-10-13 00:50:14 +0200 <dminuoso> I think Ill get some rest, I cant focus to imagine how to put your suggestion in place.
2022-10-13 00:50:59 +0200 <dminuoso> What I like about the continuation construction by the way, is that I can just suspend it.
2022-10-13 00:51:18 +0200 <ski> yea, you can easily do coroutiney stuff with it
2022-10-13 00:51:28 +0200 <shapr> AlexNoo: Are you writing cool Haskell code?
2022-10-13 00:51:30 +0200 <ski> there's a Claessen paper, "A Poor Man's Concurrency Monad"
2022-10-13 00:51:57 +0200 <dminuoso> Which is really helpful. Im decoding a sort of encoded algebra of types, and there's this notion of "split attributes", where attributes are encoded across other attributes, so at some point I must suspend the layers I have constructed so far, build the outer attributes, splice together, and then resume.
2022-10-13 00:52:10 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-10-13 00:52:28 +0200 <ski> i also used a similar idea, when i implemented `zipWith'/`zip' using two `foldr' calls on the lists, no other recursion or matching/deconstruction (explicit or indirect) of the lists
2022-10-13 00:52:32 +0200 <dminuoso> What is really amazing how simple it: | DecodedNeedsSpliceAll (IntTree ASpec) BS.ByteString (Attr -> Attr)
2022-10-13 00:53:03 +0200 <ski> yea, that does sound like a coroutiney situation
2022-10-13 00:53:07 +0200 <dminuoso> Yup
2022-10-13 00:53:40 +0200 <AlexNoo> shapr: I do not know this language. * gloomy*
2022-10-13 00:53:49 +0200 <Axman6> o/
2022-10-13 00:54:04 +0200 <ski> (i'm reminded the declarative debugger for Mercury allowed a similar thing, to defer one question about whether an intermediate function call result was intended, to possibly try looking for other questions, before looping back to the original one)
2022-10-13 00:54:05 +0200 <shapr> AlexNoo: want to learn? I can suggest some starter things if you want?
2022-10-13 00:54:37 +0200 <dminuoso> At any rate, I really have to get some sleep. o/
2022-10-13 00:54:46 +0200 <dminuoso> Thanks for your insights, ski
2022-10-13 00:54:56 +0200 <ski> yw :)
2022-10-13 00:55:00 +0200 <ski> good night and pleasant dreams
2022-10-13 00:55:01 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
2022-10-13 00:55:22 +0200 <Axman6> AlexNoo: There was a time when none of us knew this language
2022-10-13 00:55:49 +0200acidjnk(~acidjnk@p200300d6e7137a811112d37158fd9527.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-13 00:55:55 +0200 <Axman6> (that time was 1990)
2022-10-13 00:56:27 +0200FlaminWalrus(~user@wsip-24-248-9-71.br.br.cox.net) (Remote host closed the connection)
2022-10-13 00:56:35 +0200Kaiepi(~Kaiepi@142.68.249.28) (Remote host closed the connection)
2022-10-13 00:56:53 +0200 <AlexNoo> shapr: no. I would like to learn C, then C++, and only then... be interested in other languages. and I don't know English either. :-(
2022-10-13 00:58:32 +0200 <AlexNoo> 1775
2022-10-13 00:59:04 +0200 <Axman6> are we counting down to something?
2022-10-13 00:59:09 +0200 <AlexNoo> well, again, I drove the rating into the wrong tab.
2022-10-13 00:59:19 +0200Kaiepi(~Kaiepi@142.68.249.28)
2022-10-13 00:59:35 +0200Kaiepi(~Kaiepi@142.68.249.28) (Remote host closed the connection)
2022-10-13 00:59:37 +0200 <ski> do you know any other languages ?
2022-10-13 00:59:44 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-10-13 00:59:59 +0200Kaiepi(~Kaiepi@142.68.249.28)
2022-10-13 01:00:11 +0200 <AlexNoo> native only.
2022-10-13 01:00:31 +0200 <Axman6> native as in German or native as in assembly?
2022-10-13 01:00:53 +0200pavonia_(~user@user/siracusa)
2022-10-13 01:01:28 +0200 <AlexNoo> native, as in Russia, or the Soviet Union.
2022-10-13 01:02:03 +0200 <AlexNoo> and in German I only know "hands up".
2022-10-13 01:02:04 +0200pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2022-10-13 01:02:11 +0200pavonia_pavonia
2022-10-13 01:04:00 +0200 <talismanick> nvm, I forgot to enable TemplateHaskell
2022-10-13 01:04:03 +0200td_(~td@94.134.91.145) (Ping timeout: 268 seconds)
2022-10-13 01:05:23 +0200td_(~td@83.135.9.60)
2022-10-13 01:05:33 +0200 <ski> AlexNoo : ah, sorry. i meant any other proramming languages ?
2022-10-13 01:06:25 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 01:06:37 +0200 <talismanick> AlexNoo: zachem schitaesh?
2022-10-13 01:06:59 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 01:08:14 +0200 <AlexNoo> only Python, partially. not completely.
2022-10-13 01:08:59 +0200 <ski> добрый вечер/ночь
2022-10-13 01:09:40 +0200 <AlexNoo> добрый.
2022-10-13 01:10:03 +0200 <dolio> David Turner knew Haskell in 1990.
2022-10-13 01:10:39 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-10-13 01:12:24 +0200 <AlexNoo> But I'm already sleeping. good night.
2022-10-13 01:12:33 +0200zmt00(~zmt00@user/zmt00)
2022-10-13 01:12:39 +0200skiwaves
2022-10-13 01:12:49 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 01:13:05 +0200 <ski> shapr : möchtest Du mit deutsche Leute arbeiteteteten ?
2022-10-13 01:15:30 +0200 <yushyin> i'm not sure if this is inflected properly
2022-10-13 01:16:54 +0200 <EvanR> :t splitAt
2022-10-13 01:16:54 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-10-13 01:16:55 +0200 <lambdabot> Int -> [a] -> ([a], [a])
2022-10-13 01:17:13 +0200EvanR(~EvanR@user/evanr)
2022-10-13 01:17:15 +0200 <EvanR> :t splitAt
2022-10-13 01:17:16 +0200 <lambdabot> Int -> [a] -> ([a], [a])
2022-10-13 01:17:23 +0200 <EvanR> @src splitAt
2022-10-13 01:17:23 +0200 <lambdabot> splitAt n xs = (take n xs, drop n xs)
2022-10-13 01:17:41 +0200nate1(~nate@98.45.169.16)
2022-10-13 01:18:12 +0200 <EvanR> :t space
2022-10-13 01:18:12 +0200 <lambdabot> Doc
2022-10-13 01:18:14 +0200 <EvanR> :t span
2022-10-13 01:18:16 +0200 <lambdabot> (a -> Bool) -> [a] -> ([a], [a])
2022-10-13 01:18:19 +0200 <EvanR> @src span
2022-10-13 01:18:19 +0200 <lambdabot> span _ xs@[] = (xs, xs)
2022-10-13 01:18:19 +0200 <lambdabot> span p xs@(x:xs') | p x = let (ys,zs) = span p xs' in (x:ys,zs)
2022-10-13 01:18:19 +0200 <lambdabot> | otherwise = ([],xs)
2022-10-13 01:18:28 +0200 <EvanR> I was thinking of break / span not splitAt
2022-10-13 01:22:42 +0200 <shapr> ski: jag lära mig tysk för jobbet, ja
2022-10-13 01:22:52 +0200 <EvanR> hopefully the same magic applies to splitAt though
2022-10-13 01:23:01 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-13 01:23:53 +0200skistudsar upp och ner på stolen
2022-10-13 01:24:13 +0200 <ski> EvanR : magic as in `RULE's ?
2022-10-13 01:24:58 +0200 <shapr> ski: hah, I'm excited about learning German for a Haskell job, yes!
2022-10-13 01:25:40 +0200 <EvanR> not rules, something about stg
2022-10-13 01:26:44 +0200 <ski> hm, 'd be curious to learn what it was about / how it works
2022-10-13 01:26:44 +0200 <Axman6> shapr: congrats - can you say where the job is?
2022-10-13 01:26:58 +0200noctux(~noctux@user/noctux) (Ping timeout: 240 seconds)
2022-10-13 01:27:04 +0200 <shapr> Axman6: yeah, I'm working for Least Authority on the PrivateStorage team
2022-10-13 01:28:16 +0200noctux(~noctux@user/noctux)
2022-10-13 01:28:34 +0200 <Axman6> "formerly S4" I feel like they could have also called it PS3 =)
2022-10-13 01:29:04 +0200 <shapr> :-)
2022-10-13 01:29:23 +0200 <shapr> it's Python, Haskell, and Nix
2022-10-13 01:30:42 +0200 <Axman6> looks like a cool product, and one I've wanted for a while
2022-10-13 01:31:16 +0200 <EvanR> the problem setup is: you want to lazily process the first part of a list one way, then after the split or break, process it another way. So you probably just do break or splitAt to get two "new" lists, and just use them as input to a lazy algorithm. Eventually when something starts consuming the first part, it's not obvious that it can be dropped soon, because there was that 2nd component based on the whole list, "not needed yet"
2022-10-13 01:32:16 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 01:32:58 +0200 <EvanR> but apparently it can be collected soon, i.e. the dropping is evaluating along with the taking, sometimes, for some reason
2022-10-13 01:33:10 +0200 <EvanR> "update frames"
2022-10-13 01:33:16 +0200 <Axman6> shapr: HMMMMMMM, I tick a lot of the boxes for "Helpful skills and attributes for this role include" on https://leastauthority.com/blog/jobs/senior-software-developer-privatestorage/
2022-10-13 01:34:10 +0200 <shapr> Axman6: you could apply
2022-10-13 01:34:27 +0200 <shapr> I just started, I like it so far.
2022-10-13 01:37:52 +0200spacenautx(~spacenaut@user/spacenautx) (Quit: WeeChat 3.0)
2022-10-13 01:40:52 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-10-13 01:42:33 +0200mncheck(~mncheck@193.224.205.254) (Ping timeout: 252 seconds)
2022-10-13 01:43:56 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds)
2022-10-13 01:44:37 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 01:44:55 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-10-13 01:47:50 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Remote host closed the connection)
2022-10-13 01:49:32 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-13 01:49:38 +0200 <talismanick> Does "runtime strictness analysis" make sense terminologically, by analogy with a JIT versus a compiler?
2022-10-13 01:50:12 +0200 <talismanick> Is there a way to annotate data types with "potentially make strict at runtime", like a weaker bang pattern?
2022-10-13 01:51:08 +0200 <talismanick> Like, opportunistically make strict if a) no results change and b) guaranteed performance increase
2022-10-13 01:51:36 +0200 <EvanR> if a JIT runs your code slow for a while before deciding to compile it and replace it for future calls, is it actually "just in time" or "somewhat late"
2022-10-13 01:52:01 +0200 <EvanR> because if you do that with strictness your code starts acting differently
2022-10-13 01:52:57 +0200 <talismanick> EvanR: well, don't space leaks usually come from intermediate data structures?
2022-10-13 01:53:17 +0200 <L29Ah> talismanick: the compiler is too dumb to predict if the results would change, and that in fact sounds like the halting problem
2022-10-13 01:53:29 +0200Sciencentistguy7(~sciencent@hacksoc/ordinary-member)
2022-10-13 01:53:39 +0200 <EvanR> yeah in some cases adding strictness can make it use less intermediate data. In other cases it makes the code fail to terminate when it otherwise would
2022-10-13 01:53:44 +0200 <L29Ah> performance increase depends a lot on if/when exactly the data would be demanded
2022-10-13 01:54:21 +0200L29Ahjust uses -XStrict and adds ~'s when needed
2022-10-13 01:54:30 +0200 <davean> "don't space leaks usually come from intermediate data structures?" No!
2022-10-13 01:54:35 +0200 <talismanick> L29Ah: that's why I asked if it could be done at runtime
2022-10-13 01:54:43 +0200 <talismanick> davean: oh?
2022-10-13 01:54:47 +0200 <EvanR> yeah I dunno about usually, but that's sometimes a thing
2022-10-13 01:55:24 +0200 <EvanR> strict fields for an Int that is computed from a large thunk
2022-10-13 01:55:42 +0200 <EvanR> (that would definitely terminate)
2022-10-13 01:55:44 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Ping timeout: 268 seconds)
2022-10-13 01:55:44 +0200Sciencentistguy7Sciencentistguy
2022-10-13 01:55:57 +0200 <davean> Space leaks come from something being depended on. The only way an intermediate datastructure causes one is exactly the same way as a pair where you only need one of the two values leaks the unneeded one's space
2022-10-13 01:56:17 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net)
2022-10-13 01:56:26 +0200perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.7)
2022-10-13 01:56:31 +0200 <L29Ah> my last space leak was due to the pinned memory fragmentation that could have been fixed either by a smarter allocator or an ability to temporarily pin any chunk of memory in order to push it down the syscall
2022-10-13 01:56:46 +0200 <davean> All your space leaks come from exactly the same place (unless you look at forgien data stuff)
2022-10-13 01:57:35 +0200 <EvanR> so what you're saying is, the space leak is not caused by intermediate data. But by intermediate data outstaying its welcome
2022-10-13 01:57:59 +0200 <EvanR> because if you evaluated the results earlier the intermediate data still exists but is not a problem
2022-10-13 01:58:36 +0200 <davean> non-strictness is control flow
2022-10-13 02:01:11 +0200 <EvanR> now I'm going to think about "somewhat late compilation"
2022-10-13 02:01:47 +0200 <EvanR> better late than never might sound less snarky
2022-10-13 02:07:35 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-10-13 02:09:16 +0200talismanick(~talismani@c-73-41-86-39.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
2022-10-13 02:09:32 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-13 02:14:03 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 02:18:33 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 02:19:00 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com)
2022-10-13 02:21:20 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 02:23:28 +0200jmorris(uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-13 02:26:12 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 264 seconds)
2022-10-13 02:27:52 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-10-13 02:28:46 +0200perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-10-13 02:29:54 +0200zaquest(~notzaques@5.130.79.72)
2022-10-13 02:32:18 +0200chymera(~chymera@ns1000526.ip-51-81-46.us)
2022-10-13 02:35:25 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 02:36:20 +0200DDR(~DDR@2604:3d08:4c7f:8250:6d8e:9999:5eac:c5e)
2022-10-13 02:36:21 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-13 02:39:56 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-13 02:40:17 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-13 02:40:18 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-10-13 02:41:00 +0200Guest51(~Guest51@205.175.106.233)
2022-10-13 02:41:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-13 02:41:35 +0200 <chymera> hi guys, any idea how I can encode a url so that conduit can get stuff from it? http://dpaste.com/HYHY3FRV9
2022-10-13 02:41:48 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-10-13 02:45:42 +0200 <Clint> chymera: what do you mean, "get stuff from it"
2022-10-13 02:46:02 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 02:46:28 +0200 <chymera> get the text which the URL returns
2022-10-13 02:46:34 +0200 <chymera> Clint: ^
2022-10-13 02:48:18 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 02:49:08 +0200 <Clint> chymera: so you want to do a GET request of https://wttr.in/?m&format=%t and get the response back as a lazy bytestring?
2022-10-13 02:49:24 +0200 <chymera> Clint: yes :)
2022-10-13 02:49:57 +0200 <Clint> so what happened with the code you commented out?
2022-10-13 02:50:08 +0200Guest51(~Guest51@205.175.106.233) (Quit: Client closed)
2022-10-13 02:50:35 +0200 <jackdk> Oh, I thought we were streaming the URL itself ;-). Try `http-conduit` package, which gives you the response body as a conduit directly. `withResponse` seems like a good place to start. https://www.irccloud.com/pastebin/BsSUZulL/Foo.hs
2022-10-13 02:51:52 +0200 <chymera> Clint: it doesn't like the method for some reason :( https://dpaste.com/7YLXQFHNF
2022-10-13 02:52:21 +0200 <Clint> type mismatch
2022-10-13 02:52:37 +0200 <Clint> the example code you're copying from probably uses OverloadedStrings
2022-10-13 02:52:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Ping timeout: 268 seconds)
2022-10-13 02:54:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2022-10-13 02:54:43 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2022-10-13 02:54:59 +0200 <chymera> jackdk: right, but I don't just want to return the url string, I want to access the url and get the content of the page
2022-10-13 02:55:10 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 02:55:39 +0200 <jackdk> chymera: Yeah, the actually serious part of my response is the second half. Have a look at the `http-conduit` library
2022-10-13 02:55:42 +0200 <chymera> Clint: so it wants a normal string, and for some reason `"GET"` in my code counts as a different variant of the string type which it doesn't like?
2022-10-13 02:55:53 +0200 <jackdk> chymera: `{-# LANGUAGE OverloadedStrings #-}`
2022-10-13 02:56:01 +0200 <jackdk> at the top of the file
2022-10-13 02:56:40 +0200 <chymera> jackdk: I thought that's the package I was using when I was importing conduit
2022-10-13 02:57:18 +0200 <jackdk> oh you are indeed. Yeah there are other functions in that Data.HTTP.Conduit module which give you the response body as an actual conduit
2022-10-13 02:57:20 +0200 <chymera> oh, cool, thanks
2022-10-13 02:57:32 +0200 <chymera> after adding `{-# LANGUAGE OverloadedStrings #-}` to the top of the file the error goes away
2022-10-13 02:58:33 +0200 <jackdk> (I'm on a work call, so replies will be spotty from here on out)
2022-10-13 02:59:03 +0200_xoryawns and stretches
2022-10-13 02:59:07 +0200 <_xor> All right, back to the grind.
2022-10-13 02:59:09 +0200 <chymera> I now get the error I was initially encountering. This code http://dpaste.com/3H3WHZR5T gives me http://dpaste.com/BTJSEB6KL
2022-10-13 02:59:37 +0200 <chymera> is there any way to auto-convert the link to the correct encoding?
2022-10-13 02:59:46 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-13 03:00:03 +0200 <_xor> So what should I look into for vendoring dependencies for offline installation again? Someone mentioned 7.2 of the cabal docs. Looked at it earlier and I'm starting to get a better idea, but not fully clear.
2022-10-13 03:01:23 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2022-10-13 03:02:23 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 03:02:44 +0200 <Axman6> chymera: does "https://wttr.in/?m" work?
2022-10-13 03:04:17 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-13 03:04:17 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-13 03:04:17 +0200wroathe(~wroathe@user/wroathe)
2022-10-13 03:05:38 +0200 <Axman6> chymera: and what about "https://wttr.in/?m&format=%25t"?
2022-10-13 03:06:10 +0200ddellacosta(~ddellacos@143.244.47.69)
2022-10-13 03:07:00 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
2022-10-13 03:15:59 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 03:19:04 +0200 <Axman6> anyone else ever wanted more succinct syntax for the `foo x y >>= \case ...` idiom?
2022-10-13 03:19:48 +0200 <Axman6> I feel like I want something like `mcase foo x y of ...` but I also kinda hate that
2022-10-13 03:21:49 +0200 <L29Ah> do you want an APL-like syntax for Haskell?
2022-10-13 03:21:50 +0200 <geekosaur> funny, \case started out as that more succinct syntax
2022-10-13 03:22:13 +0200dsrt^(~dsrt@c-76-17-6-165.hsd1.ga.comcast.net)
2022-10-13 03:22:26 +0200 <EvanR> that form is nice, except that I use it once in a while and so I also have to scroll to the top of the file and put a language pragma
2022-10-13 03:22:40 +0200 <EvanR> low thrust to weight ratio
2022-10-13 03:26:04 +0200 <EvanR> imagine if C required you to put a pragma if you want to use break to break out of a loop, or you can use a goto + label to get the same effect
2022-10-13 03:26:51 +0200 <EvanR> without a pragma
2022-10-13 03:26:54 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-10-13 03:27:25 +0200frost(~frost@user/frost)
2022-10-13 03:27:33 +0200 <Clint> i'd put the pragma
2022-10-13 03:27:53 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2022-10-13 03:29:59 +0200 <L29Ah> `#pragma bracket` plz
2022-10-13 03:30:37 +0200pragma-(~chaos@user/pragmatic-chaos) (Bye!)
2022-10-13 03:32:16 +0200 <EvanR> editor macro to just put all the pragmas and includes you'll ever need... I guess I should have already done that
2022-10-13 03:33:08 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net) (Ping timeout: 268 seconds)
2022-10-13 03:33:08 +0200 <Axman6> well, pragma just left
2022-10-13 03:33:41 +0200 <EvanR> *pragma's not here*
2022-10-13 03:35:09 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-10-13 03:36:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-13 03:37:01 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 03:38:26 +0200 <chymera> Axman6: indeed, with those links I no longer get the error — but is there any way to get the percentage encoding done automatically?
2022-10-13 03:39:11 +0200frost20(~frost@user/frost)
2022-10-13 03:39:14 +0200 <chymera> also, the string I get and then print, actually doesn't contain what the page for that link would show 🤔 http://dpaste.com/GEWNW89CL
2022-10-13 03:39:46 +0200 <chymera> any idea how I can actually “get” the string that appears in the page? i.e. what you would see in the browser or get with wget?
2022-10-13 03:40:09 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-10-13 03:41:46 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
2022-10-13 03:42:53 +0200frost(~frost@user/frost) (Ping timeout: 244 seconds)
2022-10-13 03:43:06 +0200 <Axman6> that looks like logging to me
2022-10-13 03:43:35 +0200 <Axman6> you're not actually fetching the data in https://dpaste.com/3H3WHZR5T
2022-10-13 03:43:59 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-10-13 03:45:28 +0200 <Axman6> chymera: can you give some more clarity on what you actually want? your code is full of comments of several different ways to do things - I would lbs <- simpleHttp "https://wttr.in/?m&format=%t" to work, if you fix the encoding issues
2022-10-13 03:45:28 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-10-13 03:45:29 +0200nate1(~nate@98.45.169.16)
2022-10-13 03:45:44 +0200 <Axman6> do you want a Conduit? or do you want a Bytestring?
2022-10-13 03:47:04 +0200 <chymera> I want a string, something like "+4°C" I'm not entirely sure what a condiut is
2022-10-13 03:48:54 +0200 <chymera> Axman6: and re the “encoding issues”, is there any was for that to be done automatically? i.e. converting % to %25 or whatever else might be necesary?
2022-10-13 03:51:41 +0200sudden(~cat@user/sudden) (Ping timeout: 260 seconds)
2022-10-13 03:52:51 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-13 03:53:27 +0200sudden(~cat@user/sudden)
2022-10-13 03:54:33 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2022-10-13 03:54:39 +0200beteigeuze(~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 268 seconds)
2022-10-13 03:56:17 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-13 03:56:17 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-13 03:56:18 +0200wroathe(~wroathe@user/wroathe)
2022-10-13 03:57:13 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 04:05:49 +0200thegeekinside(~thegeekin@189.180.7.159) (Ping timeout: 268 seconds)
2022-10-13 04:09:28 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 04:09:33 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 04:12:34 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-10-13 04:13:32 +0200 <ski> EvanR : it does sound interesting. any pointers ?
2022-10-13 04:13:46 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-10-13 04:15:04 +0200ddellacosta(~ddellacos@143.244.47.69) (Ping timeout: 268 seconds)
2022-10-13 04:15:51 +0200 <ski> Axman6 : "anyone else ever wanted more succinct syntax for the `foo x y >>= \case ...` idiom?","I feel like I want something like `mcase foo x y of ...` but I also kinda hate that" -- yea, i believe my lexical/reflective effects syntax idea could help there
2022-10-13 04:16:00 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Ping timeout: 264 seconds)
2022-10-13 04:17:31 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-13 04:18:02 +0200 <EvanR> on update frames? Not really... a random duck duck go reveals the sentence "The GC will remove indirections during copying, changing code that pointed to a indirection (evaluated thunk) to the actual value closure." on https://www.scs.stanford.edu/11au-cs240h/notes/ghc.html I feel like I should ask you for links to the secrets of ghc xD
2022-10-13 04:18:27 +0200 <ski> well, where did you hear/read/learn about it ?
2022-10-13 04:18:42 +0200 <EvanR> in here, from monochrom and dolio xD
2022-10-13 04:18:57 +0200 <ski> ah, figures ;P
2022-10-13 04:19:29 +0200 <EvanR> one day when I was trying to understand performance of something equivalent to the implementation of span
2022-10-13 04:19:29 +0200 <ski> i know the GC can rewrite `fst (foo,bar)' to `foo'
2022-10-13 04:20:09 +0200 <ski> (i forgot what this is called, but apparently that's one thing it can do, to try to avoid some kinds of space leaks)
2022-10-13 04:22:14 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-10-13 04:22:17 +0200 <ski> (hm, looking at that sentence, i'm not sure if it's talking about the same thing i was recalling)
2022-10-13 04:22:18 +0200 <EvanR> yeah and then elsewhere there is a snd (foo,bar)
2022-10-13 04:22:23 +0200 <Clinton[m]> If I have:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/f57acdba2c4f0fd95e5d43b48a8ed0b96246…>)
2022-10-13 04:22:42 +0200 <monochrom> GC does both.
2022-10-13 04:22:55 +0200 <EvanR> (I'm jumping to that conclusion because no there's no fst or snd, it looks like a pattern match to me)
2022-10-13 04:23:27 +0200 <ski> @unmtl ReaderT r (EitherT e m) a -> ReaderT r m a
2022-10-13 04:23:27 +0200 <lambdabot> ReaderT r (EitherT e m) a -> ReaderT r m a
2022-10-13 04:23:29 +0200 <ski> @unmtl ReaderT r (EitherT e m) a
2022-10-13 04:23:29 +0200 <lambdabot> r -> EitherT e m a
2022-10-13 04:23:34 +0200 <ski> @unmtl ReaderT r m a
2022-10-13 04:23:34 +0200 <lambdabot> r -> m a
2022-10-13 04:23:36 +0200 <monochrom> They're also pretty orthogonal, I would think. Changing "fst (x,y)" to x does not require "fst (x,y)" to be evaluated.
2022-10-13 04:24:20 +0200 <ski> so, effectively, you're asking about going from `f :: C e m => EitherT e m a -> m a' to `g :: C e m => (r -> EitherT e m a) -> (r -> m a)' .. can you see how to do this latter ?
2022-10-13 04:24:31 +0200 <ski> Clinton[m] ^
2022-10-13 04:24:36 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Remote host closed the connection)
2022-10-13 04:25:36 +0200 <ski> EvanR : might work for all pattern-matches that merely select a field, i suppose
2022-10-13 04:25:48 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-10-13 04:25:56 +0200 <Clinton[m]> ski: yes :) Silly me... I should really think of it like that shouldn't I. That's just `fmap` right?
2022-10-13 04:27:01 +0200 <ski> well, technically yes .. but that reduces to something simpler, in the `r -> ...' case
2022-10-13 04:27:46 +0200skiidly wonders whether to decompose the problem more
2022-10-13 04:27:53 +0200 <EvanR> the mysterious part is it seems like you have in one hand foo, and in the other hand bar. And the one evaluator is working on foo, seemingly works on bar with spooky action at a distance
2022-10-13 04:28:13 +0200 <ski> "works" how, or in what sense ?
2022-10-13 04:28:29 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net)
2022-10-13 04:28:40 +0200td_(~td@83.135.9.60) (Ping timeout: 268 seconds)
2022-10-13 04:29:18 +0200 <EvanR> foo being the next thing to evaluate for the overall task, bar being based on the same list but starting later, will be needed after the foo
2022-10-13 04:29:51 +0200td_(~td@83.135.9.55)
2022-10-13 04:30:57 +0200 <EvanR> since they were created in the same tuple, can they be traversed together, allowing the list to be collected asap
2022-10-13 04:31:19 +0200 <Clinton[m]> ski: `g = ReaderT . fmap f . runReaderT` yes? That is pretty.
2022-10-13 04:31:50 +0200 <EvanR> s/can they/they can/
2022-10-13 04:32:22 +0200raym(~aritra@user/raym) (Ping timeout: 268 seconds)
2022-10-13 04:32:39 +0200jargon(~jargon@184.101.208.112) (Remote host closed the connection)
2022-10-13 04:32:48 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-10-13 04:33:03 +0200dr_merijn(~dr_merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
2022-10-13 04:33:13 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-13 04:33:42 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-10-13 04:33:42 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-10-13 04:33:42 +0200finn_elijaFinnElija
2022-10-13 04:35:31 +0200 <Axman6> ski: "lexical/reflective effects syntax"?
2022-10-13 04:37:59 +0200raym(~aritra@user/raym)
2022-10-13 04:38:22 +0200 <EvanR> wow the asm code given for add x y = x + y + 2 on that page is... significant xD
2022-10-13 04:38:35 +0200 <EvanR> where add :: Int -> Int -> Int
2022-10-13 04:43:12 +0200 <Axman6> I feel like lexi-lambda's video released yesterday is a good companion to those slides
2022-10-13 04:48:51 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-13 04:50:47 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-10-13 04:52:09 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-10-13 04:55:11 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-10-13 05:00:08 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 05:00:13 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-10-13 05:00:54 +0200 <Clinton[m]> ski: I note I can write this helper function:... (full message at <https://libera.ems.host/_matrix/media/r0/download/libera.chat/6d251cfe1734ed0e5f870b5b0f9c6d9a87eb…>)
2022-10-13 05:01:18 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-10-13 05:02:05 +0200razetime(~quassel@117.254.35.56)
2022-10-13 05:02:47 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-13 05:04:10 +0200 <Clinton[m]> Or something like this:
2022-10-13 05:04:11 +0200 <Clinton[m]> ```
2022-10-13 05:04:11 +0200 <Clinton[m]> (m a -> n a) -> (t m a -> t n a)
2022-10-13 05:05:31 +0200thegreek1(~Zorba@2001:df2:c900:2411:31ff:ef5:2cc0:1cdd)
2022-10-13 05:07:06 +0200 <jackdk> Clinton[m]: `mmorph:Control.Monad.Morph.hoist`?
2022-10-13 05:07:15 +0200jargon(~jargon@184.101.208.112)
2022-10-13 05:09:52 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-10-13 05:12:36 +0200 <ski> Axman6 : i've talked about it in here before, on several occasions. last was slightly over two weeks ago, see <https://ircbrowse.tomsmeding.com/day/lchaskell/2022/09/28>. conversation with enoq ended up with me briefly summarizing it
2022-10-13 05:13:02 +0200 <ski> Axman6 : video link ?
2022-10-13 05:14:00 +0200 <ski> @type mapReaderT -- Clinton[m] ?
2022-10-13 05:14:01 +0200 <lambdabot> (m a -> n b) -> ReaderT r m a -> ReaderT r n b
2022-10-13 05:15:46 +0200 <ski> but yea, `hoist' is sorta similar, would (also) work for Clinton[m] original question, but not for the new helper in the paste above
2022-10-13 05:16:03 +0200 <probie> Is there a way to have a newtype that's somewhat like a GADT? Something like `newtype Foo a where Foo :: Int -> Foo Bar`. The best I can come up with abusing pattern synonyms over `newtype Foo a = FooInternal Int`
2022-10-13 05:16:54 +0200 <ski> i've wanted that, at times .. sometimes with more than one constructor (with non-overlapping indices)
2022-10-13 05:18:05 +0200 <ski> i think currently, phantoms, enhanced by pattern synonyms, are probably your best bet
2022-10-13 05:19:13 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds)
2022-10-13 05:19:17 +0200 <ski> (at one point, people did just phantoms, to try to simulate some of the effects of GADTs .. possibly together with some `unsafeCoerce's)
2022-10-13 05:19:33 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-10-13 05:20:05 +0200thegreek1(~Zorba@2001:df2:c900:2411:31ff:ef5:2cc0:1cdd) (Quit: WeeChat 3.7)
2022-10-13 05:23:30 +0200 <ski> (with a normal `data' GADT, you can learn the indices by matching on the data constructor. but what i was talking about is more like a variant where you're only allowed to math on a data constructor if the indices are already known to match. (cf. a pattern-matching function (perhaps recursive), returning a type, in a dependent language, as opposed to an indexed `data' family, the latter is more like GADTs).
2022-10-13 05:23:36 +0200 <ski> then one could have a `newtype' variant of *that* alternative kind of data type with concrete indices, that allowed multiple alternatives, as long as there were no overlap)
2022-10-13 05:24:58 +0200johnw(~johnw@2600:1700:cf00:db0:b1b8:33de:e15a:f4eb) (Quit: ZNC - http://znc.in)
2022-10-13 05:26:01 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 05:26:21 +0200 <ski> (sometimes i've wondered if there'sn't a similarity between GADTs / indexed families vs. these "look inside only if indices match" types, and predicates/relations in logic programming with output parameters (perhaps like bottom-up deductive database even) vs. input parameters ..)
2022-10-13 05:26:44 +0200 <Clinton[m]> jackdk: hoist is what I was looking for! Thanks!
2022-10-13 05:27:06 +0200 <ski> Clinton[m] : also see my suggestion
2022-10-13 05:27:10 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-13 05:27:51 +0200 <ski> there's also `mapWriterT',`mapStateT',`mapContT',`mapRWST'
2022-10-13 05:27:59 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-13 05:27:59 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-13 05:27:59 +0200wroathe(~wroathe@user/wroathe)
2022-10-13 05:28:54 +0200 <Clinton[m]> Ah, so `hoist` is just a typeclass that generalises `mapBlahT`?
2022-10-13 05:29:06 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 05:29:07 +0200 <ski> .. sortof, but not quite ?
2022-10-13 05:29:14 +0200 <ski> note that `hoist' is rank-2
2022-10-13 05:29:20 +0200 <ski> while the ones i mentioned aren't
2022-10-13 05:29:34 +0200 <ski> @type mapWriterT
2022-10-13 05:29:35 +0200 <lambdabot> (m (a, w) -> n (b, w')) -> WriterT w m a -> WriterT w' n b
2022-10-13 05:29:39 +0200 <ski> @type mapStateT
2022-10-13 05:29:40 +0200 <Clinton[m]> ski: I'm not sure I understand, but I think all I needed was `mapReaderT` or more generally, `hoist`?
2022-10-13 05:29:41 +0200 <lambdabot> (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
2022-10-13 05:30:04 +0200 <ski> note that these expose "implementation details" of the insides of these monad transformers
2022-10-13 05:30:22 +0200 <ski> (well, they're considered pretty public .. but you get the idea, i hope)
2022-10-13 05:30:41 +0200 <ski> rank-2 can be used for information hiding, hiding which particular type you're going to pick
2022-10-13 05:31:25 +0200 <ski> so, `hoist' goes `(forall x. m x -> n x) -> ..m..n..' preventing you from seeing (and taking advantage of, messing with) which insides of `m' and `n' it'll use
2022-10-13 05:32:19 +0200 <ski> Clinton[m] : in your specific case, `mapReaderT' would be the less powerful hammer to use. but it's good to be aware of `hoist', if you need it
2022-10-13 05:32:41 +0200 <ski> and sometimes this encapsulation of implementation details thing is specifically what you'd like
2022-10-13 05:33:01 +0200 <Axman6> ski: https://www.youtube.com/watch?v=fdyh3YQ-ZWI (also ping EvanR)
2022-10-13 05:33:07 +0200 <ski> ty
2022-10-13 05:34:42 +0200 <Clinton[m]> ski: ah, so I think in my question I need `hoist`. I'm confusing myself here. But I'm actually using `bmap` from barbies here, so yes, hoist is doing the job. I'm mapping over a rank2 type parameter.
2022-10-13 05:35:49 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 05:36:17 +0200 <ski> Clinton[m] : also note that `hoist' is `(forall x. m x -> n x) -> (forall a. t m a -> t n a)', while the pattern of these `mapBlahT's are `(m (Something par0 .. a0) -> n (Something par1 .. a1)) -> (BlahT par0 .. m a0 -> BlahT par1 .. m a1)'
2022-10-13 05:37:07 +0200 <ski> Clinton[m] : so, with `mapBlahT' you can change not only `m' to `n', but also `a0' to `a1', and also (in some cases), `par0',.. to `par1',..
2022-10-13 05:37:48 +0200 <ski> Clinton[m] : while with `hoist', you can only change `m' to `n', can't change `a' (since the callback only sees an opaque `x', which it also isn't allowed to change)
2022-10-13 05:38:31 +0200 <ski> (while this restriction in power of `hoist' also gives more guarantees. "can't mess around with the `x', nor with the `par',.. parts")
2022-10-13 05:40:27 +0200 <Clinton[m]> ski: ah, good point. But in my case that's exactly what I want. I think I just confused myself between the rank1 and rank2 kinds.
2022-10-13 05:40:27 +0200 <Clinton[m]> The current codebase I've got has things like `BlahService m`, where `m` is a Monad. So I want to transform the monad type to compose these services more easily. It's actually working nicely once I wrap my head around it.
2022-10-13 05:40:47 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-13 05:41:43 +0200 <ski> (also, the obvious that `hoist' is a general pattern, that you can opt your transformer into, while `mapBlahT's are ad hoc)
2022-10-13 05:41:48 +0200elbear(~lucian@188.24.138.239)
2022-10-13 05:41:59 +0200raym(~aritra@user/raym) (Ping timeout: 252 seconds)
2022-10-13 05:46:16 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 05:46:17 +0200Vajb(~Vajb@85-76-75-28-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2022-10-13 05:47:23 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-10-13 05:48:53 +0200raym(~aritra@user/raym)
2022-10-13 05:54:20 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 05:56:44 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-10-13 06:03:18 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-10-13 06:06:39 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
2022-10-13 06:08:41 +0200 <EvanR> Axman6, exitification transformation
2022-10-13 06:09:27 +0200 <EvanR> learned about a new transformation thanks
2022-10-13 06:11:18 +0200elbear(~lucian@188.24.138.239)
2022-10-13 06:13:39 +0200WDAGUtilityAccou(~WDAGUtili@185.175.89.9)
2022-10-13 06:16:05 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-13 06:17:28 +0200WDAGUtilityAccou(~WDAGUtili@185.175.89.9) (Quit: Leaving)
2022-10-13 06:18:24 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 264 seconds)
2022-10-13 06:22:17 +0200 <EvanR> some source of update frames, literally https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/rts/haskell-execution/updates
2022-10-13 06:22:26 +0200 <EvanR> s/of/on/
2022-10-13 06:28:15 +0200mbuf(~Shakthi@49.205.80.14)
2022-10-13 06:28:58 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-10-13 06:29:47 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-10-13 06:33:13 +0200elbear(~lucian@188.24.138.239)
2022-10-13 06:45:47 +0200nate1(~nate@98.45.169.16)
2022-10-13 06:50:11 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-10-13 06:55:42 +0200forell(~forell@user/forell) (Quit: ZNC - https://znc.in)
2022-10-13 06:56:59 +0200forell(~forell@user/forell)
2022-10-13 06:58:01 +0200phma(~phma@host-67-44-208-113.hnremote.net) (Read error: Connection reset by peer)
2022-10-13 06:58:55 +0200phma(phma@2001:5b0:211f:2d8:cb19:bdbc:6195:cb49)
2022-10-13 06:59:45 +0200erisco(~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 250 seconds)
2022-10-13 07:01:19 +0200erisco(~erisco@d24-57-249-233.home.cgocable.net)
2022-10-13 07:04:36 +0200raym(~aritra@user/raym) (Ping timeout: 268 seconds)
2022-10-13 07:13:49 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net)
2022-10-13 07:19:55 +0200raym(~aritra@user/raym)
2022-10-13 07:25:47 +0200chomwitt(~chomwitt@2a02:587:dc0c:c200:a0a8:ed7f:a699:91a5)
2022-10-13 07:27:25 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-10-13 07:36:48 +0200dsrt^(~dsrt@c-76-17-6-165.hsd1.ga.comcast.net) (Remote host closed the connection)
2022-10-13 07:47:39 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-10-13 07:48:21 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-10-13 07:50:14 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
2022-10-13 07:51:03 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-13 07:52:09 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 07:52:39 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 08:05:33 +0200kenran(~user@user/kenran)
2022-10-13 08:08:10 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 08:08:48 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-13 08:11:04 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 08:12:45 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-13 08:16:00 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 264 seconds)
2022-10-13 08:17:23 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-13 08:19:46 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 08:21:07 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 08:23:03 +0200elbear(~lucian@188.24.138.239)
2022-10-13 08:32:12 +0200raym(~aritra@user/raym) (Ping timeout: 264 seconds)
2022-10-13 08:32:51 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 260 seconds)
2022-10-13 08:32:53 +0200raym(~aritra@user/raym)
2022-10-13 08:37:55 +0200cyphase(~cyphase@user/cyphase)
2022-10-13 08:48:33 +0200thegreek(~weechat@2001:df2:c900:2411:cd6e:df38:d95b:81df)
2022-10-13 08:48:37 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:4590:bf86:dae:5953)
2022-10-13 08:49:01 +0200thegreekgreek
2022-10-13 08:51:21 +0200chele(~chele@user/chele)
2022-10-13 08:51:35 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-13 08:52:32 +0200mncheck(~mncheck@193.224.205.254)
2022-10-13 08:52:49 +0200DDR(~DDR@2604:3d08:4c7f:8250:6d8e:9999:5eac:c5e) (Ping timeout: 246 seconds)
2022-10-13 09:01:21 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Remote host closed the connection)
2022-10-13 09:04:38 +0200acidjnk(~acidjnk@p200300d6e7137a05a9f86c9a51dbffe8.dip0.t-ipconnect.de)
2022-10-13 09:10:11 +0200greek(~weechat@2001:df2:c900:2411:cd6e:df38:d95b:81df) (Ping timeout: 260 seconds)
2022-10-13 09:17:20 +0200MajorBiscuit(~MajorBisc@c-001-029-026.client.tudelft.eduvpn.nl)
2022-10-13 09:20:19 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-10-13 09:25:07 +0200odnes(~odnes@5-203-132-149.pat.nym.cosmote.net)
2022-10-13 09:25:30 +0200odnes(~odnes@5-203-132-149.pat.nym.cosmote.net) (Remote host closed the connection)
2022-10-13 09:29:45 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-13 09:31:52 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-10-13 09:41:03 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net) (Read error: Connection reset by peer)
2022-10-13 09:50:21 +0200yvan-sraka(~yvan-srak@2a01:c23:648c:6900:acbf:e677:c3f9:3dda)
2022-10-13 09:50:24 +0200yvan-sraka(~yvan-srak@2a01:c23:648c:6900:acbf:e677:c3f9:3dda) (Remote host closed the connection)
2022-10-13 09:51:51 +0200yvan-sraka(~yvan-srak@2a01:c23:648c:6900:acbf:e677:c3f9:3dda)
2022-10-13 09:53:10 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-10-13 09:56:26 +0200FragByte(~christian@user/fragbyte) (Quit: Quit)
2022-10-13 09:58:02 +0200burnsidesLlama(~burnsides@client-8-66.eduroam.oxuni.org.uk)
2022-10-13 09:58:28 +0200FragByte(~christian@user/fragbyte)
2022-10-13 09:59:46 +0200 <dminuoso> Mmm. traverse produces an infinite loop, while traverse_ does not *scratches his head*
2022-10-13 10:00:23 +0200 <dminuoso> Even with `traverse (\s -> pure ()) ms` it loops
2022-10-13 10:01:01 +0200 <dminuoso> Is this potentially a faulty <*> implementation?
2022-10-13 10:01:39 +0200 <dminuoso> Oh wow! I just did not define it haha.
2022-10-13 10:01:50 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 10:01:56 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
2022-10-13 10:02:12 +0200 <dminuoso> Time to turn missing methods into an actual error.
2022-10-13 10:04:58 +0200wagle(~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-13 10:05:28 +0200wagle(~wagle@quassel.wagle.io)
2022-10-13 10:06:46 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Ping timeout: 260 seconds)
2022-10-13 10:11:34 +0200razetime(~quassel@117.254.35.56) (Ping timeout: 246 seconds)
2022-10-13 10:13:39 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-10-13 10:15:33 +0200mastarija(~mastarija@2a05:4f46:e03:6000:2548:1250:b361:3427)
2022-10-13 10:16:05 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-10-13 10:19:00 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b) (Ping timeout: 264 seconds)
2022-10-13 10:19:40 +0200freeside(~mengwong@202.161.55.11)
2022-10-13 10:24:02 +0200yvan-sraka(~yvan-srak@2a01:c23:648c:6900:acbf:e677:c3f9:3dda) (Remote host closed the connection)
2022-10-13 10:27:20 +0200razetime(~quassel@117.254.35.56)
2022-10-13 10:44:32 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: leaving)
2022-10-13 10:47:00 +0200nate1(~nate@98.45.169.16)
2022-10-13 10:52:00 +0200michalz(~michalz@185.246.207.200)
2022-10-13 10:52:18 +0200nate1(~nate@98.45.169.16) (Ping timeout: 264 seconds)
2022-10-13 10:55:01 +0200 <tomsmeding> dminuoso: wait how did a missing method turn into anythin else than an error?
2022-10-13 10:55:11 +0200 <tomsmeding> (a runtime error, I mean)
2022-10-13 10:57:11 +0200burnsidesLlama(~burnsides@client-8-66.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-13 10:58:43 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-10-13 11:00:23 +0200 <dminuoso> tomsmeding: (<*>) = liftA2 id; liftA2 f x = (<*>) (fmap f x)
2022-10-13 11:00:32 +0200 <tomsmeding> lol
2022-10-13 11:00:58 +0200 <tomsmeding> surely violating MINIMAL yields a ghc warning
2022-10-13 11:01:17 +0200 <dminuoso> Yeah, but Im doing a huge rewrite. There's warnings for unused things all over the place.
2022-10-13 11:01:23 +0200 <tomsmeding> ah
2022-10-13 11:04:30 +0200burnsidesLlama(~burnsides@client-8-66.eduroam.oxuni.org.uk)
2022-10-13 11:04:33 +0200teo(~teo@user/teo)
2022-10-13 11:11:35 +0200mastarija_(~mastarija@2a05:4f46:e03:6000:fd36:f5e5:8056:5d1a)
2022-10-13 11:15:35 +0200mastarija(~mastarija@2a05:4f46:e03:6000:2548:1250:b361:3427) (Ping timeout: 268 seconds)
2022-10-13 11:17:40 +0200thyriaen(~thyriaen@2a01:aea0:dd4:4708:6245:cbff:fe9f:48b1)
2022-10-13 11:17:58 +0200burnsidesLlama(~burnsides@client-8-66.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-13 11:21:50 +0200Midjak(~Midjak@82.66.147.146)
2022-10-13 11:23:00 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 258 seconds)
2022-10-13 11:23:18 +0200burnsidesLlama(~burnsides@client-8-66.eduroam.oxuni.org.uk)
2022-10-13 11:23:41 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 11:25:07 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-13 11:25:24 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-10-13 11:28:09 +0200elbear(~lucian@188.24.138.239)
2022-10-13 11:33:15 +0200freeside(~mengwong@202.161.55.11) (Ping timeout: 252 seconds)
2022-10-13 11:36:58 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-13 11:41:41 +0200_xor(~xor@74.215.182.83) (Ping timeout: 252 seconds)
2022-10-13 11:43:14 +0200_xor(~xor@74.215.182.83)
2022-10-13 11:46:00 +0200_xor(~xor@74.215.182.83) (Read error: Connection reset by peer)
2022-10-13 11:48:38 +0200frost20(~frost@user/frost) (Quit: Client closed)
2022-10-13 11:53:32 +0200_xor(~xor@74.215.182.83)
2022-10-13 11:53:43 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
2022-10-13 11:55:36 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 264 seconds)
2022-10-13 11:55:57 +0200nschoe(~q@141.101.51.197)
2022-10-13 11:57:00 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2022-10-13 11:57:05 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-10-13 12:04:25 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
2022-10-13 12:05:58 +0200ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 240 seconds)
2022-10-13 12:06:05 +0200ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2022-10-13 12:07:43 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63)
2022-10-13 12:08:42 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 12:09:41 +0200cfricke(~cfricke@user/cfricke)
2022-10-13 12:10:57 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-13 12:12:28 +0200mncheck(~mncheck@193.224.205.254) (Read error: Connection reset by peer)
2022-10-13 12:18:08 +0200yuzhao(~yuzhao@36.112.45.73)
2022-10-13 12:21:13 +0200raehik1(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-10-13 12:40:40 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-10-13 12:41:21 +0200MajorBiscuit(~MajorBisc@c-001-029-026.client.tudelft.eduvpn.nl) (Ping timeout: 268 seconds)
2022-10-13 12:53:23 +0200burnsidesLlama(~burnsides@client-8-66.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-13 12:58:18 +0200acidjnk(~acidjnk@p200300d6e7137a05a9f86c9a51dbffe8.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-13 13:01:08 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-10-13 13:04:25 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 13:05:00 +0200acidjnk(~acidjnk@p200300d6e7137a054134d491e24e739f.dip0.t-ipconnect.de)
2022-10-13 13:05:26 +0200thyriaen(~thyriaen@2a01:aea0:dd4:4708:6245:cbff:fe9f:48b1) (Ping timeout: 268 seconds)
2022-10-13 13:06:28 +0200kenran(~user@user/kenran)
2022-10-13 13:07:15 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-10-13 13:08:17 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-10-13 13:09:06 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Ping timeout: 264 seconds)
2022-10-13 13:09:08 +0200MajorBiscuit(~MajorBisc@c-001-029-026.client.tudelft.eduvpn.nl)
2022-10-13 13:12:56 +0200 <mastarija_> Why is it not possible to use partially applied type synonyms as arguments to other type synonyms / types?
2022-10-13 13:12:56 +0200sagax(~sagax_nb@user/sagax) (Remote host closed the connection)
2022-10-13 13:14:32 +0200dr_merijn(~dr_merijn@eduroam.wifi.infracom.nl)
2022-10-13 13:15:06 +0200 <mastarija_> To make a typelevel map more useful?
2022-10-13 13:18:32 +0200ormaaj(~ormaaj@user/ormaaj) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200psydroid(~psydroid@user/psydroid) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200ericson2314(~ericson23@2001:470:69fc:105::70c) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200Matthew|m(~arathorn@2001:470:69fc:105::1f) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200fgaz(~fgaz@2001:470:69fc:105::842) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200mekeor[m](~mekeormat@2001:470:69fc:105::17e4) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200famubu[m](~famubumat@2001:470:69fc:105::1081) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200sm(~sm@plaintextaccounting/sm) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200aviladev[m](~aviladevm@2001:470:69fc:105::1:cbc7) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200kadoban(~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200jean-paul[m](~jean-paul@2001:470:69fc:105::d1ab) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200jinsun_(~jinsun@user/jinsun) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:32 +0200vladan[m](~vladanmat@2001:470:69fc:105::2:24df) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200Tisoxin(~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200ongy[m](~ongymatri@2001:470:69fc:105::5018) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200geekosaur[m](~geekosaur@xmonad/geekosaur) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200Killy(~killy@2001:470:69fc:105::2:6ec1) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200nomagno(~nomagno@2001:470:69fc:105::c1f0) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200SeanKing[m](~seankingm@2001:470:69fc:105::cf9c) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200smichel17[m](~smichel17@2001:470:69fc:105::2d32) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200FurudeRika[m](~chitandae@2001:470:69fc:105::1:6039) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200unclechu(~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200foghorn(~foghorn@user/foghorn) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:33 +0200JensPetersen[m](~juhp@2001:470:69fc:105::6e9) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200RowanG[m](~rowang077@2001:470:69fc:105::1:ca9f) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200polykernel[m](~polykerne@user/polykernel) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200xgpt[m](~xgptmatri@2001:470:69fc:105::2:619a) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200aaronv(~aaronv@user/aaronv) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200jneira[m](~jneiramat@2001:470:69fc:105::d729) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200chreekat(~chreekat@2001:470:69fc:105::16b5) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200Artem[m](~artemtype@2001:470:69fc:105::75b) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200july541[m](~july541ma@2001:470:69fc:105::1:e416) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:34 +0200elvishjerricco(~elvishjer@2001:470:69fc:105::6172) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:35 +0200jz99[m](~jz99matri@2001:470:69fc:105::1:d5f1) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:35 +0200drsooch[m](~drsoochma@2001:470:69fc:105::1:c8a1) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:35 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:36 +0200Clinton[m](~clintonme@2001:470:69fc:105::2:31d4) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:36 +0200pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:36 +0200schuelermine[m](~schuelerm@user/schuelermine) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:36 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:36 +0200weeezes[m](~weeezesma@2001:470:69fc:105::1:da65) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:40 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:41 +0200bb010g(~bb010g@2001:470:69fc:105::9a5) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:41 +0200cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:41 +0200loosh[m](~looshchat@2001:470:69fc:105::2:5ddd) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200nicmollel[m](~nicmollel@2001:470:69fc:105::1:feeb) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200Neosake[m](~neosakema@2001:470:69fc:105::2:989e) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200aidy(~aidy@2001:470:69fc:105::c7b4) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200jbggs[m](~jbggsmatr@2001:470:69fc:105::2:995f) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:42 +0200CeNiEi[m](~cenieimat@2001:470:69fc:105::1:894c) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:43 +0200disco-dave[m](~disco-dav@2001:470:69fc:105::2:1892) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:43 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:43 +0200mimi1vx[m](~osukupmat@2001:470:69fc:105::2:418d) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200olivermead[m](~olivermea@2001:470:69fc:105::2:4289) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200TrueBlue[m](~busterblu@2001:470:69fc:105::1:d7e8) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200kiri1606[m](~kiri1606m@2001:470:69fc:105::2:8ec9) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200sektor[m](~sektor@2001:470:69fc:105::2:3f60) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200lawt(~lawtonmat@2001:470:69fc:105::2:97b8) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200fr33domlover[m](~fr33domlo@2001:470:69fc:105::1:3bb6) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200rockymarine[m](~rockymari@2001:470:69fc:105::2:9a0c) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200Deide(~deide@user/deide) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200jmcantrell(~jmcantrel@user/jmcantrell) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200cafkafk[m](~cafkafkma@2001:470:69fc:105::1:cea8) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200duckie(~duckie@user/duckie) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200silky[m](~noonvande@2001:470:69fc:105::2:943c) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200M3g-mentok[m](~M3g-mento@2001:470:69fc:105::2:9a49) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:45 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:46 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:46 +0200siraben(~siraben@user/siraben) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:46 +0200BB[m](~cashmagem@2001:470:69fc:105::f6dc) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:46 +0200RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:46 +0200peddie(~peddie@2001:470:69fc:105::25d) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:47 +0200baaash[m](~baaashmat@2001:470:69fc:105::2:1e90) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:47 +0200desophos[m](~desophosm@2001:470:69fc:105::2:81d9) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:47 +0200romes[m](~romesmatr@2001:470:69fc:105::2:1660) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:47 +0200zfnmxt(~zfnmxt@2001:470:69fc:105::2b32) (Quit: Bridge terminating on SIGTERM)
2022-10-13 13:18:53 +0200 <hpc> mastarija_: you can
2022-10-13 13:19:07 +0200 <hpc> % type Foo = Maybe
2022-10-13 13:19:07 +0200 <yahb2> <no output>
2022-10-13 13:19:14 +0200 <hpc> % type Bar f = [f Int]
2022-10-13 13:19:14 +0200 <yahb2> <no output>
2022-10-13 13:19:22 +0200 <hpc> % [Nothing] :: Bar Foo
2022-10-13 13:19:22 +0200 <yahb2> [Nothing]
2022-10-13 13:19:41 +0200 <hpc> what you can't do is partially apply "type Foo a = Maybe a"
2022-10-13 13:20:00 +0200 <mastarija_> Yes, partial application is what I'm after.
2022-10-13 13:20:19 +0200 <dr_merijn> mastarija_: You can't get it
2022-10-13 13:20:21 +0200 <hpc> type aliases are basically just string replacement
2022-10-13 13:20:37 +0200 <[Leary]> There's LiberalTypeSynonyms, but I'm not sure how far it gets you.
2022-10-13 13:20:39 +0200 <hpc> if you did type Foo a = Something a B C
2022-10-13 13:20:39 +0200 <mastarija_> What's this `LiberalTypeSynonyms` about then? I thought
2022-10-13 13:20:39 +0200 <dr_merijn> Type level partial application is equivalent to type-level lambdas
2022-10-13 13:20:44 +0200 <mastarija_> Ah...
2022-10-13 13:20:48 +0200 <hpc> and then just used Foo somewhere
2022-10-13 13:20:57 +0200 <hpc> how does it get reduced?
2022-10-13 13:20:57 +0200Midjak(~Midjak@82.66.147.146) (Quit: This computer has gone to sleep)
2022-10-13 13:21:28 +0200 <mastarija_> Ah.. I get it.
2022-10-13 13:21:32 +0200 <mastarija_> Thx
2022-10-13 13:21:52 +0200 <mastarija_> Yes, type level lambda is what I'd like to have then :)
2022-10-13 13:22:00 +0200 <hpc> what dr_merijn says is right too though, sort of
2022-10-13 13:22:10 +0200 <hpc> type level lambdas let you do a LOT, more than ghc can currently handle
2022-10-13 13:22:18 +0200 <hpc> maybe when dependent types happen?
2022-10-13 13:22:20 +0200 <dr_merijn> hpc: I mean, that's a different way of phrasing your example ;)
2022-10-13 13:23:01 +0200 <dr_merijn> mastarija_: Use Idris :p
2022-10-13 13:23:16 +0200 <hpc> there's a lot of different other things that fake it in different ways
2022-10-13 13:23:21 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds)
2022-10-13 13:23:33 +0200 <hpc> data definitions can be type-level lambbdas if you squint and accept having to do all the wrapping/unwrapping yourself
2022-10-13 13:23:33 +0200 <dr_merijn> hpc: And all of them will make your life terrible :p
2022-10-13 13:23:41 +0200 <hpc> or type families
2022-10-13 13:23:48 +0200leah2(~leah@vuxu.org) (Ping timeout: 264 seconds)
2022-10-13 13:23:49 +0200fgaz(~fgaz@2001:470:69fc:105::842)
2022-10-13 13:24:09 +0200 <hpc> they all have their own limitations, and yep they'll make your life miserable :D
2022-10-13 13:24:12 +0200peddie(~peddie@2001:470:69fc:105::25d)
2022-10-13 13:24:12 +0200ericson2314(~ericson23@2001:470:69fc:105::70c)
2022-10-13 13:24:12 +0200famubu[m](~famubumat@2001:470:69fc:105::1081)
2022-10-13 13:24:12 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2022-10-13 13:24:15 +0200 <[Leary]> Defunctionalised type families aren't that bad to work with, they just aren't very clean.
2022-10-13 13:24:26 +0200zfnmxt(~zfnmxt@2001:470:69fc:105::2b32)
2022-10-13 13:24:26 +0200sm(~sm@plaintextaccounting/sm)
2022-10-13 13:24:38 +0200Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-10-13 13:24:38 +0200ongy[m](~ongymatri@2001:470:69fc:105::5018)
2022-10-13 13:24:50 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-10-13 13:24:50 +0200siraben(~siraben@user/siraben)
2022-10-13 13:25:02 +0200july541[m](~july541ma@2001:470:69fc:105::1:e416)
2022-10-13 13:25:03 +0200smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-10-13 13:25:03 +0200 <mastarija_> Hmm.. gonna try LiberalTypeSynonyms for fun
2022-10-13 13:25:15 +0200kiri1606[m](~kiri1606m@2001:470:69fc:105::2:8ec9)
2022-10-13 13:25:30 +0200chreekat(~chreekat@2001:470:69fc:105::16b5)
2022-10-13 13:25:45 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713)
2022-10-13 13:25:53 +0200 <dminuoso> What's the price for that extension?
2022-10-13 13:25:57 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291)
2022-10-13 13:26:09 +0200ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-10-13 13:26:10 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-10-13 13:26:14 +0200 <mastarija_> Price is that it doesn't work as I've intended :)
2022-10-13 13:26:25 +0200bb010g(~bb010g@2001:470:69fc:105::9a5)
2022-10-13 13:26:25 +0200oak-(~oakuniver@2001:470:69fc:105::fcd)
2022-10-13 13:26:25 +0200jmcantrell(~jmcantrel@user/jmcantrell)
2022-10-13 13:26:25 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-10-13 13:26:25 +0200jinsun_(~jinsun@user/jinsun)
2022-10-13 13:26:37 +0200romes[m](~romesmatr@2001:470:69fc:105::2:1660)
2022-10-13 13:26:37 +0200JensPetersen[m](~juhp@2001:470:69fc:105::6e9)
2022-10-13 13:26:38 +0200ormaaj(~ormaaj@user/ormaaj)
2022-10-13 13:26:38 +0200cp1313[m](~cp1313mat@2001:470:69fc:105::2:9293)
2022-10-13 13:26:38 +0200kadoban(~kadoban@user/kadoban)
2022-10-13 13:26:38 +0200BB[m](~cashmagem@2001:470:69fc:105::f6dc)
2022-10-13 13:26:50 +0200Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac)
2022-10-13 13:27:02 +0200silky[m](~noonvande@2001:470:69fc:105::2:943c)
2022-10-13 13:27:02 +0200RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57)
2022-10-13 13:27:02 +0200nicmollel[m](~nicmollel@2001:470:69fc:105::1:feeb)
2022-10-13 13:27:07 +0200jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-10-13 13:27:07 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2022-10-13 13:27:08 +0200Matthew|m(~arathorn@2001:470:69fc:105::1f)
2022-10-13 13:27:08 +0200lawt(~lawtonmat@2001:470:69fc:105::2:97b8)
2022-10-13 13:27:08 +0200RowanG[m](~rowang077@2001:470:69fc:105::1:ca9f)
2022-10-13 13:27:09 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2022-10-13 13:27:14 +0200 <mastarija_> I was hoping this'll work somehow but nope `:k! Fmap (Const Int) RandList`
2022-10-13 13:27:22 +0200Neosake[m](~neosakema@2001:470:69fc:105::2:989e)
2022-10-13 13:27:35 +0200drsooch[m](~drsoochma@2001:470:69fc:105::1:c8a1)
2022-10-13 13:27:35 +0200olivermead[m](~olivermea@2001:470:69fc:105::2:4289)
2022-10-13 13:27:36 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-10-13 13:27:49 +0200aidy(~aidy@2001:470:69fc:105::c7b4)
2022-10-13 13:28:01 +0200jbggs[m](~jbggsmatr@2001:470:69fc:105::2:995f)
2022-10-13 13:28:15 +0200CeNiEi[m](~cenieimat@2001:470:69fc:105::1:894c)
2022-10-13 13:28:26 +0200rockymarine[m](~rockymari@2001:470:69fc:105::2:9a0c)
2022-10-13 13:28:26 +0200loosh[m](~looshchat@2001:470:69fc:105::2:5ddd)
2022-10-13 13:28:40 +0200M3g-mentok[m](~M3g-mento@2001:470:69fc:105::2:9a49)
2022-10-13 13:28:45 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-10-13 13:28:52 +0200disco-dave[m](~disco-dav@2001:470:69fc:105::2:1892)
2022-10-13 13:28:53 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-10-13 13:28:53 +0200Tisoxin(~ikosit@user/ikosit)
2022-10-13 13:28:54 +0200ozkutuk[m](~ozkutuk@2001:470:69fc:105::2:9af8)
2022-10-13 13:28:54 +0200Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-10-13 13:28:54 +0200foghorn(~foghorn@user/foghorn)
2022-10-13 13:28:54 +0200unclechu(~unclechu@2001:470:69fc:105::354)
2022-10-13 13:28:55 +0200baaash[m](~baaashmat@2001:470:69fc:105::2:1e90)
2022-10-13 13:29:09 +0200mimi1vx[m](~osukupmat@2001:470:69fc:105::2:418d)
2022-10-13 13:29:09 +0200sektor[m](~sektor@2001:470:69fc:105::2:3f60)
2022-10-13 13:29:22 +0200Clinton[m](~clintonme@2001:470:69fc:105::2:31d4)
2022-10-13 13:29:22 +0200mekeor[m](~mekeormat@2001:470:69fc:105::17e4)
2022-10-13 13:29:22 +0200elvishjerricco(~elvishjer@2001:470:69fc:105::6172)
2022-10-13 13:29:22 +0200vladan[m](~vladanmat@2001:470:69fc:105::2:24df)
2022-10-13 13:29:23 +0200jz99[m](~jz99matri@2001:470:69fc:105::1:d5f1)
2022-10-13 13:29:23 +0200geekosaur[m](~geekosaur@xmonad/geekosaur)
2022-10-13 13:29:23 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d)
2022-10-13 13:29:24 +0200duckie(~duckie@user/duckie)
2022-10-13 13:29:25 +0200nomagno(~nomagno@2001:470:69fc:105::c1f0)
2022-10-13 13:29:25 +0200jean-paul[m](~jean-paul@2001:470:69fc:105::d1ab)
2022-10-13 13:29:25 +0200FurudeRika[m](~chitandae@2001:470:69fc:105::1:6039)
2022-10-13 13:29:25 +0200aviladev[m](~aviladevm@2001:470:69fc:105::1:cbc7)
2022-10-13 13:29:26 +0200Deide(~deide@user/deide)
2022-10-13 13:29:26 +0200fr33domlover[m](~fr33domlo@2001:470:69fc:105::1:3bb6)
2022-10-13 13:29:26 +0200TrueBlue[m](~busterblu@2001:470:69fc:105::1:d7e8)
2022-10-13 13:29:38 +0200desophos[m](~desophosm@2001:470:69fc:105::2:81d9)
2022-10-13 13:29:39 +0200cafkafk[m](~cafkafkma@2001:470:69fc:105::1:cea8)
2022-10-13 13:29:40 +0200Killy(~killy@2001:470:69fc:105::2:6ec1)
2022-10-13 13:29:40 +0200bgs(~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
2022-10-13 13:29:42 +0200 <dr_merijn> mastarija_: Why not Idris, though?
2022-10-13 13:29:56 +0200pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f)
2022-10-13 13:29:56 +0200SeanKing[m](~seankingm@2001:470:69fc:105::cf9c)
2022-10-13 13:29:56 +0200aaronv(~aaronv@user/aaronv)
2022-10-13 13:29:56 +0200MangoIV[m](~mangoivma@2001:470:69fc:105::2:8417)
2022-10-13 13:29:58 +0200psydroid(~psydroid@user/psydroid)
2022-10-13 13:29:58 +0200xgpt[m](~xgptmatri@2001:470:69fc:105::2:619a)
2022-10-13 13:29:58 +0200schuelermine[m](~schuelerm@user/schuelermine)
2022-10-13 13:30:12 +0200weeezes[m](~weeezesma@2001:470:69fc:105::1:da65)
2022-10-13 13:30:13 +0200polykernel[m](~polykerne@user/polykernel)
2022-10-13 13:30:16 +0200 <mastarija_> I wanted to do something in Haskell and type-level lambdas seemed like a nice thing to have for that.
2022-10-13 13:30:44 +0200 <dr_merijn> That's only relevant for Cursed Haskell, though
2022-10-13 13:30:56 +0200 <dminuoso> {-# LANGUAGE Cursed #-}
2022-10-13 13:30:58 +0200 <[exa]> mastarija_: any specific goal though? you might want just type families
2022-10-13 13:31:40 +0200 <[exa]> oh wow that extension could rename our fav function to just performIO
2022-10-13 13:31:42 +0200 <mastarija_> It's a bit hard to explain, but I just wanted a nice type level interface for my curvature library.
2022-10-13 13:32:13 +0200 <dminuoso> [exa]: Heh. Ive finally understood why it was (text still does) called inlinePerformIO.
2022-10-13 13:32:23 +0200 <dminuoso> It really inlines completely!
2022-10-13 13:32:43 +0200 <[exa]> wow
2022-10-13 13:33:10 +0200 <[exa]> mastarija_: for better typechecking or just for more verbose types for users?
2022-10-13 13:33:44 +0200 <dminuoso> A `malloc 4096` in two separate parts? Let-float and share that buffer! That is why the simplifiers main job is inlining, to enable such opportunities.
2022-10-13 13:33:45 +0200 <mastarija_> For cleaner types for the user
2022-10-13 13:33:53 +0200 <mastarija_> And better type checking
2022-10-13 13:34:00 +0200 <dminuoso> Memory saved, even! I wonder why people reported these crashes as bugs.
2022-10-13 13:34:44 +0200 <dr_merijn> mastarija_: My expert advice: don't :p
2022-10-13 13:34:50 +0200 <mastarija_> :P
2022-10-13 13:34:56 +0200 <mastarija_> Try to stop me
2022-10-13 13:35:10 +0200 <dr_merijn> One of the hardest lessons/lines to learn when doing Haskell is that "not everything should be in the type system" (at least, in Haskell)
2022-10-13 13:35:27 +0200 <hpc> this is why i do everything in the kind system
2022-10-13 13:36:12 +0200 <dr_merijn> mastarija_: I don't have to, if people want to hurt and torture themselves, that's on them, they're consenting adults :p
2022-10-13 13:36:39 +0200 <dr_merijn> I'm just providing the warning label so I can point, laugh, and say "I told you so" in the future :D
2022-10-13 13:37:01 +0200 <mastarija_> You'll see!!!!
2022-10-13 13:37:12 +0200 <hpc> lol
2022-10-13 13:38:33 +0200 <[exa]> mastarija_: the ones you have now ain't clean enough? :D
2022-10-13 13:38:50 +0200 <mastarija_> I can always go for more!!!
2022-10-13 13:38:55 +0200 <[exa]> pls paste
2022-10-13 13:39:32 +0200 <[exa]> hpc: rofl @ kind system
2022-10-13 13:42:34 +0200 <dminuoso> I prefer encoding my domain logic into the sort system.,
2022-10-13 13:42:57 +0200 <dminuoso> Everything is just BOX. Very simple
2022-10-13 13:45:46 +0200 <mastarija_> I guess I can always go with `(a n ~ f x y n) => ...`.
2022-10-13 13:48:56 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-10-13 13:49:47 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-13 13:57:40 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-13 14:02:53 +0200 <zzz> > let 0 = 1 in succ 0
2022-10-13 14:02:55 +0200 <lambdabot> 1
2022-10-13 14:04:34 +0200 <zzz> why is this not illegal?
2022-10-13 14:04:49 +0200 <dr_merijn> zzz: You're pattern matching on 0 and not using the result
2022-10-13 14:04:55 +0200 <dr_merijn> So it's a no-op
2022-10-13 14:05:11 +0200 <dr_merijn> > let x@0 = 1 in succ x
2022-10-13 14:05:12 +0200 <lambdabot> *Exception: <interactive>:3:5-11: Non-exhaustive patterns in x@0
2022-10-13 14:05:27 +0200 <dr_merijn> Your example is (to ghc) equivalent to
2022-10-13 14:05:34 +0200 <dr_merijn> > let x = 1 in succ 0
2022-10-13 14:05:35 +0200 <lambdabot> 1
2022-10-13 14:05:54 +0200 <zzz> ah weird
2022-10-13 14:06:19 +0200 <dr_merijn> zzz: The pattern match fails, but since we're a lazy language, the failure is never observed
2022-10-13 14:06:25 +0200 <zzz> abd because let bindings are irrefutable
2022-10-13 14:06:28 +0200 <zzz> right
2022-10-13 14:06:34 +0200 <dr_merijn> (and you can't observe it, because it's not named)
2022-10-13 14:07:01 +0200leah2(~leah@vuxu.org)
2022-10-13 14:08:52 +0200vn36(~vn36@123.63.203.210)
2022-10-13 14:09:32 +0200yuzhao(~yuzhao@36.112.45.73) (Ping timeout: 268 seconds)
2022-10-13 14:11:04 +0200 <zzz> there's a "pattern binds no bariables" warning though
2022-10-13 14:11:20 +0200 <zzz> *variables
2022-10-13 14:11:40 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 258 seconds)
2022-10-13 14:12:03 +0200 <dminuoso> zzz: No, its not because they are irrefutable.
2022-10-13 14:12:23 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-10-13 14:13:07 +0200 <dminuoso> `let 0 = 1 in` is very refutable.
2022-10-13 14:13:54 +0200 <dminuoso> Well. I guess if we took the word literally it is irrefutable because you cannot tractably refute it. But the term "irrefutable pattern" is a partigular standardese term from the Haskell Report.
2022-10-13 14:14:09 +0200 <dminuoso> And let 0 = 1 ` is not an irrefutable pattern according to the haskell report.
2022-10-13 14:15:57 +0200 <dminuoso> The irrefutable patterns are as follows: a variable, a wildcard, N apat where N is a constructor defined by newtype and apat is irrefutable (see Section 4.2.3), var @apat where apat is irrefutable, or of the form ̃apat (whether or not apat is irrefutable). All other patterns are refutable.
2022-10-13 14:16:17 +0200 <dminuoso> So by this wording, `0` is a refutable pattern.
2022-10-13 14:16:31 +0200 <dminuoso> And it does make sense if you think of this in another position, like `f 0 = ...`
2022-10-13 14:16:58 +0200elbear(~lucian@188.24.138.239)
2022-10-13 14:18:48 +0200 <dminuoso> Refutable let patterns can occasionally be useful, especially non-simple patterns like `let (x1, x2) = ...` or maybe on a newtype/data type `let N a = ...`
2022-10-13 14:19:38 +0200 <dminuoso> Fun fact, non-simple patterns are the reason why "adding a type signature" by itself is not generally enough around the MMR problem.
2022-10-13 14:20:24 +0200 <dminuoso> That is, even with a type signature, if you bind using a non-simple pattern, the declaration group will be restricted.
2022-10-13 14:21:24 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 14:21:32 +0200 <dminuoso> Or it can be, anyway
2022-10-13 14:22:15 +0200 <dminuoso> tomsmeding: By the way, yahb2 appears to be broken somehow.
2022-10-13 14:22:25 +0200 <dminuoso> % :set -XNoMonomorphismRestriction
2022-10-13 14:22:25 +0200 <yahb2> <interactive>:1:1: error: Not in scope: ‘Yahb2Defs.limitedPrint’
2022-10-13 14:27:36 +0200thegeekinside(~thegeekin@189.180.7.159)
2022-10-13 14:28:20 +0200sagax(~sagax_nb@user/sagax)
2022-10-13 14:33:07 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 248 seconds)
2022-10-13 14:39:55 +0200odnes(~odnes@5-203-132-149.pat.nym.cosmote.net)
2022-10-13 14:40:36 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-10-13 14:44:23 +0200odnes(~odnes@5-203-132-149.pat.nym.cosmote.net) (Client Quit)
2022-10-13 14:46:53 +0200kuribas(~user@silversquare.silversquare.eu)
2022-10-13 14:48:31 +0200nate1(~nate@98.45.169.16)
2022-10-13 14:49:28 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-10-13 14:50:24 +0200 <kuribas> what is the reason people don't like conduit?
2022-10-13 14:50:35 +0200 <kuribas> isn't it the easiest for beginners?
2022-10-13 14:51:25 +0200 <dr_merijn> kuribas: WHo doesn't like it, besides maerwald?
2022-10-13 14:52:07 +0200 <kuribas> right :)
2022-10-13 14:54:00 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-13 14:55:00 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 264 seconds)
2022-10-13 14:55:49 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-10-13 14:55:50 +0200 <lortabac> as a streaming noob, I find the 'streaming' library easier to understand
2022-10-13 14:56:22 +0200 <lortabac> I spent 10 minutes on each, and I opted for 'streaming' because it was the one I understood the best
2022-10-13 14:56:41 +0200 <dminuoso> They are somewhat different though
2022-10-13 14:56:46 +0200 <dminuoso> That is, they do different things
2022-10-13 14:56:53 +0200 <lortabac> my needs are very simple though
2022-10-13 14:58:18 +0200 <lortabac> dminuoso: possible, I was just answering to "isn't it the easiest for beginners"
2022-10-13 14:58:45 +0200 <kuribas> lortabac: sure, if it fits your usecase well...
2022-10-13 14:58:49 +0200 <lortabac> I'd say no, if by easy we mean it has a low learning curve
2022-10-13 14:59:21 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-13 15:00:10 +0200 <kuribas> if you think of a stream as a unix pipe, it looks the easiest with conduit.
2022-10-13 15:00:12 +0200 <dminuoso> Its interesting, because I always thought `streaming` looked strange and conduit seemed easier
2022-10-13 15:00:34 +0200 <kuribas> you wait for some input, then yield some output.
2022-10-13 15:00:44 +0200 <dminuoso> Especially since it has a good interface for regulating the chunks in the pipeline (waiting, coalescing, yielding more)
2022-10-13 15:00:57 +0200 <dminuoso> Im sure `streaming` can do all those things too, but I find all the types to be very confusing
2022-10-13 15:01:07 +0200 <dr_merijn> dminuoso: same
2022-10-13 15:12:32 +0200vn36(~vn36@123.63.203.210)
2022-10-13 15:12:57 +0200acidjnk_new(~acidjnk@p200300d6e7137a05b92ccfa0afbc3219.dip0.t-ipconnect.de)
2022-10-13 15:13:47 +0200kuribas`(~user@silversquare.silversquare.eu)
2022-10-13 15:14:13 +0200kuribas(~user@silversquare.silversquare.eu) (Read error: Connection reset by peer)
2022-10-13 15:16:54 +0200acidjnk(~acidjnk@p200300d6e7137a054134d491e24e739f.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2022-10-13 15:18:32 +0200acidjnk_new(~acidjnk@p200300d6e7137a05b92ccfa0afbc3219.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-13 15:19:46 +0200kuribas`(~user@silversquare.silversquare.eu) (Ping timeout: 268 seconds)
2022-10-13 15:20:21 +0200elbear(~lucian@188.24.138.239)
2022-10-13 15:21:56 +0200yvan-sraka(~yvan-srak@46.183.103.8)
2022-10-13 15:22:04 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: o/)
2022-10-13 15:23:25 +0200yvan-sraka(~yvan-srak@46.183.103.8) (Remote host closed the connection)
2022-10-13 15:24:26 +0200yvan-sraka(~yvan-srak@46.183.103.8)
2022-10-13 15:30:01 +0200Sgeo(~Sgeo@user/sgeo)
2022-10-13 15:32:21 +0200kuribas(~user@silversquare.silversquare.eu)
2022-10-13 15:36:23 +0200greek(~weechat@sp49-98-40-21.msd.spmode.ne.jp)
2022-10-13 15:39:26 +0200greeknikos_k
2022-10-13 15:40:20 +0200zzz_
2022-10-13 15:40:43 +0200_zzz
2022-10-13 15:41:29 +0200razetime(~quassel@117.254.35.56) (Ping timeout: 252 seconds)
2022-10-13 15:43:33 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2022-10-13 15:44:28 +0200nikos_k(~weechat@sp49-98-40-21.msd.spmode.ne.jp) (Quit: WeeChat 3.7)
2022-10-13 15:45:03 +0200nikos_k(~weechat@sp49-98-40-21.msd.spmode.ne.jp)
2022-10-13 15:47:22 +0200nikos_knikos_kz
2022-10-13 15:49:42 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: o/)
2022-10-13 15:50:07 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-13 15:50:07 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-13 15:50:07 +0200wroathe(~wroathe@user/wroathe)
2022-10-13 15:53:21 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2022-10-13 15:54:33 +0200nikos_kz(~weechat@sp49-98-40-21.msd.spmode.ne.jp) (Quit: WeeChat 3.7)
2022-10-13 15:54:51 +0200thegreek(~weechat@sp49-98-40-21.msd.spmode.ne.jp)
2022-10-13 15:55:02 +0200thegreek(~weechat@sp49-98-40-21.msd.spmode.ne.jp) (Client Quit)
2022-10-13 15:55:20 +0200thegreek(~weechat@sp49-98-40-21.msd.spmode.ne.jp)
2022-10-13 15:56:19 +0200thegreek(~weechat@sp49-98-40-21.msd.spmode.ne.jp) (Client Quit)
2022-10-13 15:57:22 +0200nikos_kz(~weechat@sp49-98-40-21.msd.spmode.ne.jp)
2022-10-13 15:57:34 +0200tam-carre(~tam-carre@2a01cb088a83b300a322b3f387318318.ipv6.abo.wanadoo.fr)
2022-10-13 16:01:41 +0200weeezes[m](~weeezesma@2001:470:69fc:105::1:da65) (*.net *.split)
2022-10-13 16:01:41 +0200CeNiEi[m](~cenieimat@2001:470:69fc:105::1:894c) (*.net *.split)
2022-10-13 16:01:41 +0200aaronv(~aaronv@user/aaronv) (*.net *.split)
2022-10-13 16:01:41 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (*.net *.split)
2022-10-13 16:01:41 +0200elvishjerricco(~elvishjer@2001:470:69fc:105::6172) (*.net *.split)
2022-10-13 16:01:41 +0200RowanG[m](~rowang077@2001:470:69fc:105::1:ca9f) (*.net *.split)
2022-10-13 16:01:41 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713) (*.net *.split)
2022-10-13 16:01:41 +0200SeanKing[m](~seankingm@2001:470:69fc:105::cf9c) (*.net *.split)
2022-10-13 16:01:41 +0200peddie(~peddie@2001:470:69fc:105::25d) (*.net *.split)
2022-10-13 16:01:41 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (*.net *.split)
2022-10-13 16:01:41 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:4590:bf86:dae:5953) (*.net *.split)
2022-10-13 16:01:41 +0200chomwitt(~chomwitt@2a02:587:dc0c:c200:a0a8:ed7f:a699:91a5) (*.net *.split)
2022-10-13 16:01:41 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (*.net *.split)
2022-10-13 16:01:41 +0200caryhartline(~caryhartl@2600:1700:2d0:8d30:c527:6c1:a00c:e1d4) (*.net *.split)
2022-10-13 16:01:41 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (*.net *.split)
2022-10-13 16:01:41 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet) (*.net *.split)
2022-10-13 16:01:41 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (*.net *.split)
2022-10-13 16:01:41 +0200Hafydd(~Hafydd@user/hafydd) (*.net *.split)
2022-10-13 16:01:41 +0200img(~img@user/img) (*.net *.split)
2022-10-13 16:01:41 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (*.net *.split)
2022-10-13 16:01:41 +0200Taneb(~Taneb@runciman.hacksoc.org) (*.net *.split)
2022-10-13 16:01:41 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (*.net *.split)
2022-10-13 16:01:41 +0200abrar(~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (*.net *.split)
2022-10-13 16:01:41 +0200lisq(~quassel@lis.moe) (*.net *.split)
2022-10-13 16:01:41 +0200jackdk(sid373013@cssa/jackdk) (*.net *.split)
2022-10-13 16:01:41 +0200megeve(sid523379@id-523379.hampstead.irccloud.com) (*.net *.split)
2022-10-13 16:01:41 +0200jakesyl____(sid56879@id-56879.hampstead.irccloud.com) (*.net *.split)
2022-10-13 16:01:41 +0200tritlo(sid58727@user/tritlo) (*.net *.split)
2022-10-13 16:01:41 +0200jmct(sid160793@id-160793.tinside.irccloud.com) (*.net *.split)
2022-10-13 16:01:41 +0200hays(rootvegeta@fsf/member/hays) (*.net *.split)
2022-10-13 16:01:41 +0200sm2n(ae95cb1267@user/sm2n) (*.net *.split)
2022-10-13 16:01:41 +0200Arsen(arsen@managarm/dev/Arsen) (*.net *.split)
2022-10-13 16:01:41 +0200shreyasminocha(51fdc93eda@user/shreyasminocha) (*.net *.split)
2022-10-13 16:01:41 +0200remexre(~remexre@user/remexre) (*.net *.split)
2022-10-13 16:01:41 +0200Me-me(~me-me@user/me-me) (*.net *.split)
2022-10-13 16:01:41 +0200ghoulpine(xfnw@tilde.team) (*.net *.split)
2022-10-13 16:01:41 +0200ssw(~ssw@user/ssw) (*.net *.split)
2022-10-13 16:01:41 +0200dibblego(~dibblego@haskell/developer/dibblego) (*.net *.split)
2022-10-13 16:01:41 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split)
2022-10-13 16:01:41 +0200rodental(~rodental@38.146.5.222) (*.net *.split)
2022-10-13 16:01:41 +0200AkechiShiro(~licht@user/akechishiro) (*.net *.split)
2022-10-13 16:01:41 +0200hnOsmium0001(uid453710@user/hnOsmium0001) (*.net *.split)
2022-10-13 16:01:53 +0200img(~img@2405:6580:b1c0:2500:b1d0:6383:edaf:d54f)
2022-10-13 16:01:53 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-10-13 16:01:55 +0200dibblego(~dibblego@122-199-1-30.ip4.superloop.com)
2022-10-13 16:01:56 +0200img(~img@2405:6580:b1c0:2500:b1d0:6383:edaf:d54f) (Changing host)
2022-10-13 16:01:56 +0200img(~img@user/img)
2022-10-13 16:01:57 +0200Arsen(~arsen@managarm/dev/Arsen)
2022-10-13 16:01:57 +0200lisq(~quassel@lis.moe)
2022-10-13 16:02:00 +0200remexre(~remexre@user/remexre)
2022-10-13 16:02:02 +0200sm2n(ae95cb1267@user/sm2n)
2022-10-13 16:02:03 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:4590:bf86:dae:5953)
2022-10-13 16:02:04 +0200shreyasminocha(51fdc93eda@user/shreyasminocha)
2022-10-13 16:02:04 +0200tritlo(sid58727@id-58727.hampstead.irccloud.com)
2022-10-13 16:02:04 +0200jmct(sid160793@id-160793.tinside.irccloud.com)
2022-10-13 16:02:05 +0200megeve(sid523379@id-523379.hampstead.irccloud.com)
2022-10-13 16:02:09 +0200dibblego(~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
2022-10-13 16:02:09 +0200dibblego(~dibblego@haskell/developer/dibblego)
2022-10-13 16:02:12 +0200Hafydd(~Hafydd@2001:41d0:305:2100::31aa)
2022-10-13 16:02:12 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2022-10-13 16:02:13 +0200farn(~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
2022-10-13 16:02:17 +0200abrar(~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
2022-10-13 16:02:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-13 16:02:19 +0200AkechiShiro(~licht@2a01:e0a:5f9:9681:1473:3dff:fe42:56a9)
2022-10-13 16:02:24 +0200tritlo(sid58727@id-58727.hampstead.irccloud.com) (Changing host)
2022-10-13 16:02:24 +0200tritlo(sid58727@user/tritlo)
2022-10-13 16:02:26 +0200Me-me(~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
2022-10-13 16:02:32 +0200jakesyl____(sid56879@id-56879.hampstead.irccloud.com)
2022-10-13 16:02:34 +0200Hafydd(~Hafydd@2001:41d0:305:2100::31aa) (Signing in (Hafydd))
2022-10-13 16:02:34 +0200Hafydd(~Hafydd@user/hafydd)
2022-10-13 16:02:34 +0200SeanKing[m](~seankingm@2001:470:69fc:105::cf9c)
2022-10-13 16:02:40 +0200jackdk(sid373013@id-373013.tinside.irccloud.com)
2022-10-13 16:02:58 +0200Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2022-10-13 16:03:01 +0200jackdk(sid373013@id-373013.tinside.irccloud.com) (Changing host)
2022-10-13 16:03:01 +0200jackdk(sid373013@cssa/jackdk)
2022-10-13 16:03:04 +0200hnOsmium0001(uid453710@user/hnOsmium0001)
2022-10-13 16:03:16 +0200chomwitt(~chomwitt@2a02:587:dc0c:c200:a0a8:ed7f:a699:91a5)
2022-10-13 16:03:23 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-10-13 16:03:26 +0200Taneb(~Taneb@runciman.hacksoc.org)
2022-10-13 16:03:32 +0200aaronv(~aaronv@user/aaronv)
2022-10-13 16:03:35 +0200ssw(~ssw@user/ssw)
2022-10-13 16:03:40 +0200elvishjerricco(~elvishjer@2001:470:69fc:105::6172)
2022-10-13 16:03:51 +0200ghoulpine(xfnw@tilde.team)
2022-10-13 16:03:52 +0200peddie(~peddie@2001:470:69fc:105::25d)
2022-10-13 16:03:59 +0200expipiplus1(~expipiplu@2001:470:69fc:105::d713)
2022-10-13 16:04:06 +0200CeNiEi[m](~cenieimat@2001:470:69fc:105::1:894c)
2022-10-13 16:04:14 +0200weeezes[m](~weeezesma@2001:470:69fc:105::1:da65)
2022-10-13 16:04:41 +0200RowanG[m](~rowang077@2001:470:69fc:105::1:ca9f)
2022-10-13 16:05:46 +0200nikos_kz(~weechat@sp49-98-40-21.msd.spmode.ne.jp) (Ping timeout: 246 seconds)
2022-10-13 16:05:48 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 264 seconds)
2022-10-13 16:05:55 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 248 seconds)
2022-10-13 16:07:12 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net)
2022-10-13 16:09:19 +0200sagax(~sagax_nb@user/sagax) (Remote host closed the connection)
2022-10-13 16:12:05 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2022-10-13 16:13:10 +0200Arsen(~arsen@managarm/dev/Arsen) (Quit: Quit.)
2022-10-13 16:17:04 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-10-13 16:19:51 +0200Arsen(arsen@managarm/dev/Arsen)
2022-10-13 16:22:47 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-13 16:28:13 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-10-13 16:29:26 +0200xff0x(~xff0x@ai071162.d.east.v6connect.net)
2022-10-13 16:32:22 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 246 seconds)
2022-10-13 16:37:20 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-13 16:42:05 +0200Midjak(~Midjak@82.66.147.146)
2022-10-13 16:45:02 +0200acidjnk_new(~acidjnk@p200300d6e7137a99955eeb096340e161.dip0.t-ipconnect.de)
2022-10-13 16:46:45 +0200burnsidesLlama(~burnsides@client-8-85.eduroam.oxuni.org.uk)
2022-10-13 16:49:17 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-10-13 16:49:22 +0200nate1(~nate@98.45.169.16)
2022-10-13 16:54:11 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-10-13 16:55:21 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-10-13 16:57:10 +0200ec(~ec@gateway/tor-sasl/ec)
2022-10-13 16:58:01 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 17:00:06 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 264 seconds)
2022-10-13 17:00:09 +0200burnsidesLlama(~burnsides@client-8-85.eduroam.oxuni.org.uk) (Remote host closed the connection)
2022-10-13 17:01:04 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
2022-10-13 17:02:49 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-13 17:07:04 +0200mastarija_(~mastarija@2a05:4f46:e03:6000:fd36:f5e5:8056:5d1a) (Quit: Leaving)
2022-10-13 17:09:14 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0)
2022-10-13 17:09:33 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0) (Client Quit)
2022-10-13 17:09:49 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0)
2022-10-13 17:13:32 +0200mesaoptimizer(apotheosis@user/PapuaHardyNet)
2022-10-13 17:15:41 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 17:16:05 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df)
2022-10-13 17:20:07 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-13 17:22:11 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0) (Ping timeout: 248 seconds)
2022-10-13 17:25:11 +0200razetime(~quassel@117.254.35.56)
2022-10-13 17:29:45 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:4590:bf86:dae:5953) (Quit: WeeChat 2.8)
2022-10-13 17:33:34 +0200vn36(~vn36@123.63.203.210)
2022-10-13 17:37:33 +0200tam-carre(~tam-carre@2a01cb088a83b300a322b3f387318318.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-10-13 17:37:50 +0200tam-carre(~tam-carre@2a01cb088a83b300a322b3f387318318.ipv6.abo.wanadoo.fr)
2022-10-13 17:38:05 +0200lagash(lagash@lagash.shelltalk.net) (Remote host closed the connection)
2022-10-13 17:41:31 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 17:42:58 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 17:43:41 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-10-13 17:44:36 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.6)
2022-10-13 17:46:11 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-10-13 17:47:36 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0)
2022-10-13 17:47:51 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0) (Client Quit)
2022-10-13 17:48:11 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-10-13 17:51:01 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0)
2022-10-13 17:51:38 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de)
2022-10-13 17:53:43 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Remote host closed the connection)
2022-10-13 17:55:06 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0) (Client Quit)
2022-10-13 17:55:14 +0200dr_merijn(~dr_merijn@eduroam.wifi.infracom.nl) (Ping timeout: 268 seconds)
2022-10-13 17:55:54 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0)
2022-10-13 17:56:11 +0200nikos_kz(~weechat@240a:61:1112:b9b3:123b:954c:fff7:8d0) (Client Quit)
2022-10-13 17:56:38 +0200nikos_kz(~nikos_kz@sp27-230-96-33.tck01.spmode.ne.jp)
2022-10-13 18:06:20 +0200nikos_kz(~nikos_kz@sp27-230-96-33.tck01.spmode.ne.jp) (Quit: leaving)
2022-10-13 18:10:22 +0200yvan-sraka(~yvan-srak@46.183.103.8) (Ping timeout: 244 seconds)
2022-10-13 18:10:47 +0200lagash(lagash@lagash.shelltalk.net)
2022-10-13 18:13:05 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member) (Quit: o/)
2022-10-13 18:14:54 +0200Feuermagier_(~Feuermagi@213.149.82.60)
2022-10-13 18:15:12 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-10-13 18:17:49 +0200kuribas(~user@silversquare.silversquare.eu) (Remote host closed the connection)
2022-10-13 18:18:03 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds)
2022-10-13 18:18:26 +0200Sciencentistguy(~sciencent@hacksoc/ordinary-member)
2022-10-13 18:19:28 +0200teo(~teo@user/teo) (Ping timeout: 246 seconds)
2022-10-13 18:20:30 +0200MajorBiscuit(~MajorBisc@c-001-029-026.client.tudelft.eduvpn.nl) (Ping timeout: 264 seconds)
2022-10-13 18:22:31 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
2022-10-13 18:27:15 +0200MajorBiscuit(~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 248 seconds)
2022-10-13 18:29:43 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2022-10-13 18:30:02 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-10-13 18:32:14 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de) (Remote host closed the connection)
2022-10-13 18:33:35 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-10-13 18:37:12 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 18:37:47 +0200elbear(~lucian@188.24.138.239)
2022-10-13 18:38:00 +0200werneta(~werneta@137.78.30.207)
2022-10-13 18:39:02 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 18:42:43 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 18:42:59 +0200jespada(~jespada@nmal-24-b2-v4wan-166357-cust1764.vm24.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
2022-10-13 18:43:07 +0200loras(~loras@c-73-139-125-125.hsd1.fl.comcast.net)
2022-10-13 18:44:34 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 268 seconds)
2022-10-13 18:48:07 +0200nschoe(~q@141.101.51.197) (Ping timeout: 252 seconds)
2022-10-13 18:55:50 +0200econo(uid147250@user/econo)
2022-10-13 18:57:21 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 250 seconds)
2022-10-13 19:00:14 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-13 19:01:15 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-10-13 19:03:37 +0200elbear(~lucian@188.24.138.239)
2022-10-13 19:04:19 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 19:07:25 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-10-13 19:08:46 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 19:12:03 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 248 seconds)
2022-10-13 19:12:08 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Remote host closed the connection)
2022-10-13 19:14:27 +0200 <monochrom> https://discourse.haskell.org/t/ann-hugs-for-macos-x86-via-nix-flakes/5171?u=taylorfausak
2022-10-13 19:14:33 +0200 <monochrom> Hugs is not dead :)
2022-10-13 19:19:34 +0200vn36(~vn36@123.63.203.210)
2022-10-13 19:24:06 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-10-13 19:27:32 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 19:27:55 +0200 <dolio> Only mostly dead.
2022-10-13 19:33:45 +0200beteigeuze(~Thunderbi@2001:8a0:61b5:6101:f0c:e4e3:bfdc:91df) (Ping timeout: 250 seconds)
2022-10-13 19:33:56 +0200fserucas(~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
2022-10-13 19:35:34 +0200 <geekosaur> still gets used by intro haskell courses
2022-10-13 19:35:57 +0200 <geekosaur> since it doesn't undergo changes like Num losing Eq and Show, much less FAM
2022-10-13 19:36:08 +0200 <L29Ah> haskell is so badass it has a separate interpreter just for intro courses
2022-10-13 19:36:16 +0200 <geekosaur> or FTP
2022-10-13 19:36:39 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-10-13 19:37:06 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130)
2022-10-13 19:46:02 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-10-13 19:52:12 +0200elbear(~lucian@188.24.138.239)
2022-10-13 19:55:28 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-10-13 19:55:28 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-10-13 19:55:28 +0200wroathe(~wroathe@user/wroathe)
2022-10-13 19:55:35 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 252 seconds)
2022-10-13 19:56:15 +0200zxx7529(~Thunderbi@user/zxx7529)
2022-10-13 19:56:45 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 19:57:17 +0200vn36(~vn36@123.63.203.210)
2022-10-13 19:57:41 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-10-13 19:59:14 +0200 <EvanR> hell, why not a whole separate compiler for intro courses. And then we use that compiler
2022-10-13 19:59:53 +0200mixphix(~mixphix@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca)
2022-10-13 19:59:54 +0200zxx7529(~Thunderbi@user/zxx7529) (Client Quit)
2022-10-13 20:00:02 +0200DDR(~DDR@2604:3d08:4c7f:8250:815e:1b43:3414:7c9c)
2022-10-13 20:00:56 +0200 <monochrom> Racket has an IDE just for intro courses. >:)
2022-10-13 20:01:18 +0200 <monochrom> And Python, I believe 2 or 3.
2022-10-13 20:01:54 +0200 <L29Ah> python has a separate language version for intro courses
2022-10-13 20:02:01 +0200 <EvanR> the intro tools have good error messages. When you graduate, you can upgrade to the one with worse error messages
2022-10-13 20:02:06 +0200razetime(~quassel@117.254.35.56) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-10-13 20:02:33 +0200 <monochrom> I would s/worse/advanced/ but sure :)
2022-10-13 20:02:42 +0200 <L29Ah> with `print` as a part of syntax to simplify education
2022-10-13 20:02:47 +0200 <EvanR> yes we all speak compiler here
2022-10-13 20:04:44 +0200raym(~aritra@user/raym) (Ping timeout: 268 seconds)
2022-10-13 20:04:45 +0200hays(rootvegeta@fsf/member/hays)
2022-10-13 20:05:04 +0200raym(~aritra@user/raym)
2022-10-13 20:05:45 +0200 <EvanR> actually ghc is really good, rarely sending me on a wild goose chase due to missing brackets, or telling me overly specialized advice not pertaining in any way to the actual problem like some systems
2022-10-13 20:09:05 +0200kenran(~user@user/kenran) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
2022-10-13 20:12:27 +0200mixphix(~mixphix@bras-base-otwaon237cw-grc-11-174-91-129-69.dsl.bell.ca) (Quit: Lost terminal)
2022-10-13 20:13:20 +0200 <geekosaur> hm. don't we still have Helium somewhere?
2022-10-13 20:13:22 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 268 seconds)
2022-10-13 20:14:39 +0200mbuf(~Shakthi@49.205.80.14) (Quit: Leaving)
2022-10-13 20:15:11 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 260 seconds)
2022-10-13 20:16:11 +0200stackdroid18(14094@user/stackdroid)
2022-10-13 20:20:47 +0200vn36(~vn36@123.63.203.210)
2022-10-13 20:22:12 +0200zer0bitz(~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
2022-10-13 20:22:28 +0200ski. o O ( "“Well it just so happens that your friend here is only mostly dead. There’s a big difference between mostly dead and all dead… Now, mostly dead is slightly alive. Now, all dead — well, with all dead, there’s usually only one thing that you can do.”,“What’s that?”,“Go through his clothes and look for loose change!”" -- “The Princess Bride” )
2022-10-13 20:23:17 +0200elbear(~lucian@188.24.138.239)
2022-10-13 20:24:13 +0200byorgeywas thinking of that scene too
2022-10-13 20:24:56 +0200 <byorgey> https://github.com/Helium4Haskell/helium
2022-10-13 20:25:44 +0200yvan-sraka(~yvan-srak@46.183.103.17)
2022-10-13 20:28:27 +0200coot(~coot@213.134.171.3)
2022-10-13 20:28:40 +0200coot(~coot@213.134.171.3) (Remote host closed the connection)
2022-10-13 20:28:51 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-10-13 20:29:17 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-10-13 20:31:31 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 252 seconds)
2022-10-13 20:31:38 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Remote host closed the connection)
2022-10-13 20:32:47 +0200stackdroid18(14094@user/stackdroid)
2022-10-13 20:38:06 +0200 <ski> @where Helium
2022-10-13 20:38:06 +0200 <lambdabot> http://www.cs.uu.nl/research/projects/helium/
2022-10-13 20:38:17 +0200 <ski> @where+ Helium Haskell subset for beginners, improved diagnostics (incl. eDSLs). See <https://github.com/Helium4Haskell/helium>,<https://hackage.haskell.org/package/helium>,<https://web.archive.org/web/20160624222240/http://foswiki.cs.uu.nl/foswiki/Helium/WebHome>,<https://web.archive.org/web/20210907032911/http://www.cs.uu.nl/research/projects/helium/>,<https://www.open.ou.nl/bhr/HeliumCompiler.html>
2022-10-13 20:38:17 +0200 <lambdabot> It is forever etched in my memory.
2022-10-13 20:38:34 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de)
2022-10-13 20:39:59 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2022-10-13 20:40:30 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-10-13 20:42:10 +0200 <EvanR> ski, here is what I managed for abstract Doc https://paste.tomsmeding.com/qbWG517C
2022-10-13 20:43:46 +0200DDR(~DDR@2604:3d08:4c7f:8250:815e:1b43:3414:7c9c) (Ping timeout: 260 seconds)
2022-10-13 20:44:36 +0200 <ski> (would it make sense to also parameterize `String' in `text' (for use with `Text' instead, e.g.) ?)
2022-10-13 20:45:36 +0200 <ski> (i'd eta `nestStr', i think)
2022-10-13 20:46:26 +0200 <EvanR> text :: String -> Doc, well I was wondering what the meaning of Doc even is xD
2022-10-13 20:47:04 +0200 <EvanR> or do you mean just allow String, Text, ByteString instead of String. Which all have some kind of newline character
2022-10-13 20:47:56 +0200 <EvanR> I didn't know if the out parameter was necessary actually
2022-10-13 20:48:05 +0200 <EvanR> assuming String as in the paper
2022-10-13 20:49:34 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 20:50:46 +0200nate1(~nate@98.45.169.16)
2022-10-13 20:53:25 +0200 <ski> > unfoldr (\s -> do guard (not (null s)); Just (drop 1 <$> break ('\n' ==) s)) "foo\nbar\nbaz"
2022-10-13 20:53:27 +0200 <lambdabot> ["foo","bar","baz"]
2022-10-13 20:53:30 +0200 <ski> > (intercalate ('\n' : replicate 3 ' ') . lines) "foo\nbar\nbaz"
2022-10-13 20:53:32 +0200 <lambdabot> "foo\n bar\n baz"
2022-10-13 20:53:39 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv)
2022-10-13 20:53:53 +0200raym(~aritra@user/raym) (Ping timeout: 252 seconds)
2022-10-13 20:54:41 +0200raym(~aritra@user/raym)
2022-10-13 20:55:13 +0200 <ski> well, seeing as you parameterized `out', i was wondering why not also the input to `text'
2022-10-13 20:55:39 +0200 <EvanR> I thought out was required for some thing else... apparently not, I just removed it xD
2022-10-13 20:55:54 +0200 <ski> @src intercalate
2022-10-13 20:55:54 +0200 <lambdabot> intercalate xs xss = concat (intersperse xs xss)
2022-10-13 20:55:58 +0200 <EvanR> https://paste.tomsmeding.com/k9UM5UI6
2022-10-13 20:56:01 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-10-13 20:56:24 +0200 <EvanR> I finally remember the difference between intersperse and intercalate enough to get this code right, and it's the wrong one xD
2022-10-13 20:58:02 +0200zmt00(~zmt00@user/zmt00)
2022-10-13 20:58:07 +0200ski. o O ( "Yet Another Tabs v. Spaces Debate" ("I mix tabs and spaces") <http://dmwit.com/tabs/> )
2022-10-13 20:59:23 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
2022-10-13 20:59:50 +0200 <hpc> i mix vertical tabs and nonbreaking spaces
2022-10-13 21:00:05 +0200 <ski> hehe
2022-10-13 21:00:15 +0200skiuses form feeds, sometimes
2022-10-13 21:00:23 +0200 <hpc> ooh, that's a good one
2022-10-13 21:00:28 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:7370:8686:6424:8f5a)
2022-10-13 21:00:57 +0200 <hpc> i end all my lines with a bel character because typewriters ding when they reach the end
2022-10-13 21:02:17 +0200 <EvanR> so in one sense Doc and operations seem like they could be abstract, but then line :: Doc seems to represent "a newline character"... and there is only one concatenation operator instead of horizontal and vertical concat of Doc. So the only meaning I can come up with is "this is basically a string"
2022-10-13 21:02:28 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2022-10-13 21:02:35 +0200 <EvanR> and the abstraction is used by wadler just to get more performance than String
2022-10-13 21:03:04 +0200 <EvanR> i.e. Doc is a faster String. Which is unsatisfying
2022-10-13 21:03:06 +0200 <ski> (Emacs has `C-x [',`C-x ]',`C-x l' for handling (navigation and line count for) multiple pages. i've thought about trying to make an Emacs mode that will only displace the current page in the window. used with `M-x follow-mode' it would show a sequence of adjacent pages in the sequence of windows showing the buffer)
2022-10-13 21:03:27 +0200 <ski> (s/mode/minor mode/)
2022-10-13 21:03:36 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-10-13 21:04:30 +0200 <ski> (now i'm also wondering if `nest' would work with negative counts)
2022-10-13 21:05:06 +0200 <EvanR> in the prior work section he mentions a system using negative indentation, and how it's not as elegant xD
2022-10-13 21:05:26 +0200 <EvanR> at least they it was used in that previous paper, to unindent after accidentally indenting too much
2022-10-13 21:05:40 +0200 <EvanR> the way*
2022-10-13 21:07:00 +0200ski. o O ( .. should files be terminated by an EOT ? )
2022-10-13 21:07:45 +0200 <geekosaur[m]> back in the day, DOS files were terminated with CTRL-Z
2022-10-13 21:07:51 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-13 21:08:11 +0200 <ski> text files, not binary ones ?
2022-10-13 21:08:37 +0200 <ski> > '\^D'
2022-10-13 21:08:39 +0200 <lambdabot> '\EOT'
2022-10-13 21:08:43 +0200 <geekosaur[m]> I think only text, yeh. binary files had to be a multiple of the disk block size
2022-10-13 21:09:14 +0200 <geekosaur[m]> (well, so did text files, so ^Z had to be used to mark the actual end of file)
2022-10-13 21:09:34 +0200 <ski> EvanR : didn't Wadler have both vertical and horizontal ? (or am i thinking of another paper ?
2022-10-13 21:09:45 +0200 <ski> )
2022-10-13 21:09:45 +0200 <EvanR> that was the prior paper by...
2022-10-13 21:10:03 +0200 <EvanR> Hughes
2022-10-13 21:10:12 +0200 <ski> ah, ic
2022-10-13 21:10:29 +0200tam-carre(~tam-carre@2a01cb088a83b300a322b3f387318318.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-10-13 21:10:45 +0200 <ski> "how it's not as elegant" -- in which sense ?
2022-10-13 21:10:52 +0200 <ski> hm
2022-10-13 21:11:37 +0200 <EvanR> it doesn't say that
2022-10-13 21:11:39 +0200 <ski> there's also stuff like line continuation, "heredocs", &c.
2022-10-13 21:11:46 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-10-13 21:11:48 +0200 <EvanR> but it does say Hughes version is more complex and at the end
2022-10-13 21:11:54 +0200 <ski> > "\ \"
2022-10-13 21:11:55 +0200 <lambdabot> ""
2022-10-13 21:12:08 +0200 <EvanR> "One might say, the prettier printer hatched in Bird’s nest" (not Hughes')
2022-10-13 21:13:16 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-10-13 21:13:52 +0200 <ski> > read "\"\\ \\\"" :: String
2022-10-13 21:13:53 +0200 <lambdabot> ""
2022-10-13 21:13:58 +0200 <ski> > read "\"\\ \n \\\"" :: String
2022-10-13 21:14:00 +0200 <lambdabot> ""
2022-10-13 21:14:07 +0200 <EvanR> what in the heck
2022-10-13 21:15:33 +0200 <ski> you can insert a backslash, followed by whitespace (e.g. including a newline, and spaces and tabs), followed by another backslash, and it'll get elided
2022-10-13 21:15:59 +0200 <ski> > "\&" -- other quirk thing
2022-10-13 21:16:01 +0200 <lambdabot> ""
2022-10-13 21:16:22 +0200yvan-sraka(~yvan-srak@46.183.103.17) (Ping timeout: 244 seconds)
2022-10-13 21:16:52 +0200 <ski> > "\SOH\SO\&H\x0041\x00\&41"
2022-10-13 21:16:54 +0200 <lambdabot> "\SOH\SO\&HA\NUL41"
2022-10-13 21:18:06 +0200 <EvanR> soh so ha nul
2022-10-13 21:18:32 +0200 <ski> > read "\"\\ --\n \\\"" :: String
2022-10-13 21:18:34 +0200 <lambdabot> "*Exception: Prelude.read: no parse
2022-10-13 21:18:34 +0200 <ski> > read "\"\\ {--} \\\"" :: String
2022-10-13 21:18:35 +0200 <lambdabot> "*Exception: Prelude.read: no parse
2022-10-13 21:18:40 +0200 <EvanR> this is where the haskell ouroboros zip `ap` tail appears
2022-10-13 21:18:52 +0200 <ski> hah
2022-10-13 21:19:05 +0200 <hpc> @quote aztec
2022-10-13 21:19:06 +0200 <lambdabot> alpounet says: map succ/pred is a scandinavian name generator or what? ... well, scandinavian and aztec
2022-10-13 21:19:12 +0200 <hpc> :(
2022-10-13 21:19:32 +0200 <ski> @quote aztec.god
2022-10-13 21:19:32 +0200 <lambdabot> quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers
2022-10-13 21:20:04 +0200 <Vq> Must be aztec, I don't recognise it as scandinavian.
2022-10-13 21:20:23 +0200 <Vq> Could be danish though...
2022-10-13 21:20:31 +0200 <hpc> also just to answer "why even have this at all", read tries to follow things that are syntactically valid strings
2022-10-13 21:20:45 +0200 <hpc> so if you want to write a multiline string in your source code, apparently that means read has to parse it too
2022-10-13 21:21:53 +0200 <ski> EvanR : anyway, the `line' thing does feel a bit weird, yea
2022-10-13 21:22:52 +0200 <ski> > read "'\\^D'" :: Char -- seems this works, too
2022-10-13 21:22:53 +0200 <lambdabot> '\EOT'
2022-10-13 21:22:59 +0200 <EvanR> the paper does pretty printing by choosing between different layouts of the same logical document, which is defined as flattening to the same line
2022-10-13 21:23:03 +0200 <ski> @type readLitChar
2022-10-13 21:23:04 +0200 <lambdabot> ReadS Char
2022-10-13 21:23:17 +0200 <ski> > readLitChar "\\^D"
2022-10-13 21:23:18 +0200 <lambdabot> [('\EOT',"")]
2022-10-13 21:23:27 +0200 <EvanR> so choices include where to omit the newline and pile things onto the same line, I think
2022-10-13 21:23:45 +0200 <EvanR> which works by just dropping the Line
2022-10-13 21:23:52 +0200 <ski> it does allow the "hanging" style, i assume
2022-10-13 21:24:03 +0200 <ski> (was years since i looked at these papers)
2022-10-13 21:24:07 +0200 <EvanR> I mean, dropping or replacing with a text " "
2022-10-13 21:25:10 +0200 <EvanR> hanging style?
2022-10-13 21:25:33 +0200 <ski> would be nice if it could be configured to use spaces, or tabs, or both (as in the link above, say), in a way that would display (and be interpreted by implementations) consistently & predictably
2022-10-13 21:25:38 +0200 <ski> foo = do
2022-10-13 21:25:40 +0200 <ski> blah
2022-10-13 21:26:25 +0200 <ski> body "hangs" from the end of the previous line
2022-10-13 21:26:28 +0200titibandit(~titibandi@xdsl-78-34-208-230.nc.de)
2022-10-13 21:26:41 +0200vorpuni(~pvorp@2001:861:3881:c690:ba0e:e680:831e:7c7b)
2022-10-13 21:27:15 +0200 <EvanR> yes that's the 2nd example for rendering Tree, it uses a fixed indentation instead of checking the length of the node header, which my version does
2022-10-13 21:27:34 +0200vn36(~vn36@123.63.203.210)
2022-10-13 21:27:52 +0200 <ski> (also ekmett's remarks about wanting to eschew nested comments (at least in the present form), in the interest of being able to monoidally parse, in his video presentation of that, seems a bit relevant)
2022-10-13 21:28:09 +0200 <EvanR> nested comments, too hard! don't need!
2022-10-13 21:28:30 +0200 <EvanR> use your editor spam # everywhere
2022-10-13 21:28:59 +0200 <EvanR> (he drops nested and multiline comments)
2022-10-13 21:29:21 +0200 <ski> he had a perverse example like
2022-10-13 21:29:24 +0200 <ski> {-
2022-10-13 21:29:29 +0200 <ski> -- -} foo
2022-10-13 21:30:02 +0200 <ski> if you remove the `{-' (or add `-- ' in front of it), the `foo' disappears into a comment
2022-10-13 21:30:35 +0200 <ski> ("spooky action at a distance")
2022-10-13 21:30:52 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 21:31:34 +0200 <EvanR> you are automatically thinking about that monoidal parsing talk after thinking about wadler's pretty printer too xD
2022-10-13 21:31:57 +0200 <EvanR> notionally different subjects, seems similar
2022-10-13 21:32:02 +0200 <monochrom> monoidal pretty printing and monoidal parsing...
2022-10-13 21:32:39 +0200 <EvanR> I guess that's a good reason to keep the newline around
2022-10-13 21:32:40 +0200 <geekosaur> except that bidirectional parsing is also a thing
2022-10-13 21:33:23 +0200 <monochrom> Hey why was that not called bidirectional pretty printing heh
2022-10-13 21:34:01 +0200 <EvanR> need a word that means parsing and unparsing
2022-10-13 21:34:27 +0200 <geekosaur> or coparsing
2022-10-13 21:34:27 +0200rockystone(~rocky@user/rockymarine)
2022-10-13 21:34:42 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-10-13 21:34:46 +0200ski. o O ( `isSOF :: Parser Bool',`lookBehind :: Parser a -> Parser a' )
2022-10-13 21:34:46 +0200Cerins(~Cerins@balticom-142-106-43.balticom.lv) (Quit: Leaving)
2022-10-13 21:34:56 +0200codaraxis___(~codaraxis@user/codaraxis)
2022-10-13 21:34:59 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
2022-10-13 21:35:59 +0200 <ski> DCGs can do both from the same source. .. except that in practice (for various reasons), people typically use it for one, or the other
2022-10-13 21:37:31 +0200pavonia(~user@user/siracusa)
2022-10-13 21:38:17 +0200 <ski> (also GF generates both linearization and parsing, between abstract syntax, and a given concrete syntax, from the same `lincat' declarations)
2022-10-13 21:38:48 +0200codaraxis__(~codaraxis@user/codaraxis) (Ping timeout: 264 seconds)
2022-10-13 21:40:29 +0200 <EvanR> in the conversion from Tree to Doc (doc), I'm using named field puns to locally "import" the operations of the algebra. I can't tell if this is cool or terrible
2022-10-13 21:41:13 +0200kenran(~user@user/kenran)
2022-10-13 21:41:19 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-10-13 21:41:41 +0200 <ski> one reason is that the grammar rules are sometimes not syntax-directed (in the AST sense used for static analysis, operational semantics, translations, ..), when parsing, specifically when handling left-factoring, left-recursion; while you do want syntax-directed for linearizing
2022-10-13 21:41:43 +0200 <EvanR> it's certainly not as noisy as I expected
2022-10-13 21:41:52 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-10-13 21:42:19 +0200 <ski> another reason is optional parts like extra whitespace, redundant brackets. possibly syntactic sugar/salt
2022-10-13 21:43:24 +0200 <ski> EvanR : better than using `..'
2022-10-13 21:43:53 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-10-13 21:44:51 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 252 seconds)
2022-10-13 21:44:53 +0200 <ski> anyway, record construction and update probably should allow declaration forms like `nest n d = nestStr n d' (with pattern-matching, multiple clauses, &c. ..) -- also probably `local'-`in'-`end'
2022-10-13 21:45:27 +0200 <EvanR> also I was worried this kind of code would be brittle in that you aren't guaranteed all the subroutines use the same implementation
2022-10-13 21:45:29 +0200zeenk(~zeenk@2a02:2f04:a20a:3e00:5712:52b0:ca1d:bc63) (Quit: Konversation terminated!)
2022-10-13 21:45:51 +0200 <EvanR> or are you, because of the polymorphic doc
2022-10-13 21:45:53 +0200 <ski> (and use `;' rather than `,' for separator .. but then, should there be a keyword after the data constructor for introducing the layout ?)
2022-10-13 21:46:17 +0200 <ski> subroutines ?
2022-10-13 21:46:33 +0200 <EvanR> showTree is based on 3 functions that take DocImpl doc
2022-10-13 21:46:47 +0200 <EvanR> mixing different implementations in the code here would be bad
2022-10-13 21:46:54 +0200 <EvanR> but is it even possible
2022-10-13 21:47:34 +0200skiidly imagines three-dimensional code layout, in a cuboid of glyph cells
2022-10-13 21:48:17 +0200 <EvanR> 3D glyphs... that's beyond even the matrix
2022-10-13 21:49:06 +0200 <darkling> Sounds like an extension of Mondrian. :)
2022-10-13 21:50:09 +0200 <ski> (hmm, i guess i mean rectangular cuboid .. is there a shorter term ?)
2022-10-13 21:50:23 +0200vn36(~vn36@123.63.203.210) (Remote host closed the connection)
2022-10-13 21:50:48 +0200 <EvanR> brick
2022-10-13 21:50:51 +0200 <darkling> Cuboid.
2022-10-13 21:51:03 +0200 <darkling> A rectilinear shape that isn't a cube.
2022-10-13 21:51:26 +0200 <EvanR> a cube isn't also a cuboid then? That probably breaks OOP again
2022-10-13 21:51:33 +0200 <ski> apparently cuboid includes anything that has six faces which are quadrilateral, with arbitrary angles
2022-10-13 21:51:38 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:7370:8686:6424:8f5a) (Quit: WeeChat 2.8)
2022-10-13 21:51:53 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 21:52:04 +0200 <EvanR> brick it is
2022-10-13 21:52:24 +0200 <monochrom> I like brick. :)
2022-10-13 21:52:51 +0200 <monochrom> Topology has open balls and open bricks >:)
2022-10-13 21:54:02 +0200 <ski> (sure a cube is a cuboid .. but OO object types aren't really about subsets, but rather quotient sets (of records) .. and possibly pullbacks as well))
2022-10-13 21:54:04 +0200 <monochrom> Hey does your 3D code layout have tensor strength? >:)
2022-10-13 21:54:37 +0200 <EvanR> or are they above liskov substitution xD
2022-10-13 21:54:40 +0200 <EvanR> about
2022-10-13 21:55:27 +0200 <ski> well, i almost said "anything topologically equivalent to a cube" .. but that doesn't work, as a space where we don't keep track of flags
2022-10-13 21:55:28 +0200vn36(~vn36@123.63.203.210)
2022-10-13 21:55:29 +0200 <monochrom> Well it still has subtyping.
2022-10-13 21:56:21 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds)
2022-10-13 21:56:23 +0200 <ski> sure, subtyping can encompass both subsets and quotient sets
2022-10-13 21:56:28 +0200 <EvanR> don't try to update one of the sides of a cuboid, it might be a cube
2022-10-13 21:57:16 +0200 <ski> (hm, there's a term for when you have subtyping with `O(0)' coercions .. but i can't recall it atm)
2022-10-13 21:59:05 +0200 <monochrom> upcasting?
2022-10-13 22:01:00 +0200 <ski> (hm, my mind tells me i might've seen it in some Xavier Leroy paper/slides, but i can't recall which)
2022-10-13 22:04:28 +0200 <ski> hm, i'm after the distinction between "inclusion" and "coercion", where the former is operationally a no-op, since it uses a representation which can be construed as being of the supertype. (i think the term may have started with "de")
2022-10-13 22:05:20 +0200 <EvanR> like even int can be freely casted to int
2022-10-13 22:06:51 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-13 22:07:01 +0200 <ski> (similar to the distinction of implementing parametric polymorphism with type erasure (enabling reviewing a common representation), and a type-info-passing implementation. i'm also reminded of implicitly passing offsets / tags for record fields / variant alternatives, for light-weight records and variants, probably using rows)
2022-10-13 22:07:27 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-10-13 22:07:58 +0200 <ski> yes (and more importantly), `Map Foo EvenInt' could be treated as `Map Foo Int' (as long as `Map Foo a' is covariant in `a')
2022-10-13 22:09:58 +0200 <ski> (`EvenList' could be a refinement type of `List', declared something like `data EvenList a <: List a = Nil | Cons a (OddList a); data OddList a <: List a = Cons a (EvenList a)' .. this is a different version of "refinement types" that then subset types that e.g. LiquidHaskell uses)
2022-10-13 22:10:23 +0200 <ski> (s/subset types/subset comprehension types/)
2022-10-13 22:14:17 +0200 <ski> monochrom : remind me of what strength means in that context ?
2022-10-13 22:16:02 +0200ski. o O ( open bricks in the taxi-cab metric/norm )
2022-10-13 22:16:26 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-10-13 22:19:11 +0200TonyStone(~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 268 seconds)
2022-10-13 22:20:23 +0200 <ski> hmm .. there should be a metric on an integral lattice space where the distance is always a natural number, defined in terms of integral diagonals with Pythagorean tuples ..
2022-10-13 22:20:50 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg)
2022-10-13 22:21:46 +0200wonko(~wjc@2a0e:1c80:2:0:45:15:19:130) (Ping timeout: 260 seconds)
2022-10-13 22:22:49 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-10-13 22:24:33 +0200 <EvanR> what the heck is going on in this screenshot (tabs vs spaces post) http://dmwit.com/tabs/vim.png in the lower half there's obvious tabs, then in the upper half there tabs not aligning with the ones below
2022-10-13 22:25:04 +0200 <ski> .. every natural can be written as a sum of four squares. can every square be written nontrivially as a sum of two or three or four squares ?
2022-10-13 22:25:38 +0200 <EvanR> ok the tabs align, but there's missing tabs
2022-10-13 22:25:47 +0200 <geekosaur> EvanR, looks to me like it's aligning with spacing on the previous line. emacs text-mode does something similar although I don't think I've seen it in a programming mode
2022-10-13 22:26:28 +0200 <ski> EvanR : "tabs are for indenting, spaces are for aligmnment"
2022-10-13 22:26:43 +0200 <ski> EvanR : the spaces align with the "let "
2022-10-13 22:26:45 +0200 <hpc> EvanR: tab, spaces aligning with let (, tab for case
2022-10-13 22:27:11 +0200 <EvanR> but... where are the tabs, where are the spaces
2022-10-13 22:27:27 +0200 <hpc> there are four spaces, directly below "let "
2022-10-13 22:27:28 +0200 <ski> "\t \t..."
2022-10-13 22:27:37 +0200 <hpc> the four columns before the second '>'
2022-10-13 22:27:50 +0200 <EvanR> ok
2022-10-13 22:28:04 +0200 <EvanR> and then another tab, for reasons?
2022-10-13 22:28:13 +0200 <hpc> because there's a case it's indenting into
2022-10-13 22:28:30 +0200 <hpc> case expr of\n\tpat -> expr
2022-10-13 22:28:36 +0200 <hpc> but that whole thing indented by "\t "
2022-10-13 22:29:43 +0200 <hpc> that is a very confusing way to write code, and that notation for tabs technically makes it visible what's what but not really imo
2022-10-13 22:29:46 +0200 <ski> "Thirdly and hindmost: tabs and spaces are of incomparable width. A tab is not eight spaces. A tab is not four spaces. A tab is not two spaces. A tab does not jump to the next eight-character tabstop. There is not some number n such that tabs jump to the next column that is a multiple of n. .."
2022-10-13 22:29:51 +0200 <ski> ".. Tabs are not at least one space wide. Tabs do not even necessarily move to the right! There is simply nothing you can do with spaces to correctly align yourself with a tab character^‡. If you want to align things on two separate lines, and one line has a tab character as the nth character in the line, well, the other line will simply have to have a tab character as the nth character in the line,
2022-10-13 22:29:57 +0200 <ski> too."
2022-10-13 22:30:06 +0200 <EvanR> yeah read all that
2022-10-13 22:30:52 +0200 <EvanR> I'm almost inspired to use tabs xD
2022-10-13 22:31:07 +0200 <EvanR> and now I see the relevance to wadler
2022-10-13 22:31:30 +0200 <ski> they use spaces there to align with the `(w, h) = ...' declaration on the previous line (`let' starts layout. since this layout in this case starts after `let ', we have no choice but align with the `let ', before possibly indenting again)
2022-10-13 22:31:38 +0200 <ski> Wadler's law ?
2022-10-13 22:31:39 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-10-13 22:31:49 +0200freeside(~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds)
2022-10-13 22:32:07 +0200 <EvanR> the pretty printer paper
2022-10-13 22:32:18 +0200 <hpc> ski: can't be, there's no comments :P
2022-10-13 22:32:41 +0200 <EvanR> a lot pivots on the concept of indentation there, but there's no mention of tabs
2022-10-13 22:33:16 +0200 <hpc> honestly, the way i read that whole section is that there's no correct way to render a tab either
2022-10-13 22:33:26 +0200 <hpc> so putting one in your code is just asking for trouble
2022-10-13 22:34:12 +0200 <ski> @wiki Wadler's Law
2022-10-13 22:34:12 +0200 <lambdabot> https://wiki.haskell.org/Wadler's_Law
2022-10-13 22:35:30 +0200 <ski> EvanR : the simpler version (just using tabs, not spaces) is to always break line after a layout-introducing keyword followed by a block spanning more than one line
2022-10-13 22:36:41 +0200 <ski> EvanR : yea, hence i started thinking about a tabs-and-spaces aware/enabled pretty-printer, that gets this right (and is configurable to only spaces, only tabs, spaces-and-tabs)
2022-10-13 22:38:01 +0200 <EvanR> I started by being suspicious of a 'word' in the algebra that is basically a newline, and now we devolved into tabs vs space xD
2022-10-13 22:38:01 +0200 <ski> (anyway, regarding "brick" syntax, imagine being able to align your three-dimensional array both horizontally, vertically, and "depthly")
2022-10-13 22:38:17 +0200 <EvanR> so much for abstract document
2022-10-13 22:38:25 +0200 <geekosaur> at some point that becomes too much to track…
2022-10-13 22:39:13 +0200 <ski> alignment seems to be about wanting to view the document not as a linear string, but as two-dimensional (iow with commuting paths), in places
2022-10-13 22:40:13 +0200 <EvanR> I'd settle for something that solves in 2 dimensions if 3 is too much to ask
2022-10-13 22:40:31 +0200 <EvanR> unless there's a one liner that works in N dimensions
2022-10-13 22:40:52 +0200 <hpc> one-planer?
2022-10-13 22:41:11 +0200 <ski> .. i recall in an RPG game i played, i could enter into a screen for each character, containing "parallel" sections (only one shown at a time) for different "properties" .. and finding it annoying that if i navigated to the next/previous character (with another two buttons), it'd reset the section to the first section, rather than moving to the parallel one (as if i moved in a grid)
2022-10-13 22:41:14 +0200 <EvanR> if anyone says that there's a Z-tab I'm out
2022-10-13 22:42:29 +0200ski. o O ( direct product vs. maybe semi-direct product, wreath product, .. hmm )
2022-10-13 22:42:49 +0200 <EvanR> what was the structure of this rpg screen again?
2022-10-13 22:43:01 +0200 <ski> hm, structure ?
2022-10-13 22:43:06 +0200 <EvanR> i can't visualize it
2022-10-13 22:43:11 +0200 <ski> it was a dungeon crawler (on GameBoy)
2022-10-13 22:43:24 +0200 <EvanR> it was a document? or
2022-10-13 22:43:36 +0200 <ski> it had "properties" (for each character) like inventory, character stats, &c.
2022-10-13 22:44:16 +0200 <ski> (well, GameBoy Advance, i think .. or maybe it was DS .. can't recall)
2022-10-13 22:44:24 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614)
2022-10-13 22:45:06 +0200CiaoSen(~Jura@p200300c95700eb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2022-10-13 22:46:00 +0200 <ski> (idea of commuting paths also turns up if you want to `unfoldr' (or dynamically program) a double recurrence, like e.g. Pascal's triangle / binomial coefficients)
2022-10-13 22:46:43 +0200 <ski> (ok, it ws GBA as i thought)
2022-10-13 22:48:10 +0200 <ski> "The game received moderately negative reviews compared to the original computer game. It was given a 41% rating by NGC Magazine, criticizing it for its slow pace between exploration and combat, its bad interface and confusing menus, while highlighting only its variety of spells and character customization, that give the game some level of depth." (my emph.)
2022-10-13 22:48:35 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:657b:163b:3e09:9614) (Ping timeout: 248 seconds)
2022-10-13 22:48:53 +0200 <EvanR> so like you scroll down to the inventory page for character A, scroll right and it goes to not the inventory of character B?
2022-10-13 22:49:02 +0200 <ski> yep, basically
2022-10-13 22:50:12 +0200 <ski> like whenever you moved in a text editor to another line, it would move to the start of the line. or even just not restore the current column level when you moved down/up to a line of suffficient length
2022-10-13 22:50:31 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
2022-10-13 22:51:11 +0200 <hpc> sounds like notepad
2022-10-13 22:51:24 +0200 <hpc> if you have word wrap on in older versions, sometimes when you save the cursor moves
2022-10-13 22:51:26 +0200 <ski> (some older IDEs, like Commodore 64 screen editor (e.g. for BASIC), and Borland Turbo C simply allowed you to position yourself past "the end" of a line, making it more transparent, inserting spaces (or maybe configurable to tabs, for the latter), if you inserted any non-blank)
2022-10-13 22:51:58 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-10-13 22:52:02 +0200 <ski> yea .. have done my share of editing in Notpad, loading in WinHugs :)
2022-10-13 22:52:30 +0200 <EvanR> might as well allow going before the first line, and left of the beginning of line. Complete the plane
2022-10-13 22:52:30 +0200vn36(~vn36@123.63.203.210) (Ping timeout: 268 seconds)
2022-10-13 22:53:01 +0200 <EvanR> I could use that space left of the line for all kind of things
2022-10-13 22:53:12 +0200kenran(~user@user/kenran) (Remote host closed the connection)
2022-10-13 22:53:33 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
2022-10-13 22:53:47 +0200 <ski> @where Vital
2022-10-13 22:53:47 +0200 <lambdabot> "Vital is a document-centered implementation of Haskell","The Vital project (acronym: Visual Interactive Typed Applicative Language) is investigating a /document-centered/ approach to functional
2022-10-13 22:53:47 +0200 <lambdabot> programming with an emphasis on the display and /direct manipulation/ of complex data structures." (cf. spreadsheets) <http://www.cs.kent.ac.uk/projects/vital/>,<https://web.archive.org/web/2009052901
2022-10-13 22:53:47 +0200 <lambdabot> 0107/http://www.cs.kent.ac.uk:80/projects/vital/>
2022-10-13 22:54:58 +0200 <EvanR> the link being broken, literally
2022-10-13 22:55:39 +0200 <EvanR> we can rebuild it https://web.archive.org/web/20090529010107/http://www.cs.kent.ac.uk:80/projects/vital/
2022-10-13 22:56:28 +0200 <ski> EvanR : would it be one-point/Alexandroff completion, or Stone–Čech ?
2022-10-13 22:56:59 +0200 <EvanR> do those support unicode?
2022-10-13 22:57:19 +0200 <ski> hm .. i dunno about completion of unicode plane
2022-10-13 22:58:05 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-10-13 23:00:38 +0200 <ski> hpc : oh, and yea .. visual line move (like `line-move-visual' being on in Emacs) annoys me. if i move up or down, i want to move to corresponding column positions of logical (physical ?) lines, not to apparent corresponding positions on my current display with some long lines wrapped ..
2022-10-13 23:00:56 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-10-13 23:02:03 +0200 <dolio> That's helpfully telling you to make your lines shorter. :)
2022-10-13 23:02:38 +0200 <ski> yea i know .. but sometimes that's sadly not practical
2022-10-13 23:03:06 +0200 <EvanR> if you need your long lines to fit on the screen, that calls for a hyberpolic plane
2022-10-13 23:03:18 +0200 <EvanR> hyperbolic!
2022-10-13 23:03:33 +0200skitypically tries to keep lines at most `80' columns, and pages at most `66' lines
2022-10-13 23:03:34 +0200 <hpc> ski: vim does it the way you want
2022-10-13 23:03:56 +0200 <hpc> same with block moves, they remain rectangular as if you had an infinitely wide screen
2022-10-13 23:04:09 +0200 <ski> yea, Emacs does as well, when i club it with `(setq line-move-visual nil)'
2022-10-13 23:04:59 +0200 <ski> (i just happened to use a machine lately where i'd not added that to `$HOME/.emacs', is why i recalled it now)
2022-10-13 23:05:59 +0200 <ski> EvanR : hmm ..
2022-10-13 23:06:11 +0200skitries to imagine a hyperbolic plane code explorer
2022-10-13 23:06:42 +0200 <EvanR> it would mess this up though https://i.imgur.com/ryt16xg.png
2022-10-13 23:07:03 +0200ski. o O ( zipper for graphs, possibly `n'-categories )
2022-10-13 23:07:20 +0200 <EvanR> suddenly you can't rely on the finite screen area to limit the demand of infinite objects
2022-10-13 23:07:41 +0200jakalx(~jakalx@base.jakalx.net)
2022-10-13 23:08:06 +0200 <ski> well, at some point you get low enough resolution that you can stop anyway ?
2022-10-13 23:08:10 +0200 <EvanR> ok ok you can stop when it is determined there's not enough DPI at the edge to read anything, or not enough DPI in the user's vision, which ever fails first
2022-10-13 23:09:39 +0200ski. o O ( "Why program with continuous time?" by conal in 2010-01-02 at <http://conal.net/blog/posts/why-program-with-continuous-time> )
2022-10-13 23:32:39 +0200euandreh(~euandreh@179.214.113.107) (Ping timeout: 252 seconds)
2022-10-13 23:33:30 +0200ski. o O ( zipper for graphs )
2022-10-13 23:33:32 +0200VictorLandevos(~VictorLan@cpc142034-slou6-2-0-cust488.17-4.cable.virginm.net)
2022-10-13 23:33:42 +0200causal(~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e)
2022-10-13 23:33:49 +0200chomwitt(~chomwitt@2a02:587:dc0c:c200:a0a8:ed7f:a699:91a5) (Ping timeout: 268 seconds)
2022-10-13 23:34:17 +0200talismanick(~talismani@2601:200:c100:c9e0::1b0b)
2022-10-13 23:34:34 +0200euandreh(~euandreh@179.214.113.107)
2022-10-13 23:36:43 +0200elbear(~lucian@188.24.138.239)
2022-10-13 23:38:01 +0200burnsidesLlama(~burnsides@client-8-86.eduroam.oxuni.org.uk)
2022-10-13 23:40:09 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-10-13 23:41:11 +0200elbear(~lucian@188.24.138.239) (Ping timeout: 268 seconds)
2022-10-13 23:42:11 +0200rockystone(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-10-13 23:49:23 +0200acidjnk_new(~acidjnk@p200300d6e7137a99955eeb096340e161.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-10-13 23:51:46 +0200bgamari_(~bgamari@64.223.236.29)
2022-10-13 23:53:45 +0200bgamari(~bgamari@64.223.130.138) (Ping timeout: 250 seconds)
2022-10-13 23:58:34 +0200ubert1(~Thunderbi@178.165.199.63.wireless.dyn.drei.com)
2022-10-13 23:59:24 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)