2021/02/04

2021-02-04 00:00:20 +0100 <merijn> zzz: Usually when you want to index something, there's math preceding that. That math is usually using Int, so every time you end up using this 'safe' indexing you end up just calling fromIntegral before it and unsafely converting from Int to the natural numbers for indexing the list
2021-02-04 00:00:41 +0100 <hseg> indexing with nats is nice? for proofs. for coding, not so much
2021-02-04 00:00:51 +0100 <merijn> But wait, maybe you're principled and use Natural for your math! Well, hope you never do any subtractions, because those can go negative and then you're still hosed
2021-02-04 00:00:51 +0100 <monochrom> More subtly, that math uses negative numbers.
2021-02-04 00:00:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 00:01:04 +0100 <zzz> i'm getting really annoyed using "fromIntegral" on every Natural I have everytime I want to use functions like take
2021-02-04 00:01:15 +0100 <merijn> Well, maybe you use Natural *and* never use subtraction
2021-02-04 00:01:28 +0100 <merijn> But then you can still overflow
2021-02-04 00:01:42 +0100 <merijn> zzz: Clearly the solution is to switch the rest of your code to Int too ;)
2021-02-04 00:01:45 +0100 <ephemient> also for `take`, negative numbers are fine
2021-02-04 00:02:29 +0100 <hseg> zzz: how much are you gaining by using the "domain-correct" Natural, in your context?
2021-02-04 00:02:40 +0100 <Axman6> @hoogle Integral i => i -> a -> [a]
2021-02-04 00:02:40 +0100 <lambdabot> Data.List genericReplicate :: Integral i => i -> a -> [a]
2021-02-04 00:02:41 +0100 <lambdabot> GHC.OldList genericReplicate :: Integral i => i -> a -> [a]
2021-02-04 00:02:41 +0100 <lambdabot> Protolude genericReplicate :: Integral i => i -> a -> [a]
2021-02-04 00:02:47 +0100 <ephemient> `take 0 [1..3]` is perfectly fine, why not `take (-1) [0..3]`
2021-02-04 00:03:17 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2021-02-04 00:03:18 +0100 <hseg> note that overly precise typing can be a straitjacket -- use as much as is useful, and no more
2021-02-04 00:03:19 +0100 <ij> monochrom, I guess I could say the point was that bash is as fast, but what I meant by that is predictable
2021-02-04 00:05:22 +0100carlomagno1(~cararell@148.87.23.13)
2021-02-04 00:05:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 00:05:45 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2021-02-04 00:06:36 +0100carlomagno(~cararell@148.87.23.7) (Ping timeout: 240 seconds)
2021-02-04 00:06:42 +0100 <zzz> hseg: im using saturated subtraction everywhere. i'm working with a grid of coordinates that can never be negative
2021-02-04 00:07:15 +0100 <dolio> You can use monus.
2021-02-04 00:07:29 +0100 <hseg> ... again, what are you gaining by your precision of using Naturals over Ints with monus?
2021-02-04 00:07:42 +0100 <monochrom> Why didn't I invent the name "monus"? :)
2021-02-04 00:07:56 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net)
2021-02-04 00:07:59 +0100 <hseg> or replacing lookups :: i -> Map i a -> a with :: i -> Map i a -> Maybe a ?
2021-02-04 00:08:12 +0100monochromrenames to monuschrom
2021-02-04 00:08:27 +0100ukari(~ukari@unaffiliated/ukari) (Remote host closed the connection)
2021-02-04 00:08:53 +0100 <hseg> always, *always* ask yourself "is the cost of using these more precise types worth the safety i gain by them?"
2021-02-04 00:09:01 +0100 <monochrom> But yeah ideologies die die die.
2021-02-04 00:09:44 +0100 <monochrom> Ideologies of dynamic linking, ideologies of unsigned nat, ideologies of CAS... die die die
2021-02-04 00:10:27 +0100 <hseg> indeed, this is part of my motivation to redo some code i wrote for my thesis, both in the high precision form (that'll probably push me to sth like agda) and in the low-precision, haskell 98 form
2021-02-04 00:11:42 +0100ADG1089__(~aditya@223.236.190.35) (Remote host closed the connection)
2021-02-04 00:11:48 +0100 <monochrom> (I can understand if you really need the range 0-255 but Int8 stole half of that range from you so that's why you go Word8. That one is legit. But Integer vs Natural? You ought to be pragmatic not religious, like hseg says.)
2021-02-04 00:13:36 +0100 <hseg> I can understand if you're doing eg some form of proof-carrying code that you might want structured Nats for indexing. But the weight of such an approach usually doesn't justify itself
2021-02-04 00:13:37 +0100gentauro(~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer)
2021-02-04 00:14:08 +0100conal(~conal@64.71.133.70)
2021-02-04 00:14:21 +0100gentauro(~gentauro@unaffiliated/gentauro)
2021-02-04 00:14:30 +0100 <zzz> so it's better to just write (if x < 0 then 0 else x) everywhere?
2021-02-04 00:16:28 +0100 <hseg> depends on your usecase
2021-02-04 00:16:30 +0100 <aveltras> you can use partially applied max0 = (max 0)
2021-02-04 00:16:33 +0100 <dolio> I wonder if - should be monus for Natural.
2021-02-04 00:16:38 +0100shaprhops quietly
2021-02-04 00:17:01 +0100 <hseg> dolio: depends on the semantics we want for Natural
2021-02-04 00:17:05 +0100 <monochrom> If you can find an alternative prelude that uses Word or Natural for take, good for you, you can go that route.
2021-02-04 00:17:11 +0100 <monochrom> But I suspect not.
2021-02-04 00:17:43 +0100jedws(~jedws@121.209.199.128) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 00:17:46 +0100 <monochrom> So, if not, then be pragmatic, interface well with actual existing libraries, not non-existent Platonic astral plane ideals.
2021-02-04 00:17:59 +0100 <Axman6> I'm not quite sure how to word this question, but does anyone know of a way to generalise a state machine over some alphabet so that you can apply it to fragments of an input, and merge those results, where some of the fragments may start in the middle of a sequence? my spoecific example would be taking ByteString chunks and validating if it is utf-8 encoded, where the chunks may have split the string arbitrarily
2021-02-04 00:18:11 +0100 <dolio> Yeah, there's a lot of complaining about non-error over/underflows on other types, so maybe it wouldn't be popular.
2021-02-04 00:18:28 +0100jedws(~jedws@121.209.199.128)
2021-02-04 00:18:48 +0100 <monochrom> HOL4 (and HOL98 back then) has a natural number type whose subtraction is monus.
2021-02-04 00:19:05 +0100 <hseg> a crazy idea might be to spam the numeric hierarchy with newtypes for the various semantics
2021-02-04 00:19:09 +0100 <monochrom> In fact, it was the only number type at all for a long, long time.
2021-02-04 00:19:12 +0100 <hseg> don't see it catching on, much
2021-02-04 00:19:27 +0100 <monochrom> Now don't ask me what it does for dividing by zero, haha.
2021-02-04 00:19:47 +0100 <monochrom> (Actually I know the answer. :) )
2021-02-04 00:20:25 +0100 <merijn> Axman6: I know that exists for utf-8, but not sure if it has a name
2021-02-04 00:22:37 +0100 <dolio> Axman6: There's monoidal parsing approaches where you have dangling bits on the end that need information from adjacent chunks to resolve the parse fully. The only issue would be if you can't recognize when you can definitively start parsing in a chunk.
2021-02-04 00:23:33 +0100 <Axman6> yeah, monoidal parsing is exactly what I'm attempting to do, but it tuirns out the details are more complex than I initially expected
2021-02-04 00:23:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 00:24:50 +0100 <dolio> Is it sufficient that if you see a high 0 in a utf-8 byte, you know the following byte starts a new character?
2021-02-04 00:25:41 +0100 <Axman6> I had something like data Conts = C1 Word8 | C2 Word8 Word8 | C3 Word8 Word8 Word8, and a similar one for prefixes, and then Utf8Monoid = U Int {- length represented by the chunk-} Conts {- continuation bytes which are unmatched -} [Int} {- offsets of known errors -} Prefix {- incomplete prefix -}
2021-02-04 00:26:24 +0100 <Axman6> https://github.com/axman6/Utf8Monoid/blob/master/src/Utf8Monoid.hs is a slightly old version of it
2021-02-04 00:26:57 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2021-02-04 00:27:38 +0100 <Axman6> This sprung from a discussion on lobst.rs where someone wanted to know what the real world uses of monoids were, and I gave the example of parsing TB od text to validate it as UTF-8 (and this could also be used in the text-utf8 package potentially)
2021-02-04 00:28:58 +0100 <Axman6> but the details are rough (or I don't have the problem clear enough in my head yet). small chunks cause problems with the representation above (also there is a C0 constructor, as this was initially Maybe Conts)
2021-02-04 00:29:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 00:29:35 +0100aarvar(~foewfoiew@2601:602:a080:fa0:6991:31b3:1556:10f4)
2021-02-04 00:30:26 +0100usr25(~J@145.red-83-58-207.dynamicip.rima-tde.net) (Quit: Bye)
2021-02-04 00:30:44 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-04 00:31:03 +0100Itkovian(~Itkovian@178-117-76-63.access.telenet.be) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-04 00:35:26 +0100puke(~vroom@217.138.252.203) (Remote host closed the connection)
2021-02-04 00:35:50 +0100puke(~vroom@217.138.252.203)
2021-02-04 00:35:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 00:36:33 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 264 seconds)
2021-02-04 00:36:38 +0100forgottenone(~forgotten@176.42.24.1) (Ping timeout: 265 seconds)
2021-02-04 00:37:27 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 00:38:58 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds)
2021-02-04 00:40:01 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 265 seconds)
2021-02-04 00:40:03 +0100 <zzz> oh I liked this talk: https://www.youtube.com/watch?v=jFk1qpr1ytk
2021-02-04 00:40:59 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-04 00:41:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
2021-02-04 00:43:41 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-02-04 00:46:14 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 264 seconds)
2021-02-04 00:47:06 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:6006:2ad2:8fc2:e1e4) (Quit: Leaving)
2021-02-04 00:47:35 +0100hyiltiz(~quassel@31.220.5.250)
2021-02-04 00:47:35 +0100hyiltiz(~quassel@31.220.5.250) (Changing host)
2021-02-04 00:47:35 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-02-04 00:48:35 +0100 <merijn> Axman6: Real world use is that the newtypes for them compose beautifully :p
2021-02-04 00:48:56 +0100 <merijn> Axman6: Cabal has something like 300 lines of by me that's 100% monoids :p
2021-02-04 00:50:00 +0100 <Axman6> well my other example was computing arbitrary statistics across large datasets. you could use a package with a name something like... foldl-statistics ... to do that >_>
2021-02-04 00:50:06 +0100 <merijn> Axman6: https://github.com/haskell/cabal/blob/master/Cabal/src/Distribution/Simple/Program/GHC.hs#L49-L305
2021-02-04 00:50:51 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2021-02-04 00:51:53 +0100 <Axman6> the fact (mkVersion version) hasn't been factored out annoys me
2021-02-04 00:52:07 +0100 <Axman6> or just ghcVersion `withinRange` orLaterVersion (mkVersion version)
2021-02-04 00:52:22 +0100 <Axman6> NO WONDER CABAL IS SO SLOW` >_>
2021-02-04 00:53:03 +0100 <merijn> Axman6: Patches welcome :p
2021-02-04 00:53:31 +0100deviantfero(~deviantfe@179.51.60.188) (Ping timeout: 276 seconds)
2021-02-04 00:53:32 +0100 <merijn> Axman6: Actually, how would you even factor that out
2021-02-04 00:54:06 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2021-02-04 00:54:17 +0100conal(~conal@64.71.133.70)
2021-02-04 00:54:22 +0100 <Axman6> uh, yeah, you can't, I got mixed up with version and ghcVersion
2021-02-04 00:54:34 +0100 <merijn> See, I'm not dumb! :p
2021-02-04 00:54:56 +0100jedws(~jedws@121.209.199.128) (Ping timeout: 240 seconds)
2021-02-04 00:54:57 +0100 <merijn> tbh, those from/to things are works of art
2021-02-04 00:54:57 +0100 <Axman6> NO WONMDER CABAL WORKS CORRECTLY, AXMAN6 DIDN'T WORK ON IT!
2021-02-04 00:55:06 +0100 <merijn> They compose so elegantly
2021-02-04 00:55:31 +0100 <Axman6> @hoogle Monoid m => Bool -> m -> m
2021-02-04 00:55:31 +0100 <lambdabot> Data.Monoid.HT when :: Monoid m => Bool -> m -> m
2021-02-04 00:55:31 +0100 <lambdabot> Relude.Monoid memptyIfFalse :: Monoid m => Bool -> m -> m
2021-02-04 00:55:31 +0100 <lambdabot> Relude.Monoid memptyIfTrue :: Monoid m => Bool -> m -> m
2021-02-04 00:56:00 +0100 <monochrom> Axman6: That reminds me of "map reduce". Its parallelization is a no-brainer because after the "map" stage, the "reduce" operation is a monoid operation, it's associative.
2021-02-04 00:56:00 +0100 <merijn> Axman6: It doesn't exist yet. Campaigning for it in base is on my todo list, but sadly namig it is hard
2021-02-04 00:56:21 +0100 <merijn> monochrom: You need a commutative monoid for it to be truly useful, though
2021-02-04 00:56:55 +0100 <merijn> Else you end up serialising anyway
2021-02-04 00:56:58 +0100 <Axman6> when isn't a terrible name, except it's a slightly better name for the Monad version
2021-02-04 00:57:02 +0100 <monochrom> If you are careful you can live without commutativity and you still can get balanced parallelization.
2021-02-04 00:57:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 00:57:45 +0100 <merijn> Anyhoo, bed time
2021-02-04 00:57:48 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2021-02-04 00:58:39 +0100 <Axman6> monochrom: yeah exactly, my idea was to make something which could process a file in chunks in parallel, and process all the files in a dataset in parallel
2021-02-04 00:58:43 +0100 <dcoutts_> Axman6: mmm, there's not a whole lot of work to save there. I'd be surprised if it came up on the profiles. The big savings are elsewhere, like skipping 90% of the configure step of each package build. Or not using ghc --make and caching the build plan.
2021-02-04 00:59:24 +0100 <Axman6> dcoutts_: yeah I was being bacetious, cabal is great :)
2021-02-04 00:59:30 +0100 <Axman6> facetious too
2021-02-04 00:59:32 +0100robbert-vdh(~robbert-v@128.199.60.252) ("WeeChat 3.0")
2021-02-04 00:59:40 +0100 <monochrom> I like bacetious
2021-02-04 00:59:45 +0100 <dcoutts_> I know. I was curious :-) so I checked
2021-02-04 01:00:08 +0100Axman6is the king of premature optimisation
2021-02-04 01:02:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-04 01:02:29 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-02-04 01:02:32 +0100 <sm[m]> tomsmeding: ping ?
2021-02-04 01:03:14 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2021-02-04 01:03:53 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2021-02-04 01:04:29 +0100 <hseg> Axman6: i challenge you for the title!
2021-02-04 01:04:47 +0100 <hseg> (:
2021-02-04 01:06:28 +0100 <monochrom> You can't take the title unless your premature optimizations become pessimizations in the big picture!
2021-02-04 01:07:04 +0100 <monochrom> For example loop invariant code motion for loops that actually aren't executed!
2021-02-04 01:07:05 +0100theDon(~td@94.134.91.50) (Ping timeout: 240 seconds)
2021-02-04 01:08:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 01:09:11 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds)
2021-02-04 01:10:53 +0100infinity0(~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
2021-02-04 01:13:05 +0100infinity0(~infinity0@freenet/developer/infinity0)
2021-02-04 01:13:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 01:14:09 +0100motherfsck(~motherfsc@unaffiliated/motherfsck) (Remote host closed the connection)
2021-02-04 01:14:13 +0100argento(~argent0@168.227.97.23)
2021-02-04 01:14:25 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Ping timeout: 240 seconds)
2021-02-04 01:15:17 +0100ridcully(~ridcully@pd951f4de.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2021-02-04 01:15:50 +0100theDon(~td@muedsl-82-207-239-014.citykom.de)
2021-02-04 01:17:14 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 01:17:34 +0100deviantfero(~deviantfe@179.51.60.188)
2021-02-04 01:18:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 01:18:25 +0100hseg(~gesh@185.120.124.95) (Ping timeout: 240 seconds)
2021-02-04 01:19:02 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-02-04 01:19:20 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds)
2021-02-04 01:19:27 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-04 01:19:49 +0100kupi(uid212005@gateway/web/irccloud.com/x-hwbscpvqcraoqtak) (Quit: Connection closed for inactivity)
2021-02-04 01:19:56 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-04 01:25:59 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
2021-02-04 01:26:05 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-02-04 01:26:27 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 268 seconds)
2021-02-04 01:27:52 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-04 01:28:10 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-04 01:29:35 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-04 01:30:51 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection)
2021-02-04 01:31:18 +0100finn_elija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-04 01:31:50 +0100rmk236(~lcampos@2a02:908:3616:b100:9d94:72c:d22d:2612) (Quit: Leaving.)
2021-02-04 01:32:53 +0100xiinotulp(~q@node-upb.pool-125-24.dynamic.totinternet.net)
2021-02-04 01:33:07 +0100alx741(~alx741@186.178.110.33) (Quit: alx741)
2021-02-04 01:33:34 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 01:33:55 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 01:35:34 +0100ridcully(~ridcully@pd951f269.dip0.t-ipconnect.de)
2021-02-04 01:35:42 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds)
2021-02-04 01:36:49 +0100themba_(themba@90.221.74.173) (Read error: Connection reset by peer)
2021-02-04 01:37:05 +0100 <monochrom> Axman6: As it happens, I'm reading https://www.cs.bham.ac.uk/~udr/papers/logical-relations-and-parametricity.pdf out of a different conversation, but it brings up "monoid semiautomaton" as an automaton without a designated start state. Perhaps you could use that name.
2021-02-04 01:37:05 +0100infinity0(~infinity0@freenet/developer/infinity0) (Remote host closed the connection)
2021-02-04 01:37:28 +0100themba_(themba@90.221.74.173)
2021-02-04 01:37:47 +0100 <monochrom> (page 11)
2021-02-04 01:37:56 +0100rawles(~r@unaffiliated/rawles) (Ping timeout: 240 seconds)
2021-02-04 01:39:01 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
2021-02-04 01:39:06 +0100infinity0(~infinity0@freenet/developer/infinity0)
2021-02-04 01:39:24 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-02-04 01:39:38 +0100Sparadox(~etienne@ns3123347.ip-51-68-152.eu) (Quit: ZNC 1.7.5 - https://znc.in)
2021-02-04 01:39:38 +0100zyeri(zyeri@tilde.team/users/zyeri) (Quit: ZNC 1.8.1 - https://znc.in)
2021-02-04 01:39:56 +0100plutoniix(~q@node-unx.pool-125-24.dynamic.totinternet.net) (Ping timeout: 258 seconds)
2021-02-04 01:39:56 +0100zyeri-(zyeri@gateway/shell/tilde.team/x-xvdpvpjsanrpyrhi)
2021-02-04 01:39:56 +0100xiinotulp(~q@node-upb.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2021-02-04 01:40:07 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-04 01:40:19 +0100Sparadox(~etienne@ns3123347.ip-51-68-152.eu)
2021-02-04 01:40:37 +0100rawles(~r@unaffiliated/rawles)
2021-02-04 01:41:17 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-02-04 01:43:11 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds)
2021-02-04 01:44:00 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
2021-02-04 01:44:42 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-02-04 01:46:40 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 01:47:15 +0100rajivr(uid269651@gateway/web/irccloud.com/x-fytanfqvvewadlns)
2021-02-04 01:47:42 +0100theDon(~td@muedsl-82-207-239-014.citykom.de) (Ping timeout: 258 seconds)
2021-02-04 01:48:41 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
2021-02-04 01:49:30 +0100theDon(~td@94.134.91.17)
2021-02-04 01:49:53 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 01:50:35 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
2021-02-04 01:50:52 +0100teardown_(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-02-04 01:52:12 +0100pavonia(~user@unaffiliated/siracusa)
2021-02-04 01:52:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 01:55:16 +0100myShoggoth(4ba43b2f@75.164.59.47)
2021-02-04 01:56:57 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 01:57:45 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 240 seconds)
2021-02-04 01:58:09 +0100ep1ctetus(~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 264 seconds)
2021-02-04 01:59:44 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-04 01:59:51 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 02:00:09 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-02-04 02:00:19 +0100motherfsck(~motherfsc@unaffiliated/motherfsck)
2021-02-04 02:02:01 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 02:03:59 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2021-02-04 02:06:38 +0100 <MarcelineVQ> semiring semiautomaton semiworks semiokay
2021-02-04 02:06:48 +0100mozzarella(~sam@unaffiliated/sam113101) (Read error: Connection reset by peer)
2021-02-04 02:07:51 +0100 <monochrom> :)
2021-02-04 02:08:23 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:9840:c51c:baa7:1cb4)
2021-02-04 02:11:23 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 02:12:48 +0100 <monochrom> Oh wait, Peter O'Hearn is at Facebook too?!
2021-02-04 02:14:22 +0100myShoggoth(4ba43b2f@75.164.59.47) (Quit: Connection closed)
2021-02-04 02:14:54 +0100 <monochrom> Ah, he cofounded a startup first, then bought by Facebook.
2021-02-04 02:15:20 +0100myShoggoth(4ba43b2f@75.164.59.47)
2021-02-04 02:15:34 +0100 <monochrom> Coincidentally, the startup was called Monoidics. >_< Why is today the monoid day?!
2021-02-04 02:16:20 +0100 <MarcelineVQ> because semigroups sounds like a truck enthusiast gathering
2021-02-04 02:16:30 +0100 <monochrom> haha
2021-02-04 02:17:36 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 02:20:30 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 02:21:20 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 02:21:30 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 02:21:52 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 02:23:57 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2021-02-04 02:24:29 +0100 <monochrom> http://www0.cs.ucl.ac.uk/staff/p.ohearn/Invader/Invader/Invader_Home.html
2021-02-04 02:24:39 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-04 02:25:04 +0100 <monochrom> "space invader" (analyzes C program pointer correctness)
2021-02-04 02:27:07 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
2021-02-04 02:28:19 +0100myShoggoth(4ba43b2f@75.164.59.47) (Quit: Connection closed)
2021-02-04 02:30:40 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 02:34:17 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 02:34:32 +0100toppler(~user@mtop.default.momentoftop.uk0.bigv.io) (Remote host closed the connection)
2021-02-04 02:34:45 +0100toppler(~user@mtop.default.momentoftop.uk0.bigv.io)
2021-02-04 02:35:24 +0100noctux(~noctux@unaffiliated/noctux) (Read error: Connection reset by peer)
2021-02-04 02:35:25 +0100meck(~meck@li1809-18.members.linode.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-04 02:35:33 +0100noctux(~noctux@unaffiliated/noctux)
2021-02-04 02:35:33 +0100hackage(mniip@haskell/bot/hackage) (Remote host closed the connection)
2021-02-04 02:35:36 +0100seliopou(seliopou@entropy.tmok.com) (Ping timeout: 240 seconds)
2021-02-04 02:35:50 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 02:36:09 +0100hackage(mniip@haskell/bot/hackage)
2021-02-04 02:37:13 +0100seliopou(seliopou@entropy.tmok.com)
2021-02-04 02:37:31 +0100jedws(~jedws@101.184.202.248)
2021-02-04 02:38:36 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 02:39:47 +0100meck(~meck@li1809-18.members.linode.com)
2021-02-04 02:40:22 +0100average(uid473595@gateway/web/irccloud.com/x-oviqbcwayddkmlvw)
2021-02-04 02:40:50 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 02:41:41 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 02:42:00 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-02-04 02:43:07 +0100ransom(~c4264035@2a09:bac0:98::830:861e)
2021-02-04 02:45:57 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 02:46:15 +0100Jd007(~Jd007@162.156.11.151)
2021-02-04 02:46:45 +0100guest23(~user@49.5.6.87) (Ping timeout: 240 seconds)
2021-02-04 02:47:38 +0100sssb54(~ssssb56@vps-b2931db6.vps.ovh.ca)
2021-02-04 02:49:05 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 02:49:58 +0100guest23(~user@49.5.6.87)
2021-02-04 02:51:19 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 02:53:39 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-02-04 02:55:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 02:55:09 +0100deviantfero(~deviantfe@179.51.60.188) (Ping timeout: 264 seconds)
2021-02-04 02:55:52 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 03:00:37 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 03:01:42 +0100retlo\2E0KNO
2021-02-04 03:02:31 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-04 03:02:45 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 03:02:45 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) ()
2021-02-04 03:04:17 +0100aarvar(~foewfoiew@2601:602:a080:fa0:6991:31b3:1556:10f4) ()
2021-02-04 03:05:05 +0100swarmcollective(~joseph@cpe-65-31-18-174.insight.res.rr.com) (Ping timeout: 240 seconds)
2021-02-04 03:05:07 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 03:05:31 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds)
2021-02-04 03:06:05 +0100mozzarella(~sam@unaffiliated/sam113101)
2021-02-04 03:07:26 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds)
2021-02-04 03:08:35 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 03:09:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 03:09:25 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
2021-02-04 03:09:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 03:10:50 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2021-02-04 03:10:55 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 03:10:56 +0100shinobi(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 03:11:28 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2021-02-04 03:11:57 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Ping timeout: 264 seconds)
2021-02-04 03:15:52 +0100tromp_(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
2021-02-04 03:17:33 +0100toorevitimirp(~tooreviti@117.182.181.145)
2021-02-04 03:19:38 +0100vs^(vs@ip98-184-89-2.mc.at.cox.net)
2021-02-04 03:20:56 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 03:24:00 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer)
2021-02-04 03:24:51 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 03:24:57 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 03:25:19 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 03:26:53 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 03:27:42 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 03:29:09 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-04 03:29:17 +0100xff0x_(~xff0x@2001:1a81:536f:2100:2f3c:8f56:462:e9ab) (Ping timeout: 258 seconds)
2021-02-04 03:30:58 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:159a:3f2d:dfc0:b6f8)
2021-02-04 03:31:57 +0100conal(~conal@64.71.133.70)
2021-02-04 03:32:15 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 03:37:33 +0100Jd007(~Jd007@162.156.11.151)
2021-02-04 03:38:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 03:40:54 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 03:41:13 +0100themba_(themba@90.221.74.173) (Ping timeout: 276 seconds)
2021-02-04 03:42:04 +0100themba_(themba@90.221.74.173)
2021-02-04 03:44:54 +0100da39a3ee5e6b4b0d(~da39a3ee5@49.228.239.163)
2021-02-04 03:45:07 +0100 <Axman6> monochrom: Thanks, I'll take a look :)
2021-02-04 03:45:12 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 03:45:31 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds)
2021-02-04 03:45:56 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 240 seconds)
2021-02-04 03:46:00 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 03:47:53 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 03:47:57 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds)
2021-02-04 03:48:11 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:9840:c51c:baa7:1cb4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 03:50:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 03:50:36 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-02-04 03:51:48 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-02-04 03:51:59 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 03:52:10 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-04 03:54:20 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b)
2021-02-04 03:57:38 +0100 <Axman6> zzz: that video is pretty entertaining :)
2021-02-04 03:57:51 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-04 04:00:27 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 04:04:19 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:05:34 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 04:07:47 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 04:08:38 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:10:44 +0100argento(~argent0@168.227.97.23) (Remote host closed the connection)
2021-02-04 04:10:58 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 04:12:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 04:12:25 +0100theDon(~td@94.134.91.17) (Ping timeout: 276 seconds)
2021-02-04 04:13:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 04:14:02 +0100theDon(~td@muedsl-82-207-238-046.citykom.de)
2021-02-04 04:15:25 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:16:14 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 04:17:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 04:18:05 +0100viluon(uid453725@gateway/web/irccloud.com/x-ucvzxcoudognhctl) (Quit: Connection closed for inactivity)
2021-02-04 04:18:30 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:18:58 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 04:19:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 04:20:59 +0100stiell(~stian@fsf/member/stiell) (Ping timeout: 256 seconds)
2021-02-04 04:21:39 +0100ransom(~c4264035@2a09:bac0:98::830:861e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 04:23:24 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-04 04:24:07 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 276 seconds)
2021-02-04 04:27:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 04:29:03 +0100urodna_(~urodna@unaffiliated/urodna) (Quit: urodna_)
2021-02-04 04:29:27 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 04:31:28 +0100jedws(~jedws@101.184.202.248)
2021-02-04 04:31:30 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi)
2021-02-04 04:34:11 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 04:35:18 +0100aveltras(uid364989@gateway/web/irccloud.com/x-zridcshpxaalituf) (Quit: Connection closed for inactivity)
2021-02-04 04:35:56 +0100stiell(~stian@fsf/member/stiell)
2021-02-04 04:37:37 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:37:54 +0100FinnElija(~finn_elij@gateway/tor-sasl/finnelija/x-67402716)
2021-02-04 04:37:54 +0100finn_elijaGuest69359
2021-02-04 04:37:54 +0100FinnElijafinn_elija
2021-02-04 04:39:12 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 04:39:43 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 04:40:10 +0100swarmcollective(~joseph@cpe-65-31-18-174.insight.res.rr.com)
2021-02-04 04:40:10 +0100 <swarmcollective> myShoggoth, How is your project progressing?
2021-02-04 04:41:56 +0100Guest69359(~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds)
2021-02-04 04:43:08 +0100TommyC(~TommyC@unaffiliated/sepulchralbloom) (Ping timeout: 265 seconds)
2021-02-04 04:43:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 04:43:55 +0100TommyC(~TommyC@unaffiliated/sepulchralbloom)
2021-02-04 04:44:30 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 04:44:41 +0100jedws(~jedws@101.184.202.248)
2021-02-04 04:46:51 +0100plutoniix(~q@184.82.206.197)
2021-02-04 04:48:43 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:49:35 +0100sMuNiX(~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca)
2021-02-04 04:51:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 04:51:27 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 04:52:48 +0100salumu(~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Ping timeout: 264 seconds)
2021-02-04 04:54:33 +0100stiell(~stian@fsf/member/stiell) (Ping timeout: 246 seconds)
2021-02-04 04:55:01 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 04:55:30 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 04:57:55 +0100hackagenewtype-generics 0.6 - A typeclass and set of functions for working with newtypes https://hackage.haskell.org/package/newtype-generics-0.6 (sjakobi)
2021-02-04 04:58:17 +0100metreo(~Thunderbi@unaffiliated/metreo) (Quit: metreo)
2021-02-04 04:59:35 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Quit: Lost terminal)
2021-02-04 04:59:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 05:00:18 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-02-04 05:00:32 +0100stiell(~stian@fsf/member/stiell)
2021-02-04 05:00:33 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 05:03:31 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-02-04 05:04:45 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:05:30 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 258 seconds)
2021-02-04 05:05:33 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 05:07:07 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:bc71:9ab4:c3a5:8b4c) (Ping timeout: 272 seconds)
2021-02-04 05:07:09 +0100Jd007(~Jd007@162.156.11.151) (Quit: Jd007)
2021-02-04 05:07:41 +0100da39a3ee5e6b4b0d(~da39a3ee5@49.228.239.163) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 05:08:08 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 05:08:27 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:08:34 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds)
2021-02-04 05:08:52 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:159a:3f2d:dfc0:b6f8) (Remote host closed the connection)
2021-02-04 05:09:10 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:f400:282e:9bd1:5c2c)
2021-02-04 05:10:06 +0100stiell(~stian@fsf/member/stiell) (Ping timeout: 258 seconds)
2021-02-04 05:12:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 05:13:13 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 05:13:40 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 05:15:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 05:15:30 +0100stiell(~stian@fsf/member/stiell)
2021-02-04 05:17:59 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
2021-02-04 05:18:19 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:18:40 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
2021-02-04 05:18:44 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 05:19:23 +0100sw1nn(~sw1nn@2a00:23c6:2385:3a00:8481:383e:48dd:21f5)
2021-02-04 05:20:03 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 05:21:24 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:23:30 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-duetsgbgiyfgeatn) ()
2021-02-04 05:23:51 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 05:24:24 +0100hackageopaleye-trans 0.5.2 - A monad transformer for Opaleye https://hackage.haskell.org/package/opaleye-trans-0.5.2 (wraithm)
2021-02-04 05:24:29 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:25:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-04 05:28:49 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 05:29:42 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
2021-02-04 05:30:52 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2021-02-04 05:31:16 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:31:55 +0100hackageheartbeat-streams 0.1.0.3 - Heartbeats for io-streams https://hackage.haskell.org/package/heartbeat-streams-0.1.0.3 (wraithm)
2021-02-04 05:32:20 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 05:33:54 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 05:38:05 +0100nineonin_(~nineonine@50.216.62.2) (Ping timeout: 258 seconds)
2021-02-04 05:38:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 05:41:12 +0100Edwin91(63f0a4ca@cpe5c7695b93ed1-cm5c7695b93ecf.cpe.net.cable.rogers.com)
2021-02-04 05:43:38 +0100raym(~ray@45.64.220.55)
2021-02-04 05:44:00 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 05:44:36 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0)
2021-02-04 05:46:52 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 05:47:26 +0100Younder(~john@33.51-174-155.customer.lyse.net) (Quit: Leaving)
2021-02-04 05:47:45 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-04 05:48:32 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 05:50:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 05:50:40 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 05:51:25 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-02-04 05:54:09 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 05:55:19 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 06:00:15 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 06:00:47 +0100ixaxaar(~ixaxaar@49.207.210.215)
2021-02-04 06:01:52 +0100Noldorin(~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
2021-02-04 06:03:47 +0100cheater(~user@unaffiliated/cheater) (Remote host closed the connection)
2021-02-04 06:03:53 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 06:04:20 +0100Edwin91(63f0a4ca@cpe5c7695b93ed1-cm5c7695b93ecf.cpe.net.cable.rogers.com) (Quit: Connection closed)
2021-02-04 06:04:55 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds)
2021-02-04 06:07:19 +0100cheater(~user@unaffiliated/cheater)
2021-02-04 06:08:08 +0100Saukk(~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
2021-02-04 06:08:16 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 06:08:52 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 06:09:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 06:09:41 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-04 06:10:37 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 06:11:21 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 06:11:43 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
2021-02-04 06:12:23 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-04 06:13:09 +0100mrchampion(~mrchampio@38.18.109.23) (Ping timeout: 264 seconds)
2021-02-04 06:13:44 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 06:15:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 06:15:07 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 06:15:40 +0100conal(~conal@64.71.133.70)
2021-02-04 06:16:06 +0100cheater(~user@unaffiliated/cheater) (Read error: Connection reset by peer)
2021-02-04 06:16:47 +0100mrchampion(~mrchampio@38.18.109.23)
2021-02-04 06:17:32 +0100Guest38429(~abian@185.204.1.185) (Remote host closed the connection)
2021-02-04 06:17:51 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-04 06:18:37 +0100cheater(~user@unaffiliated/cheater)
2021-02-04 06:18:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 06:19:59 +0100bitmagie(~Thunderbi@200116b80656d5009c3e767f69ddfc16.dip.versatel-1u1.de)
2021-02-04 06:20:49 +0100teardown_(~user@gateway/tor-sasl/mrush)
2021-02-04 06:23:53 +0100cheater(~user@unaffiliated/cheater) (Read error: Connection reset by peer)
2021-02-04 06:24:15 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal)
2021-02-04 06:24:37 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-04 06:24:55 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 06:25:27 +0100nineonine(~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa)
2021-02-04 06:27:19 +0100teardown(~user@gateway/tor-sasl/mrush)
2021-02-04 06:27:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 06:27:37 +0100elliott__(~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
2021-02-04 06:27:50 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-04 06:28:39 +0100cheater(~user@unaffiliated/cheater)
2021-02-04 06:29:36 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2021-02-04 06:30:59 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 06:31:25 +0100conal(~conal@64.71.133.70)
2021-02-04 06:31:42 +0100teardown_(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 06:34:10 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds)
2021-02-04 06:34:11 +0100cheater(~user@unaffiliated/cheater) (Read error: Connection reset by peer)
2021-02-04 06:35:53 +0100cheater(~user@unaffiliated/cheater)
2021-02-04 06:36:40 +0100nineonin_(~nineonine@50.216.62.2)
2021-02-04 06:38:26 +0100nineonine(~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) (Ping timeout: 264 seconds)
2021-02-04 06:39:54 +0100mmohammadi9812(~mmohammad@2.178.213.79) (Read error: Connection reset by peer)
2021-02-04 06:40:03 +0100mmohammadi9812(~mmohammad@198.12.95.181)
2021-02-04 06:42:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 06:47:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-04 06:48:22 +0100chrisdotcode(~chrisdotc@unaffiliated/chrisdotcode) (Ping timeout: 256 seconds)
2021-02-04 06:50:25 +0100mmohammadi9812(~mmohammad@198.12.95.181) (Ping timeout: 240 seconds)
2021-02-04 06:51:17 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2021-02-04 06:51:17 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-04 06:51:21 +0100mmohammadi9812(~mmohammad@198.12.95.182)
2021-02-04 06:51:42 +0100chrisdotcode(~chrisdotc@unaffiliated/chrisdotcode)
2021-02-04 06:52:00 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-02-04 06:56:14 +0100 <wroathe> Hmmm, after not writing Haskell for well over a year I've forgotten all of my opinions I had on libraries in the ecosystem. Me no gusta.
2021-02-04 06:57:22 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-02-04 07:00:07 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 07:01:25 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2021-02-04 07:01:50 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-02-04 07:04:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 07:07:45 +0100jedws(~jedws@101.184.202.248)
2021-02-04 07:08:04 +0100shiraeeshi(~shiraeesh@109.166.56.2)
2021-02-04 07:08:08 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 07:12:27 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
2021-02-04 07:16:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 07:18:05 +0100deviantfero(~deviantfe@190.150.27.58) (Quit: WeeChat 3.0)
2021-02-04 07:18:25 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 07:18:59 +0100Wuzzy(~Wuzzy@p5b0df175.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-02-04 07:20:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 07:21:10 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 07:21:23 +0100TianGTY(~textual@42.120.74.97)
2021-02-04 07:21:29 +0100TianGTY(~textual@42.120.74.97) (Client Quit)
2021-02-04 07:21:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 07:22:25 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 07:22:35 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 07:23:16 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 07:24:04 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 07:25:25 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 07:25:39 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 07:28:02 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-02-04 07:30:44 +0100vs^(vs@ip98-184-89-2.mc.at.cox.net) ()
2021-02-04 07:32:01 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 07:34:00 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 07:35:57 +0100shiraeeshi(~shiraeesh@109.166.56.2) (Ping timeout: 264 seconds)
2021-02-04 07:37:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 07:37:55 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 07:37:56 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-04 07:38:00 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 246 seconds)
2021-02-04 07:39:07 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
2021-02-04 07:39:09 +0100alexelcu(~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-04 07:39:20 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 07:39:46 +0100alexelcu(~alexelcu@142.93.180.198)
2021-02-04 07:40:09 +0100erh^(erh@ip98-184-89-2.mc.at.cox.net)
2021-02-04 07:40:51 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-02-04 07:41:18 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-04 07:42:45 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
2021-02-04 07:43:08 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2021-02-04 07:47:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 07:47:58 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 07:48:27 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 07:49:24 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 07:52:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-04 07:52:55 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
2021-02-04 07:53:41 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl)
2021-02-04 07:53:45 +0100_bin(~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net) (Ping timeout: 240 seconds)
2021-02-04 07:56:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 08:00:01 +0100jonatanb(~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Ping timeout: 276 seconds)
2021-02-04 08:00:23 +0100cheater1(~user@unaffiliated/cheater)
2021-02-04 08:02:05 +0100bitmagie(~Thunderbi@200116b80656d5009c3e767f69ddfc16.dip.versatel-1u1.de) (Quit: bitmagie)
2021-02-04 08:02:31 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 276 seconds)
2021-02-04 08:02:38 +0100cheater1cheater
2021-02-04 08:04:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 08:05:45 +0100mmohammadi9812(~mmohammad@198.12.95.182) (Ping timeout: 240 seconds)
2021-02-04 08:06:24 +0100mmohammadi9812(~mmohammad@198.12.95.171)
2021-02-04 08:07:55 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2021-02-04 08:08:29 +0100_bin(~bin@2600:1700:10a1:38d0:edac:3b4f:504:68cd)
2021-02-04 08:09:38 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 08:10:45 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 240 seconds)
2021-02-04 08:12:27 +0100d3od(~nickmeno3@78-1-82-164.adsl.net.t-com.hr)
2021-02-04 08:12:44 +0100chris8142(~chris8142@srvnet-01-071.ikbnet.co.at)
2021-02-04 08:13:02 +0100alar[m](alarmxalat@gateway/shell/matrix.org/x-nrpvsrskbirkqhpn)
2021-02-04 08:16:29 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-02-04 08:17:17 +0100asheshambasta(~user@ptr-e1lysavr00fz11rl6gx.18120a2.ip6.access.telenet.be)
2021-02-04 08:21:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 08:25:05 +0100michalz(~user@185.246.204.79)
2021-02-04 08:26:05 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 08:26:20 +0100rmk236(~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de)
2021-02-04 08:28:05 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 08:30:22 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
2021-02-04 08:30:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2021-02-04 08:31:01 +0100MidAutumnHotaru(~MidAutumn@unaffiliated/midautumnhotaru)
2021-02-04 08:33:04 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
2021-02-04 08:33:20 +0100d3od(~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Remote host closed the connection)
2021-02-04 08:34:17 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 08:35:36 +0100forgottenone(~forgotten@176.42.30.142)
2021-02-04 08:39:23 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-04 08:39:32 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-04 08:39:43 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 08:40:04 +0100average(uid473595@gateway/web/irccloud.com/x-oviqbcwayddkmlvw) (Quit: Connection closed for inactivity)
2021-02-04 08:44:23 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 08:46:15 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-04 08:47:06 +0100nineonine(~nineonine@50.216.62.2)
2021-02-04 08:47:22 +0100nineonin_(~nineonine@50.216.62.2) (Ping timeout: 276 seconds)
2021-02-04 08:50:25 +0100Natch(~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-02-04 08:50:57 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 264 seconds)
2021-02-04 08:51:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 08:51:24 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-nvqzpcbpfmbefeds) (Quit: Connection closed for inactivity)
2021-02-04 08:51:50 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-02-04 08:52:33 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
2021-02-04 08:53:22 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 08:53:52 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2021-02-04 08:54:14 +0100unlink2(~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-02-04 08:54:28 +0100hhnoob(3dded63f@61-222-214-63.HINET-IP.hinet.net)
2021-02-04 08:55:18 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0)
2021-02-04 08:55:34 +0100mmohammadi9812(~mmohammad@198.12.95.171) (Quit: Quit)
2021-02-04 08:56:01 +0100Natch(~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se)
2021-02-04 08:56:14 +0100unlink2(~unlink2@p57b8511e.dip0.t-ipconnect.de)
2021-02-04 08:56:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 08:56:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 08:58:00 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de)
2021-02-04 08:58:11 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 258 seconds)
2021-02-04 08:59:39 +0100EncodePanda(b9eeefcd@185.238.239.205)
2021-02-04 09:01:07 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2021-02-04 09:02:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-04 09:02:50 +0100thongpv88(~thongpv87@103.6.151.121)
2021-02-04 09:02:51 +0100thongpv88(~thongpv87@103.6.151.121) (Client Quit)
2021-02-04 09:02:55 +0100d3od(~nickmeno3@78-1-82-164.adsl.net.t-com.hr)
2021-02-04 09:03:01 +0100d3od(~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Excess Flood)
2021-02-04 09:03:16 +0100d3od(~nickmeno3@78-1-82-164.adsl.net.t-com.hr)
2021-02-04 09:03:39 +0100d3od(~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Remote host closed the connection)
2021-02-04 09:04:50 +0100renzhi(~renzhi@2607:fa49:6500:6f00::1e43) (Ping timeout: 264 seconds)
2021-02-04 09:06:34 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
2021-02-04 09:07:45 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:08:57 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:12:05 +0100poscat(~poscat@111.192.221.197) (Ping timeout: 240 seconds)
2021-02-04 09:13:26 +0100poscat(~poscat@111.192.221.197)
2021-02-04 09:13:36 +0100acdsystemliorg[m(acdsysteml@gateway/shell/matrix.org/x-fdbespuaoazmlwtb)
2021-02-04 09:13:48 +0100antaoiseach(~z0ltan@103.5.134.18)
2021-02-04 09:14:56 +0100 <antaoiseach> Hello folks, correct me if I'm wrong, but Stack uses Clang by default on macOS, right? If so, can I make it use gcc instead? I'm trying to build Carp lang (which is written in Haskell), but getting some really weird errors with `ld`... suspecting maybe it's due to clang (not sure!)
2021-02-04 09:15:00 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:15:13 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:15:30 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 09:18:02 +0100 <merijn> *Everything* uses clang by default on macOS
2021-02-04 09:18:41 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-04 09:18:45 +0100 <merijn> gcc on macOS is just wrapper around clang unless you install "real" gcc from homebrew/source
2021-02-04 09:19:13 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2021-02-04 09:20:10 +0100 <hhnoob> hello, I am trying to learn linear haskell recently.
2021-02-04 09:20:15 +0100 <hhnoob> I have wrote a function
2021-02-04 09:20:18 +0100 <hhnoob> add1 :: Int %1 -> Int
2021-02-04 09:20:22 +0100 <hhnoob> add1 a = a + 1
2021-02-04 09:20:28 +0100 <hhnoob> but it not works
2021-02-04 09:20:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 09:20:33 +0100 <hhnoob> Is it possible to make (+) have a type signature (Num a) => a %1 -> a %1 -> a ?
2021-02-04 09:20:42 +0100 <hhnoob> Or it just not make sense that function add1 is linear ?
2021-02-04 09:20:54 +0100hackageZ-Data 0.6.0.0 - Array, vector and text https://hackage.haskell.org/package/Z-Data-0.6.0.0 (winterland)
2021-02-04 09:20:56 +0100 <antaoiseach> merijn: that's right. I have gcc 10.2 from homebrew - just trying to figure out how to make stack use it!
2021-02-04 09:21:31 +0100polyrain(~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede)
2021-02-04 09:21:39 +0100 <tomsmeding> sm[m]: I still exist?
2021-02-04 09:21:42 +0100 <tomsmeding> s/?/!
2021-02-04 09:22:03 +0100 <koz_> tomsmeding: A very philosophical question.
2021-02-04 09:22:04 +0100 <antaoiseach> hnOsmium0001: wow, that's some ugly syntax!
2021-02-04 09:22:04 +0100 <tomsmeding> though I admit I haven't existed on irc for a few weeks; I blame thesis sprint
2021-02-04 09:22:20 +0100 <tomsmeding> I am now MSc
2021-02-04 09:22:22 +0100 <merijn> antaoiseach: No clue how stack works, but I'm guessing it just uses GHC to compile C files, which means you need to change your ghc config
2021-02-04 09:22:27 +0100 <tomsmeding> or, well, will be
2021-02-04 09:22:32 +0100 <merijn> tomsmeding: Trigger warnings on the t word :(
2021-02-04 09:22:38 +0100 <antaoiseach> merijn: that does make sense ...
2021-02-04 09:22:53 +0100 <tomsmeding> merijn: I will be doing a phd
2021-02-04 09:22:58 +0100 <tomsmeding> is that also a trigger word?
2021-02-04 09:23:02 +0100 <koz_> tomsmeding: Congratulations, and you poor soul.
2021-02-04 09:23:06 +0100 <antaoiseach> merijn: lemme explore that. In the meantime, if anybody has an idea about _that_, please let me know! :-)
2021-02-04 09:23:11 +0100 <tomsmeding> :D
2021-02-04 09:23:33 +0100 <Uniaika> hhnoob: do you use the `linear-base` package? https://github.com/tweag/linear-base
2021-02-04 09:23:56 +0100 <hhnoob> no
2021-02-04 09:24:02 +0100 <Uniaika> tomsmeding: congratulations for the Master's degree!
2021-02-04 09:24:12 +0100tomsmedingis very happy
2021-02-04 09:24:14 +0100 <hhnoob> I just download ghc 9.0.1 binary package
2021-02-04 09:24:30 +0100 <koz_> hhnoob: If you wanna use stuff from base with linear types, you gotta use linear-base.
2021-02-04 09:24:42 +0100 <koz_> Because currently, base is not linearity-aware in any way.
2021-02-04 09:25:02 +0100 <merijn> tomsmeding: Naah, that just makes you look dumb :p
2021-02-04 09:25:12 +0100 <tomsmeding> I love that
2021-02-04 09:25:17 +0100 <merijn> Flee, while you still can >.>
2021-02-04 09:25:17 +0100 <hhnoob> so
2021-02-04 09:25:25 +0100 <tomsmeding> merijn: signed contract already, too late
2021-02-04 09:25:34 +0100 <merijn> RIP your mental health
2021-02-04 09:25:47 +0100 <hhnoob> should I expect linear aware base to merge in to ghc in the future ?
2021-02-04 09:26:42 +0100 <koz_> hhnoob: I wouldn't hold your breath.
2021-02-04 09:26:46 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:27:00 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:27:05 +0100 <merijn> hah
2021-02-04 09:27:22 +0100 <merijn> linear aware base merged into ghc, that'll trigger a civil war
2021-02-04 09:27:34 +0100 <Uniaika> tomsmeding: we'll always be there for you to support you during those years of PhD
2021-02-04 09:27:45 +0100 <tomsmeding> <3
2021-02-04 09:27:46 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:27:51 +0100 <Uniaika> merijn: A SCHISM LIKE NO OTHER
2021-02-04 09:27:53 +0100 <merijn> Uniaika: Mostly just to say "I told you so" :p
2021-02-04 09:27:58 +0100 <tomsmeding> I guess monochrom will be happy I'm not yet in a bank
2021-02-04 09:28:05 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:28:25 +0100 <merijn> Uniaika: I mean...the Orthodox/Catholic schism was pretty big... >.>
2021-02-04 09:28:28 +0100 <koz_> merijn: You mean, before or after it gets drowned in bikeshedding?
2021-02-04 09:29:52 +0100 <merijn> koz_: Why not both? :p
2021-02-04 09:30:06 +0100 <koz_> merijn: 'Les deux' is indeed a good answer.
2021-02-04 09:30:55 +0100nineonine(~nineonine@50.216.62.2)
2021-02-04 09:31:11 +0100knupfer(~Thunderbi@200116b82ce4e60025387f735d9833ce.dip.versatel-1u1.de)
2021-02-04 09:31:21 +0100 <antaoiseach> what, now I can't even uninstall stack? wtf?
2021-02-04 09:31:37 +0100 <antaoiseach> I give up, uninstalling stack, carp, and haskell.. hahaha! :D
2021-02-04 09:31:50 +0100 <tomsmeding> antaoiseach: what do you mean "can't uninstall stack"?
2021-02-04 09:31:58 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 09:32:01 +0100 <tomsmeding> $ rm $(which stack); rm -r ~/.stack
2021-02-04 09:32:38 +0100 <tomsmeding> if the first gives a permission error, you might want to check you haven't installed stack via some kind of package manager that wants some attention
2021-02-04 09:32:53 +0100 <antaoiseach> tomsmeding: I mean, there is no uninstall command, right? :(
2021-02-04 09:33:07 +0100 <antaoiseach> tomsmeding: yes, that's what I did L-)
2021-02-04 09:33:07 +0100 <merijn> antaoiseach: Well, that depends on how you install it
2021-02-04 09:33:33 +0100 <tomsmeding> show me command-line software that can uninstall itself
2021-02-04 09:33:45 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:33:59 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:34:00 +0100 <antaoiseach> merijn: yeah, I like Haskell the language, but the whole ecosystem appears too bizarre to me. Most times neither cabal nor stack seem to work for me :|
2021-02-04 09:34:06 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:34:09 +0100 <antaoiseach> I'm scooting off back to Idris.. .hahaha
2021-02-04 09:34:18 +0100Yumasi(~guillaume@2a01:e0a:5cb:4430:e2bc:3fed:317c:3efb)
2021-02-04 09:34:22 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:34:25 +0100 <antaoiseach> tomsmeding: I mean most software come with uninstall scripts
2021-02-04 09:34:40 +0100 <antaoiseach> even stack has an "uninstall" flag, but that does nothing!
2021-02-04 09:35:00 +0100 <tomsmeding> I guess stack didn't bother because uninstalling it is really just the above, it doesn't store anything anywhere else, except in your own projects -- which would be strange to remove
2021-02-04 09:35:04 +0100 <merijn> antaoiseach: In my experience a solid 80-90% of "cabal doesn't work" boils down to "I'm trying to use abandonware packages whose bounds refuse to let it build"
2021-02-04 09:35:36 +0100vchlup(~vchlup@nat.brnet.cz) (Ping timeout: 240 seconds)
2021-02-04 09:35:47 +0100 <tomsmeding> antaoiseach: 'stack uninstall' is not to uninstall stack, but to uninstall stuff installed _with_ stack -- except, as you found, it doesn't want to do that :p
2021-02-04 09:35:55 +0100 <antaoiseach> merijn: Quite possibly! However, from a beginner's point of view, the whole system appears byzantine
2021-02-04 09:35:58 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:36:07 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 276 seconds)
2021-02-04 09:36:14 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:36:21 +0100 <merijn> antaoiseach: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07 :p
2021-02-04 09:36:26 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:36:30 +0100 <antaoiseach> I hate to bring up the "R" word, but the Rust ecosystem is topnotch - no wonder a lot of beginners are flocking to it, despite the learning curve!
2021-02-04 09:36:45 +0100 <antaoiseach> tomsmeding: yeah, you're right
2021-02-04 09:36:50 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:37:39 +0100 <merijn> antaoiseach: The Rust ecosystem will be the exact same in a few years
2021-02-04 09:37:39 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:38:03 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-04 09:38:04 +0100 <merijn> antaoiseach: It hasn't been around long enough to acrue a significant number of broken/abandonned packages, but it inevitably will
2021-02-04 09:38:19 +0100 <antaoiseach> merijn: I don't know about that! :D .. I'm not a big fan of the Rust community, but the tools seem to be in a league of their own. Let's hope it stays that way!
2021-02-04 09:38:22 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:38:32 +0100 <merijn> I mean, the only solution to "broken abandonware doesn't build" is "don't use broken abandonware"
2021-02-04 09:38:39 +0100 <arahael> merijn: So it might become more like Haskell? ;)
2021-02-04 09:38:49 +0100 <merijn> I'm not sure what kinda technical solution people imagine will fix this
2021-02-04 09:39:02 +0100 <antaoiseach> merijn: That aspect is quite true. It's already afflicted by the "pre 1.0" syndrome - quite a lot of the crates expire before they reach 1.0 - a rather scary situatopm
2021-02-04 09:39:06 +0100 <antaoiseach> situation*
2021-02-04 09:39:06 +0100 <merijn> Cabal not building broken shit isn't a bug/deficiency in cabal
2021-02-04 09:39:34 +0100 <merijn> No matter how many beginners claim it is/blame cabal
2021-02-04 09:39:38 +0100 <arahael> merijn: Incidentially, that was one big reason why I liked stack a while back. Having a curated set of packages is *really* nice for a newbie.
2021-02-04 09:39:42 +0100 <antaoiseach> merijn: Yes, of course. However, when one downloads a project and tries to build it, the error messages don't inspire confidence to fix them :(
2021-02-04 09:39:44 +0100 <sclv> what is the actual error you encounter
2021-02-04 09:39:52 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2021-02-04 09:40:09 +0100 <tomsmeding> ever tried to build old C/C++ stuff?
2021-02-04 09:40:18 +0100ericsagn1(~ericsagne@2405:6580:0:5100:1934:160d:83fd:85ea) (Quit: WeeChat 3.0)
2021-02-04 09:40:27 +0100 <antaoiseach> merijn: No, I mean the project creators might be reponsible for it, but the blame of course goes to the tools in the end. I thought Stack was supposed to fix that, but I don't think it really does that much better from a UX perspective
2021-02-04 09:40:33 +0100 <[exa]> tomsmeding: (ask gentoo users, building their baselayouts from 1980s)
2021-02-04 09:40:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 09:40:49 +0100 <tomsmeding> there is also old haskell stuff that still builds :p
2021-02-04 09:40:51 +0100 <antaoiseach> arahael: hjahahaha
2021-02-04 09:40:57 +0100 <sclv> stack can’t fix a broken project. Only coders can
2021-02-04 09:41:06 +0100 <[exa]> ^ +1
2021-02-04 09:41:22 +0100 <[exa]> portability, reliability and maintainability is not a property of language (except for php)
2021-02-04 09:41:28 +0100 <tomsmeding> stack 4.0.0: now includes AI to fix your compiler errors
2021-02-04 09:41:57 +0100 <merijn> arahael: Yea, but then half of stack projects still depend on non-curated hackage packages :p
2021-02-04 09:42:13 +0100 <sclv> antaoiseach: you are complaining about errors but haven’t pasted the error
2021-02-04 09:42:21 +0100ericsagnes(~ericsagne@2405:6580:0:5100:6838:f94d:c1b8:154c)
2021-02-04 09:42:27 +0100 <antaoiseach> Sigh. I get it, man. I definitely get it, but when a lot of people go on repeat-mode about some UX, perhaps it's worth investigating. My own experience (a total beginner in Haskell) was that learning Haskell from Graham Hutton's book was one of the most enjoyable experiences in my life. I loved it. When it came time to try out some real projects, it was a very difficult process to the point where I
2021-02-04 09:42:33 +0100 <antaoiseach> left it at that.
2021-02-04 09:42:36 +0100 <arahael> merijn: Well, *that*'s hardly the fault of stack. ;) And even then, those are opt-in, and more easy to reason about, imho.
2021-02-04 09:42:38 +0100 <antaoiseach> tomsmeding: Lmfao! :D :D
2021-02-04 09:43:42 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:43:49 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl)
2021-02-04 09:43:58 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:44:03 +0100EncodePanda(b9eeefcd@185.238.239.205) (Quit: Connection closed)
2021-02-04 09:46:09 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 09:46:29 +0100 <antaoiseach> sclv: I don't remember the projects I tried to build before, but I saw a lot of "the checker couldn't find a formula that worked" or some such error message
2021-02-04 09:46:47 +0100 <antaoiseach> To a beginner, that might as well be Greek!
2021-02-04 09:47:23 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
2021-02-04 09:47:25 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 09:47:30 +0100 <tomsmeding> the cabal output suffers a bit from being used by the people that already understand it
2021-02-04 09:47:38 +0100 <antaoiseach> tomsmeding: precisely
2021-02-04 09:47:54 +0100 <merijn> tbh, the message you give seems pretty normal english
2021-02-04 09:47:55 +0100 <tomsmeding> problem is that it's non-trivial to fix it
2021-02-04 09:48:13 +0100 <tomsmeding> where "fix" means "is very clear to people who have no idea how cabal works"
2021-02-04 09:48:13 +0100 <antaoiseach> merijn: yes, but how do you even know where to begin to fix the problem?
2021-02-04 09:48:32 +0100 <merijn> antaoiseach: Look at mentioned dependencies and their bounds
2021-02-04 09:49:04 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 09:51:04 +0100hhnoob(3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Connection closed)
2021-02-04 09:52:00 +0100chris8142(~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0.1)
2021-02-04 09:52:42 +0100simara[m](simaramatr@gateway/shell/matrix.org/x-qirnwrgkrbmjerbr)
2021-02-04 09:53:08 +0100antaoiseach(~z0ltan@103.5.134.18) ()
2021-02-04 09:53:28 +0100 <merijn> If it mentions base, your GHC is too old/new, if it mentions anything else one of your dependencies has an upperbound that doesn't support the base/GHC you're using and/or your dependencies have conflicting requirements
2021-02-04 09:53:57 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-02-04 09:54:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 09:55:43 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-ioizzidwfhnufbxy)
2021-02-04 09:56:21 +0100hiroaki(~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2021-02-04 09:57:00 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-02-04 10:00:08 +0100borne(~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de)
2021-02-04 10:04:02 +0100rmk236(~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de) (Quit: Leaving.)
2021-02-04 10:05:42 +0100TianGTY(~textual@42.120.74.97)
2021-02-04 10:07:07 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-04 10:07:52 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Remote host closed the connection)
2021-02-04 10:10:10 +0100nineonine(~nineonine@50.216.62.2)
2021-02-04 10:12:24 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
2021-02-04 10:12:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 10:13:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-04 10:15:07 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 276 seconds)
2021-02-04 10:21:46 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 10:21:53 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 10:22:52 +0100Varis(~Tadas@unaffiliated/varis)
2021-02-04 10:25:15 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 10:26:23 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-04 10:26:39 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-vcqnqeayruwjdhxh) (Quit: Connection closed for inactivity)
2021-02-04 10:27:57 +0100quinn(~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in)
2021-02-04 10:29:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 10:29:54 +0100sakirious4(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2021-02-04 10:30:34 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 10:30:46 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 10:30:51 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 10:30:52 +0100sakirious4sakirious
2021-02-04 10:35:06 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 10:35:18 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 10:35:55 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 10:36:36 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-04 10:36:36 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 10:37:05 +0100knupfer(~Thunderbi@200116b82ce4e60025387f735d9833ce.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
2021-02-04 10:37:29 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 10:37:55 +0100knupfer(~Thunderbi@dynamic-046-114-147-200.46.114.pool.telefonica.de)
2021-02-04 10:39:18 +0100 <ph88_> How can i access the source code of this thing ? https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#t:StateT
2021-02-04 10:40:04 +0100 <merijn> ph88_: StateT is defined in transformers
2021-02-04 10:40:04 +0100 <Taneb> ph88_: it's in the "transformers" library: http://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.State.Lazy.ht…
2021-02-04 10:40:19 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
2021-02-04 10:40:32 +0100toorevitimirp(~tooreviti@117.182.181.145) (Ping timeout: 258 seconds)
2021-02-04 10:41:24 +0100knupfer(~Thunderbi@dynamic-046-114-147-200.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2021-02-04 10:42:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 10:43:34 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2021-02-04 10:43:45 +0100mouseghost(~draco@wikipedia/desperek)
2021-02-04 10:43:50 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 264 seconds)
2021-02-04 10:46:19 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
2021-02-04 10:47:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 10:47:21 +0100catt(~r@31.124.181.226) (Ping timeout: 264 seconds)
2021-02-04 10:48:56 +0100 <ph88^> can anyone help me to get the type right to stack monad transformers ? https://bpa.st/IRMA
2021-02-04 10:49:53 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-02-04 10:50:22 +0100p7lpa1ugixavugu(~atomic@2800:810:514:8155:885f:ca4:6add:b1fa)
2021-02-04 10:50:36 +0100thc202(~thc202@unaffiliated/thc202)
2021-02-04 10:53:25 +0100hseg(~gesh@185.120.124.95)
2021-02-04 10:55:11 +0100 <[exa]> ph88^: you may be missing a lift. I assume you want State + Except + IO, right?
2021-02-04 10:55:48 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-vpvehxcmwssmnbeh)
2021-02-04 10:56:04 +0100j2t(~j2t@84.122.202.215.dyn.user.ono.com)
2021-02-04 10:56:54 +0100j2t(~j2t@84.122.202.215.dyn.user.ono.com) (Client Quit)
2021-02-04 10:57:11 +0100pera(~pera@unaffiliated/pera)
2021-02-04 10:57:42 +0100hseg(~gesh@185.120.124.95) (Ping timeout: 256 seconds)
2021-02-04 10:59:09 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-02-04 10:59:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 11:01:08 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-02-04 11:01:08 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-04 11:01:20 +0100cfricke(~cfricke@unaffiliated/cfricke)
2021-02-04 11:01:23 +0100Rudd0(~Rudd0@185.189.115.103)
2021-02-04 11:02:11 +0100son0p(~son0p@181.58.39.182)
2021-02-04 11:04:59 +0100 <ph88^> yes
2021-02-04 11:05:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-04 11:05:24 +0100 <ph88^> lift where ? on putStrLn ?
2021-02-04 11:07:25 +0100m0rphism1(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2021-02-04 11:08:17 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
2021-02-04 11:10:23 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 11:13:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
2021-02-04 11:14:59 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-02-04 11:15:02 +0100 <[exa]> ph88^: the common type shold then look like `type MyMonad a = StateT MyStateType (ExceptT MyExceptionType IO) a`
2021-02-04 11:16:41 +0100 <[exa]> for running it, you unwrap the monad layers using roughly `runExceptT . runStateT initialState`, which should give you an IO action
2021-02-04 11:17:08 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 11:17:36 +0100 <ph88^> how does that work putting types together like that ?
2021-02-04 11:17:58 +0100 <[exa]> ph88^: highly recommend making a "primitive" main function and checking that the types of everything match the expectation, before starting the actual program
2021-02-04 11:18:07 +0100 <ph88^> ExceptT e (m :: * -> *) a 3 things there ExceptT MyExceptionType IO 2 things there
2021-02-04 11:19:08 +0100 <[exa]> the magic is in *->*, the "ExceptT MyExceptionType IO" is a "function on types", and the StateT kindof forwards the "return type" `a` to it
2021-02-04 11:19:31 +0100 <ph88^> ah like that
2021-02-04 11:19:39 +0100 <[exa]> (which is basically to make sure that all monads in the stack return the same thing)
2021-02-04 11:20:00 +0100 <[exa]> then the unwrapping goes like this:
2021-02-04 11:20:13 +0100 <ph88^> what should MyExceptionType be ?
2021-02-04 11:20:23 +0100 <ph88^> I was thinking just to return a String for the error
2021-02-04 11:20:27 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-04 11:20:29 +0100 <[exa]> the type of your exceptions, Strings are okay for a start
2021-02-04 11:21:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 11:21:49 +0100 <[exa]> ...the unwrapping:
2021-02-04 11:21:52 +0100 <merijn> I recommend not conflating "exceptions" and ExceptT
2021-02-04 11:22:14 +0100 <merijn> ExceptT is great at what it does, it's not great at exceptions
2021-02-04 11:22:18 +0100 <[exa]> +1 ^
2021-02-04 11:22:50 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-04 11:23:48 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-02-04 11:24:02 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:f400:282e:9bd1:5c2c) (Ping timeout: 264 seconds)
2021-02-04 11:24:06 +0100 <[exa]> ph88^: `runStateT initstate` gets you a value of type `ExceptT String IO (a,s)` for some `a` that you returned in the state and `s :: YourStateType`
2021-02-04 11:24:21 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:dab4:3a8f:b8f:c49a)
2021-02-04 11:24:39 +0100 <[exa]> ph88^: `runExceptT` further unwraps it to `IO (Either String (a,s))`, and you can run that normally in `main`
2021-02-04 11:24:54 +0100hackagehpqtypes-extras 1.10.4.0 - Extra utilities for hpqtypes library https://hackage.haskell.org/package/hpqtypes-extras-1.10.4.0 (arybczak)
2021-02-04 11:25:43 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net)
2021-02-04 11:26:11 +0100 <ph88^> when should i use function lift and when liftIO ?
2021-02-04 11:26:12 +0100 <[exa]> merijn: we should start to systematically call the other exceptions a completely different name, such as bottoms or something
2021-02-04 11:26:18 +0100ubert(~Thunderbi@p200300ecdf25d92eca5b76fffe29f233.dip0.t-ipconnect.de)
2021-02-04 11:27:05 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 268 seconds)
2021-02-04 11:27:31 +0100 <[exa]> ph88^: in your monad, you can run State "methods" (get, set) normally, but without any further tooling the Except methods won't work on State. `lift` moves the method 1 level up in the monad stack, so you can use `lift.lift` to run IO functions in your case
2021-02-04 11:27:51 +0100 <ph88^> thanks
2021-02-04 11:27:55 +0100 <ph88^> what about liftIO ?
2021-02-04 11:27:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 11:27:57 +0100 <[exa]> `liftIO` uses a bit of type information to automatically derive how many `lift` it needs
2021-02-04 11:28:02 +0100jedws(~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 11:28:10 +0100 <[exa]> so you don't need to write `lift.lift.lift.lift` in complicated stacks
2021-02-04 11:28:23 +0100 <[exa]> same exists for other monads
2021-02-04 11:28:53 +0100 <ph88^> nice some clear answers today
2021-02-04 11:29:03 +0100 <[exa]> now the important difference
2021-02-04 11:29:13 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2021-02-04 11:29:57 +0100 <[exa]> there is `mtl` (which uses typeclasses like MonadState to say that a monad stack "has a state" somewhere, and `get` and `put` work right on anything that has MonadState)
2021-02-04 11:29:59 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 258 seconds)
2021-02-04 11:30:11 +0100 <ph88^> is this the right module to import lift from ? https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-Class.html#v:lift
2021-02-04 11:30:38 +0100 <[exa]> and there are `transformers` which have similar functionality, but implemented in a slightly different way
2021-02-04 11:30:48 +0100 <[exa]> yes, use `transformers` if you can
2021-02-04 11:31:13 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-02-04 11:31:46 +0100 <[exa]> the MonadTrans is a common typeclass for everything capable of "lifting" an operation to a monad that's deeper in the stack
2021-02-04 11:33:16 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 11:33:37 +0100 <ph88^> [exa], can you have a look as my code is now ? https://bpa.st/SHVQ
2021-02-04 11:33:43 +0100coot(~coot@2a02:a311:433f:a080:2f8e:acf5:8455:513f)
2021-02-04 11:33:52 +0100coot(~coot@2a02:a311:433f:a080:2f8e:acf5:8455:513f) (Read error: Connection reset by peer)
2021-02-04 11:33:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 11:34:39 +0100 <[exa]> ph88^: you may be missing a $ before `inner` in main
2021-02-04 11:35:09 +0100 <[exa]> (btw `putStrLn.show` is basically `print`)
2021-02-04 11:35:20 +0100 <merijn> not just basically
2021-02-04 11:35:23 +0100 <merijn> literally that :p
2021-02-04 11:36:24 +0100hackagehaskoin-store 0.40.13 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.13 (jprupp)
2021-02-04 11:36:52 +0100 <[exa]> anyway I'm not sure how liftIO interacts with `transformers` package
2021-02-04 11:37:48 +0100 <ph88^> [exa], can you take another look ? https://bpa.st/DOCQ
2021-02-04 11:37:50 +0100 <[exa]> ph88^: I'm usually just creating helper functions for the lifting to prevent ambiguity, in your case you can define `io = lift.lift` and use it as `io $ putStrLn "foo"`
2021-02-04 11:38:10 +0100 <[exa]> :t evalState
2021-02-04 11:38:11 +0100 <lambdabot> State s a -> s -> a
2021-02-04 11:38:30 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 256 seconds)
2021-02-04 11:38:35 +0100 <[exa]> order of the arguments is important here; just flip the evalState
2021-02-04 11:39:02 +0100 <[exa]> (or well, flip the arguments manually, you don't have a `do` block in there)
2021-02-04 11:39:05 +0100 <ph88^> i would like to avoid using flip and . for now rather move arguments around
2021-02-04 11:39:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 11:39:49 +0100 <[exa]> (flip is useful if you go for `flip evalState initialState $ do ...program... `
2021-02-04 11:39:51 +0100 <kuribas> it's shitty they didn't put the arguments in the "right" order
2021-02-04 11:40:10 +0100 <merijn> kuribas: It's because they're field accessors, so that can't work
2021-02-04 11:40:33 +0100 <kuribas> merijn: I see, but they don't have to be field accessors, do they?
2021-02-04 11:40:35 +0100 <merijn> Well, I guess eval/exec aren't, but they follow the order of runState
2021-02-04 11:40:44 +0100 <[exa]> kuribas: also there's kindof a mantra that "functions for composition first, data last"
2021-02-04 11:40:58 +0100 <[exa]> kuribas: consider `map [1..5] fn`
2021-02-04 11:41:01 +0100 <merijn> kuribas: Now you just gotta invent a timemachine, go back 20 years and safe us from that mistake :p
2021-02-04 11:41:03 +0100 <[exa]> (atrocity!)
2021-02-04 11:41:10 +0100TianGTY(~textual@42.120.74.97) (Ping timeout: 272 seconds)
2021-02-04 11:41:14 +0100 <kuribas> [exa]: I usually do it the other way...
2021-02-04 11:41:16 +0100 <merijn> [exa]: eh, you mean "for"? :p
2021-02-04 11:41:19 +0100 <merijn> :t for
2021-02-04 11:41:20 +0100 <lambdabot> (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b)
2021-02-04 11:41:21 +0100 <merijn> :t forM
2021-02-04 11:41:22 +0100 <lambdabot> (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
2021-02-04 11:41:23 +0100 <merijn> :t forM_
2021-02-04 11:41:24 +0100 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
2021-02-04 11:41:37 +0100 <merijn> [exa]: Which, incidentally works *great* with lambdas
2021-02-04 11:41:42 +0100 <[exa]> merijn: it was an counterexample that shold have looked wrong
2021-02-04 11:41:52 +0100 <kuribas> yeah, for_ and <&> are very useful.
2021-02-04 11:41:54 +0100 <[exa]> anyway yes, there are usecases
2021-02-04 11:42:03 +0100 <ph88^> [exa], problems with monad stack seem gone now .. almost working i think https://bpa.st/7QOA
2021-02-04 11:42:27 +0100 <merijn> [exa]: Like https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Migration.hs#L100-L121 :p
2021-02-04 11:42:39 +0100 <[exa]> ph88^: why 'traverse'? your function already takes [Int]
2021-02-04 11:42:56 +0100 <ph88^> then my function is wrong
2021-02-04 11:43:01 +0100 <[exa]> merijn: yes, that's also a good style
2021-02-04 11:43:12 +0100 <merijn> of course
2021-02-04 11:43:18 +0100 <merijn> Because I have impeccable taste
2021-02-04 11:43:36 +0100 <[exa]> merijn: I wanted to point out that even in λ calculus it is more usual to compose functions first, and leave the data for later (or never, in λ)
2021-02-04 11:44:23 +0100 <[exa]> which is ofc not for this kind of almost imperative code :]
2021-02-04 11:44:50 +0100 <kuribas> merijn: why forM_, and not for_ ?
2021-02-04 11:44:54 +0100 <kuribas> :t forM_
2021-02-04 11:44:55 +0100 <lambdabot> (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
2021-02-04 11:44:58 +0100 <kuribas> :t for_
2021-02-04 11:44:59 +0100 <lambdabot> (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
2021-02-04 11:45:48 +0100 <ph88^> be back later
2021-02-04 11:45:51 +0100 <ph88^> thanks for the help [exa]
2021-02-04 11:46:12 +0100 <[exa]> ph88^: let us know how it ended up :D
2021-02-04 11:46:42 +0100 <[exa]> ph88^: btw I guess the code can be fixed just by commenting out the explicit type of `inner`
2021-02-04 11:47:16 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
2021-02-04 11:47:17 +0100 <kuribas> I only use a more specialized function if: it helps type inference, or, it has better performance ((++) vs (<>))
2021-02-04 11:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 11:47:39 +0100 <[exa]> kuribas: I kindof guess for_ is much newer than forM_
2021-02-04 11:47:44 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-04 11:47:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 11:47:58 +0100 <kuribas> [exa]: yes, because it's traversable
2021-02-04 11:48:06 +0100 <kuribas> erm applicative
2021-02-04 11:49:27 +0100 <[exa]> hm let's see if hlint will comment on `flip traverse`
2021-02-04 11:49:40 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 11:52:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 11:54:00 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-nqgmbmccisnkcgyh)
2021-02-04 11:54:55 +0100hackagedep-t-advice 0.4.0.1 - Giving good advice to functions in a DepT environment. https://hackage.haskell.org/package/dep-t-advice-0.4.0.1 (DanielDiazCarrete)
2021-02-04 11:55:13 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
2021-02-04 11:57:10 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 12:01:26 +0100pjb(~t@2a01cb04063ec5009d3731745487fa1c.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-02-04 12:05:26 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-ioizzidwfhnufbxy) (Quit: Connection closed for inactivity)
2021-02-04 12:08:20 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 12:09:34 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
2021-02-04 12:13:17 +0100TianGTY(~textual@103.116.47.86)
2021-02-04 12:13:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 12:14:07 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 12:14:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
2021-02-04 12:16:14 +0100TianGTY(~textual@103.116.47.86) (Client Quit)
2021-02-04 12:16:43 +0100TianGTY(~textual@103.116.47.86)
2021-02-04 12:18:14 +0100mgautier(~max@91-167-197-212.subs.proxad.net)
2021-02-04 12:18:20 +0100jedws(~jedws@101.184.202.248)
2021-02-04 12:18:33 +0100darjeeling_(~darjeelin@122.245.120.134) (Ping timeout: 264 seconds)
2021-02-04 12:18:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-04 12:18:56 +0100jedws(~jedws@101.184.202.248) (Client Quit)
2021-02-04 12:19:57 +0100mgautier(~max@91-167-197-212.subs.proxad.net) (Remote host closed the connection)
2021-02-04 12:20:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 12:22:05 +0100aveltras(uid364989@gateway/web/irccloud.com/x-wppxrrvmmzrfxdph)
2021-02-04 12:25:24 +0100 <idnar> kuribas: which (++) is this?
2021-02-04 12:25:46 +0100 <kuribas> idnar: Data.List.++
2021-02-04 12:25:54 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 12:25:55 +0100 <kuribas> are there others?
2021-02-04 12:29:00 +0100 <idnar> kuribas: how could that have better perf than (<>)?
2021-02-04 12:29:13 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-02-04 12:30:08 +0100notzmv(~user@unaffiliated/zmv)
2021-02-04 12:30:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 12:31:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-04 12:31:20 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7)
2021-02-04 12:31:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 12:32:17 +0100fendor(~fendor@77.119.129.25.wireless.dyn.drei.com)
2021-02-04 12:34:15 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2021-02-04 12:34:53 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds)
2021-02-04 12:36:22 +0100 <ph88_> [exa], the inner function works now .. however i made an inner2 function with the monad stack turned around and that one doesn't work https://bpa.st/J3TA
2021-02-04 12:37:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2021-02-04 12:37:21 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 12:37:42 +0100 <ph88_> i already found some mistakes here fixing them now
2021-02-04 12:38:57 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 264 seconds)
2021-02-04 12:39:40 +0100 <[exa]> ph88_: some monads allow various versions of "backtracking" and "masking" of the code, which generally doesn't interplay very well with stateful computation. In your case, one of the versions will retain the state through exceptions, and one will discard it
2021-02-04 12:39:43 +0100 <ph88_> one error remaining now which i don't know how to solve https://bpa.st/FVNA
2021-02-04 12:40:16 +0100 <ph88_> which one will retain the state and which one will discard ?
2021-02-04 12:40:35 +0100 <[exa]> look at the return types :]
2021-02-04 12:40:49 +0100 <ph88_> are you talking about my paste or my question ?
2021-02-04 12:40:58 +0100 <[exa]> about the question-- `Either error (a,s)` vs `(Either error a, s)`
2021-02-04 12:41:08 +0100pjb(~t@2a01cb04063ec5000c7095db6c592b59.ipv6.abo.wanadoo.fr)
2021-02-04 12:41:37 +0100 <ph88_> i think inner2 will keep the state
2021-02-04 12:41:39 +0100 <[exa]> btw you have a mistake in the explicit type of `inner2`
2021-02-04 12:41:43 +0100 <[exa]> yes
2021-02-04 12:42:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-04 12:42:37 +0100 <ph88_> i don't see my mistake in the inner2 type signature
2021-02-04 12:42:52 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 12:43:05 +0100 <[exa]> "ExceptT StateType" vs "StateT ExceptType"
2021-02-04 12:43:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 12:43:33 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-04 12:44:13 +0100son0p(~son0p@181.58.39.182) (Quit: Lost terminal)
2021-02-04 12:44:31 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-04 12:44:48 +0100 <ph88_> which paste are you looking at ? the last one ?
2021-02-04 12:44:58 +0100 <[exa]> yes
2021-02-04 12:45:15 +0100 <[exa]> seems you flipped the ExceptT and StateT but forgot to flip the type params properly
2021-02-04 12:45:28 +0100 <[exa]> oh noes, sorry
2021-02-04 12:45:32 +0100 <[exa]> that was not the latest one :]
2021-02-04 12:45:38 +0100 <ph88_> right ..
2021-02-04 12:45:55 +0100 <[exa]> btw `inner` vs `inner2` ?
2021-02-04 12:46:30 +0100 <ph88_> ah yes xD
2021-02-04 12:47:09 +0100 <[exa]> it's beneficial to read the error messages, 'expected type' is what the environment says, and 'actual type' is what you put there
2021-02-04 12:47:23 +0100plutoniix(~q@184.82.206.197) (Quit: Leaving)
2021-02-04 12:47:25 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 12:47:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 12:47:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 12:48:08 +0100 <ph88_> ye that i know
2021-02-04 12:48:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-04 12:49:35 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 12:51:16 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-04 12:54:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-04 12:54:58 +0100 <ph88_> <[exa]> the magic is in *->*, the "ExceptT MyExceptionType IO" is a "function on types", and the StateT kindof forwards the "return type" `a` to it
2021-02-04 12:55:11 +0100 <ph88_> do you know where i can see this magic in the code ?
2021-02-04 12:55:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 12:55:40 +0100 <[exa]> ph88_: right in the definition of StateT
2021-02-04 12:56:01 +0100 <[exa]> (it's not much of magic actually, it just forwards the argument... :] )
2021-02-04 12:56:30 +0100 <ph88_> there is no source code button here https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#t:StateT
2021-02-04 12:57:23 +0100 <[exa]> take the one from `transformers`
2021-02-04 12:57:36 +0100thongpv87(~thongpv87@103.6.151.121) (Read error: No route to host)
2021-02-04 12:58:14 +0100shiraeeshi(~shiraeesh@109.166.56.2)
2021-02-04 12:58:23 +0100 <[exa]> (it says `newtype StateT s m a = StateT { runStateT :: s -> m (a,s) }` --you see `m` is given a type argument there)
2021-02-04 12:58:51 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-04 12:58:53 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 12:59:04 +0100 <ph88_> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-State-Lazy.html#…
2021-02-04 12:59:14 +0100 <ph88_> why is this type in two different packages ?
2021-02-04 12:59:27 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-04 13:00:17 +0100 <[exa]> there are more possible implementations, very roughly `mtl` uses the multiparameter typeclasses, `transformers` is more portable and uses type families
2021-02-04 13:01:28 +0100 <ph88_> how come mtl has this type but there is no source code for it ?
2021-02-04 13:01:56 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 13:02:18 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 13:02:30 +0100darjeeling_(~darjeelin@122.245.120.134)
2021-02-04 13:02:46 +0100 <[exa]> ph88_: the source is there, probably not just linked from the generated docs
2021-02-04 13:03:10 +0100ClaudiusMaximus(~claude@191.123.199.146.dyn.plus.net)
2021-02-04 13:03:18 +0100polyrain(~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 13:03:25 +0100ClaudiusMaximus(~claude@191.123.199.146.dyn.plus.net) (Changing host)
2021-02-04 13:03:25 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2021-02-04 13:03:46 +0100 <ph88_> i mean from here https://hackage.haskell.org/package/mtl-2.2.2/docs/Control-Monad-State-Lazy.html#t:StateT
2021-02-04 13:03:50 +0100 <ph88_> https://hackage.haskell.org/package/mtl-2.2.2/docs/src/Control.Monad.State.Class.html
2021-02-04 13:04:09 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-04 13:04:10 +0100 <[exa]> oh it looks like `mtl` is now just a wrap around `transformers`. :]
2021-02-04 13:04:44 +0100 <ph88_> so this different implementations story is no longer true ?
2021-02-04 13:04:55 +0100 <[exa]> seems so, just "different interface"
2021-02-04 13:05:15 +0100 <ph88_> oki
2021-02-04 13:05:52 +0100 <zzz> what deoes the 'safe' mean in 'instance [safe] Wtv...' ?
2021-02-04 13:06:45 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-02-04 13:07:22 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
2021-02-04 13:10:16 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
2021-02-04 13:10:30 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-04 13:10:58 +0100 <[exa]> zzz: I guess it's from safe haskell, see https://wiki.haskell.org/Safe_Haskell
2021-02-04 13:12:32 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds)
2021-02-04 13:13:09 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds)
2021-02-04 13:14:36 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-04 13:15:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
2021-02-04 13:16:16 +0100 <ph88_> with a type like this newtype StateT s m a = StateT { runStateT :: s -> m (a,s) } there is no further implementation of runStateT ??
2021-02-04 13:16:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 13:16:55 +0100 <merijn> That *is* the implementation
2021-02-04 13:18:02 +0100 <ph88_> what kind of implementation is that ?
2021-02-04 13:18:14 +0100 <ph88_> there is :: but no = like with normal functions
2021-02-04 13:18:50 +0100ubert(~Thunderbi@p200300ecdf25d92eca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection)
2021-02-04 13:19:09 +0100ubert(~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de)
2021-02-04 13:19:37 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-02-04 13:19:38 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-02-04 13:19:42 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection)
2021-02-04 13:20:02 +0100livvy(~livvy@gateway/tor-sasl/livvy)
2021-02-04 13:20:36 +0100 <Taneb> It's a newtype declaration with a labelled field
2021-02-04 13:21:28 +0100 <ph88_> ye but you can call it on the value level and then it just automagically shuffles the types around .. so what's up with that
2021-02-04 13:22:18 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 13:22:19 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 13:22:46 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-ualbkaikcrbbwtmy)
2021-02-04 13:25:03 +0100Athas(athas@sigkill.dk) (Quit: ZNC - http://znc.sourceforge.net)
2021-02-04 13:25:17 +0100Athas(athas@2a01:7c8:aaac:1cf:1c06:6cab:a957:ec6e)
2021-02-04 13:33:16 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 13:33:27 +0100erh^(erh@ip98-184-89-2.mc.at.cox.net) ()
2021-02-04 13:34:48 +0100 <dminuoso> ph88_: The name "runStateT" is just a suggestive hint. The real trick lies in the instances and/or functions that work with StateT.
2021-02-04 13:35:00 +0100vnz(~vnz@unaffiliated/vnz) (Remote host closed the connection)
2021-02-04 13:35:10 +0100vnz(~vnz@2001:bc8:604:94f::1)
2021-02-04 13:35:10 +0100vnz(~vnz@2001:bc8:604:94f::1) (Changing host)
2021-02-04 13:35:10 +0100vnz(~vnz@unaffiliated/vnz)
2021-02-04 13:35:20 +0100 <ph88_> for example ?
2021-02-04 13:35:33 +0100 <dminuoso> Monad for instance
2021-02-04 13:35:48 +0100 <ph88_> can you point to the source code for this real trick ?
2021-02-04 13:35:55 +0100 <dminuoso> Sure
2021-02-04 13:35:58 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net)
2021-02-04 13:36:07 +0100 <dminuoso> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.State.Lazy.h…
2021-02-04 13:36:15 +0100 <dminuoso> Oh well, that's the lazy one
2021-02-04 13:36:26 +0100 <dminuoso> https://hackage.haskell.org/package/transformers-0.5.6.2/docs/src/Control.Monad.Trans.State.Strict…
2021-02-04 13:37:47 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:dab4:3a8f:b8f:c49a) (Ping timeout: 260 seconds)
2021-02-04 13:37:51 +0100 <ski> ph88_ : field selection functions are confusing. the way it works is that if you have `data Rec = ... | Con {f :: T,...} | ...', then the field `f' of data constructor `Con' in `Rec' has type `T', but when you use the name `f' in other places than record consrtuction&update syntax, it means the field extraction function `f :: Rec -> T'
2021-02-04 13:38:06 +0100 <ph88_> i see there runStateT being used .. does that tell me the trick of how runStateT works somehow ?
2021-02-04 13:38:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-04 13:38:34 +0100 <merijn> There is no trick, it's basic Haskell syntax
2021-02-04 13:38:35 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:7e89:568a:710c:5bc9)
2021-02-04 13:38:36 +0100 <ski> (i think it would be better if the extraction function was written differently. perhaps `#f' (like in SML), or something else. not just `f')
2021-02-04 13:39:09 +0100 <ski> (oh, and the same thing happens for `newtype', except now you can only have one data constructor, with only one field/component)
2021-02-04 13:39:29 +0100 <ph88_> thanks
2021-02-04 13:41:45 +0100 <dminuoso> ph88_: runStateT is just a fancy alternate way of pattern matching.
2021-02-04 13:41:50 +0100qwfpluy(3e605a22@62.96.90.34)
2021-02-04 13:41:51 +0100 <ski> for an implementation, you could consider
2021-02-04 13:42:17 +0100 <ski> modify :: Monad m => (s -> s) -> StateT s m ()
2021-02-04 13:42:22 +0100 <dminuoso> In fact, since this is a newtype, runStateT does not even have any runtime representation, so nothing really happens! :)
2021-02-04 13:42:40 +0100 <dminuoso> (Think of runStateT as a constrained coerce, maybe)
2021-02-04 13:42:50 +0100 <ski> modify u = StateT {runStateT = \s -> return ((),u s)}
2021-02-04 13:42:57 +0100 <qwfpluy> what's the best way to do Haskell projects on Windows? on Linux I was using plain ghc with cabal and nix for dependencies
2021-02-04 13:44:37 +0100viluon(uid453725@gateway/web/irccloud.com/x-dhvshmzrbfswywrh)
2021-02-04 13:45:04 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 276 seconds)
2021-02-04 13:45:20 +0100 <ski> in this case, `runStateT (modify u)' will extract the function `\s -> return ((),u s)', so that `runStateT (modify u) s' computes `return ((),u s)', updating the given state `s' with `u', giving back the result
2021-02-04 13:47:01 +0100 <ph88_> thanks guys :) :)
2021-02-04 13:47:46 +0100 <dminuoso> ph88_: The name is suggestive in the sense, that the actual "stateful computation" is embedded in the function. So in order to "run" the thing, you have to unwrap it and provide it with an initial state.
2021-02-04 13:48:28 +0100 <dminuoso> So if you wrote `runStateT myProg initState`, then you'd unravel the stateful computation. Methods such as (>>=) build up this internal function
2021-02-04 13:49:03 +0100 <dminuoso> So truely, in order to "run it" you have to unwrap it first. This is why often newtypes have fields that start with `run`
2021-02-04 13:49:05 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 13:49:26 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 13:49:43 +0100 <ski> one suggestive way to define `(>>=)' would be if one could write
2021-02-04 13:50:05 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-04 13:50:05 +0100 <ski> (>>=) :: Monad m => StateT s m a -> (a -> StateT s m b) -> StateT s m b
2021-02-04 13:50:19 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2021-02-04 13:50:32 +0100 <ski> runStateT (ma >>= amb) s0 = do
2021-02-04 13:50:49 +0100 <ski> (a,s1) <- runStateT ma s0
2021-02-04 13:50:54 +0100hackagehaskoin-store 0.40.14 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.14 (jprupp)
2021-02-04 13:50:56 +0100Tario(~Tario@201.192.165.173)
2021-02-04 13:50:56 +0100reactormonk1(~reactormo@mehl.schokokeks.org)
2021-02-04 13:51:02 +0100 <ski> (b,s2) <- runStateT (amb a) s1
2021-02-04 13:51:07 +0100 <ski> return (b,s2)
2021-02-04 13:51:29 +0100 <swarmcollective> qwfpluy, one option is to use vscode's "dev container" feature. This just starts up a docker container with the environment you need for Haskell.
2021-02-04 13:51:44 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 13:51:56 +0100 <ski> (so, calling `runStateT' on an action of form `ma >>= amb' in turn causes calls to `runStateT' on the action `ma', and once one's got the result `a' from it, also on the action `amb a'
2021-02-04 13:52:30 +0100bitmagie(~Thunderbi@200116b80656d50064954332a754decc.dip.versatel-1u1.de)
2021-02-04 13:52:37 +0100kritzefitz(~kritzefit@212.86.56.80) (Remote host closed the connection)
2021-02-04 13:52:38 +0100 <swarmcollective> qwfpluy, for example: https://github.com/calledtoconstruct/haskell-hls-devcontainer
2021-02-04 13:55:47 +0100TianGTY(~textual@103.116.47.86) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 13:56:25 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-02-04 13:56:41 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds)
2021-02-04 13:58:17 +0100 <ph88_> thanks ski dminuoso i will save this information in a note
2021-02-04 13:58:35 +0100TianGTY(~textual@103.116.47.86)
2021-02-04 14:01:07 +0100 <qwfpluy> swarmcollective thanks!
2021-02-04 14:04:34 +0100qwfpluy(3e605a22@62.96.90.34) (Quit: Connection closed)
2021-02-04 14:07:32 +0100darjeeling_(~darjeelin@122.245.120.134) (Ping timeout: 256 seconds)
2021-02-04 14:08:09 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 265 seconds)
2021-02-04 14:08:40 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 14:09:09 +0100TianGTY(~textual@103.116.47.86) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 14:09:51 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-02-04 14:10:45 +0100forgottenone(~forgotten@176.42.30.142) (Ping timeout: 240 seconds)
2021-02-04 14:10:59 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
2021-02-04 14:11:07 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-04 14:12:19 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-yenulyouxfdnsprv)
2021-02-04 14:12:35 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-04 14:13:28 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
2021-02-04 14:13:31 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-04 14:15:01 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-04 14:15:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
2021-02-04 14:19:20 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 14:19:43 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 14:23:15 +0100darjeeling_(~darjeelin@122.245.120.134)
2021-02-04 14:24:43 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds)
2021-02-04 14:25:31 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 14:26:25 +0100 <ij> my Data.Vector.Mutable.unsafeRead was showing up as consuming time in the profiler output, so I just inlined it and now the most time spent seems to show up in the place where it makes more sense
2021-02-04 14:27:17 +0100michalz`(~user@185.246.204.93)
2021-02-04 14:28:49 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-04 14:28:56 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2021-02-04 14:29:05 +0100michalz(~user@185.246.204.79) (Ping timeout: 240 seconds)
2021-02-04 14:29:16 +0100voidcontext(~pgee@178.62.100.221) (Ping timeout: 240 seconds)
2021-02-04 14:29:18 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2021-02-04 14:30:22 +0100voidcontext(~pgee@178.62.100.221)
2021-02-04 14:30:32 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds)
2021-02-04 14:30:45 +0100urodna(~urodna@unaffiliated/urodna)
2021-02-04 14:31:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 14:32:57 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b)
2021-02-04 14:35:18 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 14:36:25 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds)
2021-02-04 14:38:59 +0100vicfred(vicfred@gateway/vpn/mullvad/vicfred)
2021-02-04 14:39:05 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Ping timeout (120 seconds))
2021-02-04 14:40:03 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds)
2021-02-04 14:40:32 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-04 14:41:44 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-04 14:42:45 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 14:43:04 +0100notzmv(~user@unaffiliated/zmv) (Remote host closed the connection)
2021-02-04 14:44:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
2021-02-04 14:45:28 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Client Quit)
2021-02-04 14:45:33 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 14:45:56 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 14:46:25 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-04 14:46:53 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-04 14:47:33 +0100ADG1089__(~aditya@223.236.190.35)
2021-02-04 14:47:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds)
2021-02-04 14:47:50 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-04 14:48:53 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 14:49:55 +0100hackagehaskoin-store 0.40.15 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.15 (jprupp)
2021-02-04 14:50:46 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 14:55:21 +0100 <ph88_> looking for english word for "the usual way to write X in language Y"
2021-02-04 14:55:48 +0100 <dminuoso> idiomatic
2021-02-04 14:55:55 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 14:56:08 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds)
2021-02-04 14:56:55 +0100 <ph88_> thanks
2021-02-04 14:57:10 +0100forgottenone(~forgotten@176.42.30.142)
2021-02-04 14:58:51 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net)
2021-02-04 15:00:32 +0100lortabac(~lortabac@51.158.65.124)
2021-02-04 15:01:35 +0100hyperisco(~hyperisco@104-195-141-253.cpe.teksavvy.com)
2021-02-04 15:01:56 +0100unlink_(~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de)
2021-02-04 15:02:23 +0100unlink2(~unlink2@p57b8511e.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
2021-02-04 15:02:41 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood)
2021-02-04 15:03:07 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2021-02-04 15:03:24 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection)
2021-02-04 15:03:47 +0100average(uid473595@gateway/web/irccloud.com/x-wmphahzlcegaaqct)
2021-02-04 15:04:10 +0100gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2021-02-04 15:04:31 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:05:11 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:05:34 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:05:57 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-04 15:06:50 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 15:07:02 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2021-02-04 15:08:10 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:08:32 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:09:11 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:09:33 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:11:07 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:11:30 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:11:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-04 15:11:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
2021-02-04 15:12:30 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2021-02-04 15:12:52 +0100hseg(~gesh@185.120.124.95)
2021-02-04 15:13:10 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:13:31 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:14:12 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-bmhpuzgzzgtmheov)
2021-02-04 15:15:07 +0100davros(~davros@host86-185-99-39.range86-185.btcentralplus.com)
2021-02-04 15:15:11 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:15:33 +0100gzj(~gzj@unaffiliated/gzj)
2021-02-04 15:16:10 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2021-02-04 15:16:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
2021-02-04 15:17:12 +0100forgottenone(~forgotten@176.42.30.142) (Quit: Konversation terminated!)
2021-02-04 15:17:47 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c)
2021-02-04 15:18:24 +0100hackagehls-eval-plugin 0.2.0.0 - Eval plugin for Haskell Language Server https://hackage.haskell.org/package/hls-eval-plugin-0.2.0.0 (PasqualinoAssini)
2021-02-04 15:18:33 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 15:18:37 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 15:22:33 +0100 <ph88_> [exa], are you here ?
2021-02-04 15:23:54 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-04 15:24:27 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 15:25:05 +0100themba_(themba@90.221.74.173) (Ping timeout: 240 seconds)
2021-02-04 15:25:23 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 15:25:45 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 15:29:21 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-04 15:30:59 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-04 15:31:48 +0100alx741(~alx741@186.178.110.33)
2021-02-04 15:32:33 +0100motherfsck(~motherfsc@unaffiliated/motherfsck) (Read error: Connection reset by peer)
2021-02-04 15:33:12 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-04 15:38:49 +0100hexfive(~hexfive@50.35.83.177) (Quit: i must go. my people need me.)
2021-02-04 15:40:26 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 15:41:38 +0100themba_(~themba@bcde0474.skybroadband.com)
2021-02-04 15:42:28 +0100maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-02-04 15:43:03 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 15:44:17 +0100 <sshine> ij, have you heard Snoyman rant about 'vector'?
2021-02-04 15:45:33 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 264 seconds)
2021-02-04 15:45:55 +0100 <ij> haskell, the bad parts? I'll take a look
2021-02-04 15:46:23 +0100 <ski> @quote henning
2021-02-04 15:46:23 +0100 <lambdabot> shachaf says: Henning should call all his modules M
2021-02-04 15:46:30 +0100 <merijn> ha
2021-02-04 15:46:48 +0100 <merijn> Let's not give him any ideas >.>
2021-02-04 15:47:57 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds)
2021-02-04 15:52:35 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-04 15:53:10 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-04 15:53:44 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh)
2021-02-04 15:57:40 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 276 seconds)
2021-02-04 15:59:18 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 15:59:39 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-02-04 16:00:09 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
2021-02-04 16:00:16 +0100zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-02-04 16:03:11 +0100maroloccio(~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
2021-02-04 16:03:40 +0100plutoniix(~q@node-upb.pool-125-24.dynamic.totinternet.net)
2021-02-04 16:04:06 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
2021-02-04 16:06:12 +0100mirrorbird(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676)
2021-02-04 16:06:15 +0100Jd007(~Jd007@162.156.11.151)
2021-02-04 16:08:05 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-04 16:08:44 +0100maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-02-04 16:08:46 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-02-04 16:09:02 +0100raym(~ray@45.64.220.55)
2021-02-04 16:09:56 +0100 <kuribas> his complaint was that Vector should just be a vector, not a streaming library...
2021-02-04 16:11:42 +0100 <sshine> ski, who is Henning?
2021-02-04 16:11:52 +0100 <maerwald> oh wow, haskell weekly 2022-02-04. I switched universe again
2021-02-04 16:12:34 +0100maroloccio(~marolocci@pousada3ja.mma.com.br) (Client Quit)
2021-02-04 16:12:54 +0100maroloccio(~marolocci@pousada3ja.mma.com.br)
2021-02-04 16:14:11 +0100 <ski> sshine : <https://hackage.haskell.org/user/HenningThielemann>
2021-02-04 16:15:48 +0100 <merijn> sshine: The person with the world's most disliked Haskell naming scheme :p
2021-02-04 16:15:52 +0100 <ski> a typical example is `instance (Ord a,Num a) => C (T a)'
2021-02-04 16:16:13 +0100 <merijn> sshine: Do you like all your classes being called C and all your types T? Do I have the libraries for you!
2021-02-04 16:16:19 +0100 <ski> (can you guess from which package that is taken ?)
2021-02-04 16:16:27 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 16:16:30 +0100 <merijn> ski: All of them? :D
2021-02-04 16:16:48 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 16:16:51 +0100 <sshine> ohh... an academic! :-D
2021-02-04 16:17:09 +0100 <merijn> sshine: Hardly
2021-02-04 16:17:12 +0100 <sshine> merijn, sounds very mathematician-like. surely the habit of someone who thinks they're writing on a blackboard. :-P
2021-02-04 16:17:39 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 16:17:52 +0100 <merijn> sshine: His opinion is that all imports should always be qualified, so you can just read the module name, but those don't show in the haddocks
2021-02-04 16:18:39 +0100 <sshine> merijn, a mere tooling problem!
2021-02-04 16:19:53 +0100 <maerwald> kuribas: lol, because you should use conduit instead? no thanks :p
2021-02-04 16:19:54 +0100 <ski> oh how do you like `data Handle = Handle {sequ :: T DuplexMode,client :: T,portPublic :: T,portPrivate :: T,queue :: T}' ?
2021-02-04 16:20:02 +0100 <ski> (yes, that's not a kind error)
2021-02-04 16:20:41 +0100 <kuribas> maerwald: or streamly?
2021-02-04 16:20:54 +0100 <maerwald> kuribas: snoyman is not affiliated with that
2021-02-04 16:21:16 +0100 <kuribas> maerwald: I think his complaint was predictable performance.
2021-02-04 16:21:19 +0100 <kuribas> not NIH
2021-02-04 16:21:51 +0100 <sshine> ski, if it were `data Handle t = ...`, maybe. :-D
2021-02-04 16:21:52 +0100 <maerwald> wait... vector streaming is the basis for streamly and streamly outperforms conduit in *every* single instance afaik
2021-02-04 16:21:53 +0100pera(~pera@unaffiliated/pera) (Quit: leaving)
2021-02-04 16:21:54 +0100 <ski> (note that most of those `T's are different types)
2021-02-04 16:22:25 +0100 <merijn> maerwald: His complaint is "streaming vector operations" and "vector library" should be separate packages
2021-02-04 16:22:47 +0100 <maerwald> I could just read the rant maybe, but my blood pressure
2021-02-04 16:23:07 +0100 <sshine> maerwald, someone is wrong on the internets!
2021-02-04 16:23:16 +0100 <merijn> maerwald: "every single instance" being "when you're using only pure code that conduit/pipes were never designed for"? >.>
2021-02-04 16:23:31 +0100 <sshine> maerwald, silence is complicity!
2021-02-04 16:23:31 +0100 <ski> sshine : wouldn't work, if you meant `data Handle t = Handle {sequ :: t DuplexMode,client :: t,portPublic :: t,portPrivate :: t,queue :: t}'
2021-02-04 16:23:38 +0100 <sshine> ski, :(
2021-02-04 16:23:56 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
2021-02-04 16:24:02 +0100 <ski> (see my comment above)
2021-02-04 16:24:05 +0100 <sshine> ski, I don't know. I was just thinking that 'T' is a bad name, but somehow we tend to accept short type parameters.
2021-02-04 16:24:20 +0100 <maerwald> merijn: right, I forgot that snoyman usually designs everything around a huge transformer stack where the innermost monad is IO anyway
2021-02-04 16:24:30 +0100 <ski> the point isn't quite that `T' is an uninformative name
2021-02-04 16:24:33 +0100 <sshine> ski, I suppose it is because in most concrete applications, those become more spelled-out instances.
2021-02-04 16:24:35 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2021-02-04 16:24:41 +0100 <sshine> ski, oh, what is the point then?
2021-02-04 16:24:43 +0100 <ski> the point is that the same name `T' refers to *different* types, there
2021-02-04 16:24:44 +0100 <merijn> maerwald: All of iteratees (and conduit and pipes) were designed for streaming *IO*
2021-02-04 16:24:49 +0100 <sshine> ski, oh, hahaha.
2021-02-04 16:25:09 +0100ubert(~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2021-02-04 16:25:11 +0100 <maerwald> well, then what's the point of using it... io-streams is simpler
2021-02-04 16:25:13 +0100 <sshine> ski, sorry, I didn't notice because of the spacing. how is that possible?
2021-02-04 16:25:16 +0100 <maerwald> streamly is faster
2021-02-04 16:25:16 +0100 <ski> (in the source, there's module qualification. but the Haddock doesn't show that)
2021-02-04 16:25:23 +0100 <merijn> maerwald: Seems weird to complain about the performance of conduit for pure streams when it's intended and practical use it's entirely irrelevant
2021-02-04 16:26:02 +0100 <ski> sshine : so, when looking at docs for his packages, you very easily gets lost in a maze of `T's and `C's, all seemingly the same
2021-02-04 16:26:02 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-04 16:26:16 +0100noctux(~noctux@unaffiliated/noctux) (Ping timeout: 240 seconds)
2021-02-04 16:26:23 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 16:26:27 +0100 <sshine> ski, can you link to the place you got that line from? I need to know how that's possible.
2021-02-04 16:26:29 +0100 <merijn> maerwald: io-streams lacks some pretty obvious basic things
2021-02-04 16:26:45 +0100 <merijn> maerwald: Like "the utter inability to write middles"
2021-02-04 16:26:46 +0100 <ski> sshine : <https://hackage.haskell.org/package/streamed-0.2/docs/Sound-MIDI-ALSA-Common.html>
2021-02-04 16:26:54 +0100 <merijn> maerwald: You can only writes sources and sinks
2021-02-04 16:27:07 +0100lawid(~quassel@dslb-088-073-132-251.088.073.pools.vodafone-ip.de) (Quit: lawid)
2021-02-04 16:27:07 +0100 <ski> sshine : now hover over the `T's to see the links describing where they come from
2021-02-04 16:27:18 +0100 <merijn> maerwald: So sure, "io-streams is simpler" if you throw out 90% of the desired functionality
2021-02-04 16:27:29 +0100 <maerwald> 90%? :D
2021-02-04 16:27:47 +0100 <ski> sshine : next, check the corresponding source of the definition of `Handle'
2021-02-04 16:27:47 +0100 <sshine> ski, ahhh, I get it. so the code reads SndSeq.T, Client.T, Port.T, Queue.T, but GHCi or whatever just says T, T, T, T.
2021-02-04 16:27:53 +0100 <ski> yes
2021-02-04 16:28:08 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-02-04 16:28:15 +0100 <ski> (Haddock, not GHCi. i don't recall what GHCi says)
2021-02-04 16:28:18 +0100 <merijn> maerwald: I spent most of my time on the middle, interesting part of a processing pipeline, yes. Not on the boring input/output
2021-02-04 16:28:27 +0100noctux(~noctux@unaffiliated/noctux)
2021-02-04 16:28:37 +0100 <kuribas> merijn: it's only irrelevant if your database is slow
2021-02-04 16:29:06 +0100 <sshine> ski, Jane Street's Base library (OCaml) also has the convention of having modules export the type 't', so Int.t is the integer type, etc. But I think it works better in ML because of all the module verbosity. Haskell's type classes makes this horrible.
2021-02-04 16:29:08 +0100 <merijn> kuribas: That's nonsense
2021-02-04 16:29:08 +0100 <kuribas> merijn: what if you use it to stream stuff from lmdb on a ssd for example?
2021-02-04 16:29:16 +0100lawid(~quassel@dslb-088-073-132-251.088.073.pools.vodafone-ip.de)
2021-02-04 16:29:48 +0100 <kuribas> merijn: streamly is even faster than plain lists
2021-02-04 16:29:49 +0100 <merijn> kuribas: Show me a benchmark showing non-trivial overhead of Conduit when doing IO
2021-02-04 16:29:54 +0100 <sshine> ski, I also think there are other conventions like higher-order modules taking arguments named 'M', 'F', and so on. I think it can really work out as long as the syntax enforces verbosity everywhere.
2021-02-04 16:30:09 +0100 <kuribas> merijn: if I get my lmdb database working, I will :)
2021-02-04 16:30:18 +0100 <maerwald> merijn: there's an australian company doing video streaming with haskell and they laughed at conduit
2021-02-04 16:30:31 +0100maroloccio(~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
2021-02-04 16:30:36 +0100 <kuribas> merijn: it's memory mapped, so if the timeseries is in memory, it will be as fast as fetching from RAM.
2021-02-04 16:31:02 +0100jiribenes(~jiribenes@rosa.jiribenes.com) (Ping timeout: 260 seconds)
2021-02-04 16:31:09 +0100 <maerwald> I'm too lazy to find the presentation slides
2021-02-04 16:31:20 +0100 <sshine> ski, but yeah, the Haddock just looks altogether broken. my first thought is "Either this guy knows mad type-fu, or his code is utterly broken." :-D
2021-02-04 16:31:25 +0100 <merijn> maerwald: "unknown company laughs at library for unmentioned reason" wow, some truly compelling evidence that conduit is problematic
2021-02-04 16:31:45 +0100 <merijn> I'm sure there's usecases where it can't work, but for 95% of people asking questions here it's fine
2021-02-04 16:31:46 +0100 <maerwald> merijn: yes, it was a presentation at standard chartered
2021-02-04 16:31:51 +0100 <maerwald> pretty random
2021-02-04 16:32:23 +0100 <merijn> This means nothing
2021-02-04 16:32:26 +0100 <maerwald> they tried all libraries and ended up at 'streaming'
2021-02-04 16:32:46 +0100 <maerwald> field experience means nothing? :)
2021-02-04 16:32:55 +0100 <maerwald> ok
2021-02-04 16:32:59 +0100 <merijn> maerwald: Without knowing what their usecase is, why there was a problem, etc. you can't just blindly generalise "this library has shit performance"
2021-02-04 16:33:08 +0100 <ski> sshine : yes, i think TH got the convention from the MLs
2021-02-04 16:33:35 +0100 <merijn> maerwald: Field experience says "95% of problems are fine to solve with conduit", because people are doing that *right now*
2021-02-04 16:34:22 +0100 <maerwald> well, I trust others production experience more than benchmarks, but I guess that's just me
2021-02-04 16:34:23 +0100 <sshine> ski, sadly I looked at his code and thought "Oh, yeah, that's fine." -- but had I evaluated the Haddock first I'd have been severely annoyed. the power of internalization.
2021-02-04 16:34:27 +0100 <merijn> "You should use library X, because it's faster than Y (by sacrificing features)!" is the exact same nonsense reasoning C people say you should write everything in C "for performance"
2021-02-04 16:34:43 +0100 <maerwald> merijn: what is 'streaming' missing?
2021-02-04 16:34:59 +0100 <sshine> merijn, stalking Henning I found this excellent piece, http://research.henning-thielemann.de/CHater.html
2021-02-04 16:35:09 +0100 <merijn> maerwald: Integration with every other library I use
2021-02-04 16:35:25 +0100 <kuribas> merijn: conduit also looks easier to use than streamly
2021-02-04 16:35:27 +0100 <maerwald> merijn: that's not the problem of the library author
2021-02-04 16:35:34 +0100 <merijn> maerwald: The performance of your streaming library is *only* relevant if that performance is the bottleneck of your program
2021-02-04 16:35:50 +0100 <merijn> maerwald: My statement is: for 95% of programmers and usecases, conduit is not the bottleneck
2021-02-04 16:35:50 +0100 <ski> (typically not always, or only, sacrificing features, but also reasoning tools)
2021-02-04 16:36:01 +0100 <maerwald> merijn: where did you get that number from?
2021-02-04 16:36:04 +0100 <merijn> Therefore it's supposed "bad" performance is irrelevant
2021-02-04 16:36:24 +0100 <merijn> maerwald: The fact that tons of hackage is using conduit and not having any performance problems
2021-02-04 16:36:28 +0100 <dolio> You should use lazy I/O, then, right? Because it integrates perfectly with everything.
2021-02-04 16:36:37 +0100 <maerwald> merijn: eh, that depends on the use case
2021-02-04 16:37:00 +0100 <merijn> maerwald: Right, that's like, literally, what I said
2021-02-04 16:37:02 +0100 <maerwald> and, in general, not a great argument either
2021-02-04 16:37:32 +0100 <sshine> merijn, I'd even go as far as to say: for 99.9999% of programmers, conduit isn't even a dependency!
2021-02-04 16:37:41 +0100 <merijn> sshine: Pretty much
2021-02-04 16:38:00 +0100 <maerwald> I'm more interested in what ppl use those libraries for in production, rather than looking at those few hackage libs that make use of it
2021-02-04 16:38:12 +0100 <maerwald> I don't see how that's a good metric
2021-02-04 16:38:19 +0100 <merijn> kuribas: It is, despite maerwald's complaints that streamly is "just as easy" I find it's API confusing and overcomplicated
2021-02-04 16:38:48 +0100 <maerwald> it's confusing to navigate the documentation, but conduit is worse
2021-02-04 16:38:55 +0100 <kuribas> merijn: it's "like a list", but then not realy, as elements can be lost if you just have a side-effect.
2021-02-04 16:38:55 +0100 <merijn> maerwald: People use kubernetes and hadoop in production too, so that's not really a great metric anyway
2021-02-04 16:39:01 +0100jiribenes(~jiribenes@rosa.jiribenes.com)
2021-02-04 16:39:14 +0100 <kuribas> merijn: IMO streamly is a ListT don't right with concurrency support.
2021-02-04 16:39:34 +0100 <kuribas> so basically a very fancy list transformer.
2021-02-04 16:39:37 +0100 <merijn> Anyway, back to doing something useful with my life, rather than indulging maerwald's axe grinding :p
2021-02-04 16:39:49 +0100 <merijn> kuribas: Oh, but I already have a "concurrent conduit" stage :p
2021-02-04 16:40:23 +0100 <exarkun> Where's the version of Data.Map.fromListWith that takes (a -> a -> b) and gives you `Map k b`, instead?
2021-02-04 16:40:27 +0100 <maerwald> functor, monad etc instances in streamly do something actually useful
2021-02-04 16:40:36 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 16:40:46 +0100 <merijn> exarkun: How would that work?
2021-02-04 16:40:53 +0100 <merijn> exarkun: What if a key has no duplicates
2021-02-04 16:40:58 +0100 <maerwald> conduit doesn't really provide you *streams*, but stream "producers" or how you all it
2021-02-04 16:41:04 +0100 <merijn> maerwald: Eh, the functor and monad instance of conduit *are* useful
2021-02-04 16:41:12 +0100 <merijn> maerwald: In fact, I use them a bunch of times in my code
2021-02-04 16:41:13 +0100 <maerwald> streamly follows a different philosophy
2021-02-04 16:41:28 +0100ski. o O ( stream transducers ? )
2021-02-04 16:41:33 +0100bitmagie(~Thunderbi@200116b80656d50064954332a754decc.dip.versatel-1u1.de) (Quit: bitmagie)
2021-02-04 16:41:34 +0100 <maerwald> that makes other parts of streaming harder though
2021-02-04 16:42:04 +0100zaquest(~notzaques@5.128.210.178)
2021-02-04 16:42:05 +0100 <maerwald> the Fold/Unfold stuff etc can be confusing too
2021-02-04 16:42:08 +0100 <exarkun> merijn: Hm yea. _Actually_ what I want is a constructor that gives me `Map k [a]`
2021-02-04 16:42:16 +0100 <kuribas> maerwald: the monad instance is like a non-determinism monad, but that makes it weird for streaming.
2021-02-04 16:42:55 +0100 <merijn> exarkun: eh "Map.fromListWith (++) . map (:[])" :p
2021-02-04 16:43:47 +0100 <Taneb> foldr (M.insertWith (<>) . (LNE.:|[])) M.empty
2021-02-04 16:44:18 +0100 <exarkun> Oof.
2021-02-04 16:44:39 +0100 <merijn> Could've have done a nice foldMap with M.singleton if the Monoid for Map hadn't sucked
2021-02-04 16:44:41 +0100 <exarkun> _Actually_ what I want is `something :: [(a, b)] -> Map a [b]`
2021-02-04 16:44:53 +0100knupfer(~Thunderbi@200116b82ca37600006d23d966947440.dip.versatel-1u1.de)
2021-02-04 16:45:06 +0100 <merijn> :t M.fromListWith (++) . map (second (:[]))
2021-02-04 16:45:08 +0100 <lambdabot> Ord k => [(k, a)] -> M.Map k [a]
2021-02-04 16:45:08 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 16:45:09 +0100 <sshine> Map.fromListWith (<>) ?
2021-02-04 16:45:12 +0100 <merijn> boom
2021-02-04 16:45:22 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 16:45:31 +0100 <kuribas> merijn: isn't that quadratic?
2021-02-04 16:45:32 +0100 <sshine> (:[]) being robot monkey
2021-02-04 16:45:38 +0100 <merijn> kuribas: No, why?
2021-02-04 16:45:43 +0100 <kuribas> merijn: appending?
2021-02-04 16:45:46 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-04 16:45:54 +0100 <Taneb> :t foldr (uncurry (M.insertWith (<>)) . second (NE.:|[])) M.empty
2021-02-04 16:45:55 +0100 <lambdabot> (Foldable t, Ord k) => t (k, b) -> M.Map k (NonEmpty b)
2021-02-04 16:46:02 +0100 <exarkun> What's `second`? `snd`?
2021-02-04 16:46:07 +0100 <merijn> :t second
2021-02-04 16:46:08 +0100 <lambdabot> Arrow a => a b c -> a (d, b) (d, c)
2021-02-04 16:46:12 +0100 <merijn> eh, wrong one
2021-02-04 16:46:14 +0100 <exarkun> Oof.
2021-02-04 16:46:16 +0100 <merijn> :t Data.Bifunctor.second
2021-02-04 16:46:18 +0100 <lambdabot> Bifunctor p => (b -> c) -> p a b -> p a c
2021-02-04 16:46:20 +0100 <Taneb> (a -> b) -> (c, a) -> (c, b)
2021-02-04 16:46:23 +0100 <ski> @type \f x -> second f x
2021-02-04 16:46:25 +0100 <lambdabot> (b -> c) -> (d, b) -> (d, c)
2021-02-04 16:46:25 +0100 <Taneb> merijn: they match for (,)
2021-02-04 16:46:37 +0100 <merijn> Taneb: Yes, but Control.Arrow is ba
2021-02-04 16:46:39 +0100 <merijn> *bad
2021-02-04 16:46:57 +0100mirrorbird(~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) (Ping timeout: 272 seconds)
2021-02-04 16:47:14 +0100 <merijn> Wait, I guess technically fmap works :p
2021-02-04 16:47:22 +0100 <Taneb> When I'm using "second" to map over the second element of a tuple, I don't care which second I'm using
2021-02-04 16:47:24 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 16:47:27 +0100 <merijn> :t M.fromListWith (++) . map (fmap (:[]))
2021-02-04 16:47:28 +0100 <lambdabot> Ord k => [(k, a)] -> M.Map k [a]
2021-02-04 16:47:38 +0100 <sshine> :t Data.Map.fromListWith (<>) . fmap (second pure)
2021-02-04 16:47:40 +0100 <lambdabot> (Ord k, Semigroup (f b), Applicative f) => [(k, b)] -> M.Map k (f b)
2021-02-04 16:47:43 +0100 <merijn> Avoided an import! \o/
2021-02-04 16:47:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 16:48:03 +0100 <sshine> @src second
2021-02-04 16:48:03 +0100 <lambdabot> Source not found. Are you on drugs?
2021-02-04 16:48:14 +0100 <merijn> sshine: "foldMap (\(k, v) -> M.singleton k [v])" would've worked with a not sucky monoid on Map
2021-02-04 16:48:27 +0100 <merijn> That's even cleaner, imo
2021-02-04 16:48:33 +0100 <merijn> Bad alas
2021-02-04 16:48:40 +0100 <merijn> for now the Monoid sucks
2021-02-04 16:48:55 +0100 <Taneb> (I'd use non-empty lists here, but it's not important)
2021-02-04 16:48:58 +0100 <exarkun> Okay, just learned that (,) has a Functor instance...
2021-02-04 16:49:02 +0100 <Uniaika> exarkun: yes :)
2021-02-04 16:49:04 +0100 <kuribas> merijn: ok, so it inserts it backwards.
2021-02-04 16:49:06 +0100 <sshine> merijn, where do I use Map's Monoid?
2021-02-04 16:49:09 +0100 <maerwald> merijn: https://github.com/ivan-m/FPSyd-Streaming
2021-02-04 16:49:13 +0100 <kuribas> merijn: reversing the list
2021-02-04 16:49:18 +0100 <Uniaika> exarkun: we have a surprise for you in the next docs for Funtor
2021-02-04 16:49:21 +0100 <Uniaika> *Functor
2021-02-04 16:49:26 +0100 <Taneb> (here there's not any semantic difference between the value at x being [] and there not being a value at x at all)
2021-02-04 16:49:33 +0100 <merijn> sshine: No, I meant my example would work with that
2021-02-04 16:49:47 +0100 <ski> @src (->) second
2021-02-04 16:49:47 +0100 <lambdabot> second f = id *** f
2021-02-04 16:49:57 +0100 <ski> @src (->) (***)
2021-02-04 16:49:57 +0100 <lambdabot> (f *** g) ~(x,y) = (f x, g y)
2021-02-04 16:50:03 +0100 <ski> @src (,) fmap
2021-02-04 16:50:03 +0100 <lambdabot> fmap f (x,y) = (x, f y)
2021-02-04 16:50:16 +0100 <sshine> merijn, ah. I really like Map.fromListWith :) I *also* like foldMap in principle, but often good Monoid instances are hard to come by.
2021-02-04 16:51:08 +0100 <exarkun> Uniaika: Oh goodie, more surprises :)
2021-02-04 16:53:14 +0100 <Uniaika> exarkun: if you can't wait: https://imrryr.org/~viktor/haskell/ghc-docs/libraries/base/Data-Foldable.html#g:21
2021-02-04 16:53:30 +0100 <maerwald> merijn: there are some good API related arguments in that presentation
2021-02-04 16:53:30 +0100 <merijn> maerwald: That doesn't have any units/labelling on the performance axes, nor does it have any indication of those were "pure streams" or IO streams
2021-02-04 16:53:39 +0100 <maerwald> correct
2021-02-04 16:53:45 +0100 <exarkun> Uniaika: thanks!
2021-02-04 16:54:19 +0100 <maerwald> merijn: https://ivan-m.github.io/FPSyd-Streaming/#/benchmarks
2021-02-04 16:54:39 +0100 <merijn> maerwald: I already saw that
2021-02-04 16:54:52 +0100 <merijn> But again, no axes labelling/units and no explanation of what's being measured
2021-02-04 16:55:03 +0100 <maerwald> sure, it isn't scientific
2021-02-04 16:55:10 +0100 <maerwald> and idc about that
2021-02-04 16:55:14 +0100 <merijn> maerwald: If you had said "I dislike conduit's API/interface" I can respect that
2021-02-04 16:55:40 +0100 <merijn> maerwald: Telling every beginner "conduit is too slow, don't use it" is just misleading
2021-02-04 16:56:12 +0100 <kuribas> merijn: like this guy complaining about mutable data structures being to slow.
2021-02-04 16:56:28 +0100 <maerwald> merijn: I did not do that
2021-02-04 16:56:42 +0100 <maerwald> merijn: I said "streamly is faster" and "io-streams is simpler" :)
2021-02-04 16:56:57 +0100 <merijn> maerwald: Literally anytime mentions conduit you complain it's too slow >.>
2021-02-04 16:56:59 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-04 16:57:08 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-04 16:57:33 +0100toorevitimirp(~tooreviti@117.182.181.186)
2021-02-04 16:57:35 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-04 16:57:36 +0100 <maerwald> no, I just don't see which use case it fits... there's a better library for every use case
2021-02-04 16:57:46 +0100 <idnar> :t foldMapBy (M.fromListWith (++)) mempty (\(k, v) -> M.singleton k [v]) -- here you go merijn
2021-02-04 16:57:47 +0100 <lambdabot> error:
2021-02-04 16:57:47 +0100 <lambdabot> • Couldn't match type ‘M.Map k1 [a1]’
2021-02-04 16:57:47 +0100 <lambdabot> with ‘[(k1, [a1])] -> [(k1, [a1])]’
2021-02-04 16:57:52 +0100 <merijn> I mean, chuck a "read lines of numbers from a file" in front of those streaming benchmarks and I'll bet you the bars will suddenly be equally long >.>
2021-02-04 16:57:54 +0100 <idnar> err
2021-02-04 16:58:31 +0100 <maerwald> merijn: I'll actually gonna try to use conduit for file writing and see if the performance is equal to streamly
2021-02-04 16:58:59 +0100 <maerwald> I have a version of low-level haskell loop and a streamly loop already
2021-02-04 16:59:38 +0100 <idnar> why :/
2021-02-04 17:00:05 +0100 <idnar> OH
2021-02-04 17:00:31 +0100 <idnar> :t foldMapBy (M.unionWith (++)) mempty (\(k, v) -> M.singleton k [v])
2021-02-04 17:00:33 +0100 <lambdabot> (Foldable t, Ord k) => t (k, a) -> M.Map k [a]
2021-02-04 17:00:55 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-zomvgoemagekvvah)
2021-02-04 17:01:14 +0100kritzefitz(~kritzefit@212.86.56.80)
2021-02-04 17:01:24 +0100hackageHDBC-postgresql 2.5.0.0 - PostgreSQL driver for HDBC https://hackage.haskell.org/package/HDBC-postgresql-2.5.0.0 (DavidJohnson)
2021-02-04 17:01:28 +0100 <maerwald> and then we can continue the discussion next week :D
2021-02-04 17:01:28 +0100ubert(~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de)
2021-02-04 17:01:36 +0100 <maerwald> I have a feeling you're eager to
2021-02-04 17:02:13 +0100berberman(~berberman@unaffiliated/berberman) (Client Quit)
2021-02-04 17:02:41 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-04 17:03:28 +0100toorevitimirp(~tooreviti@117.182.181.186) (Remote host closed the connection)
2021-02-04 17:03:54 +0100hackagetrackit 0.7 - A command-line tool for live monitoring https://hackage.haskell.org/package/trackit-0.7 (EmilAxelsson)
2021-02-04 17:03:55 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 17:04:11 +0100 <idnar> :t foldMapBy (M.unionWith (++)) mempty (\(k, v) -> M.singleton k (v :| []))
2021-02-04 17:04:12 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 17:04:12 +0100 <lambdabot> error:
2021-02-04 17:04:12 +0100 <lambdabot> • Couldn't match type ‘NonEmpty a’ with ‘[a1]’
2021-02-04 17:04:12 +0100 <lambdabot> Expected type: M.Map k [a1]
2021-02-04 17:04:32 +0100 <idnar> :t foldMapBy (M.unionWith (<>)) mempty (\(k, v) -> M.singleton k (v :| []))
2021-02-04 17:04:33 +0100 <lambdabot> (Foldable t, Ord k) => t (k, a) -> M.Map k (NonEmpty a)
2021-02-04 17:05:22 +0100cocreature(~cocreatur@eirene.uberspace.de) (Read error: Connection reset by peer)
2021-02-04 17:06:03 +0100cocreature(~cocreatur@eirene.uberspace.de)
2021-02-04 17:06:09 +0100jiribenes(~jiribenes@rosa.jiribenes.com) (Quit: jiribenes)
2021-02-04 17:06:25 +0100jiribenes(~jiribenes@rosa.jiribenes.com)
2021-02-04 17:07:41 +0100ransom(~c4264035@2a09:bac0:98::830:861e)
2021-02-04 17:08:10 +0100 <Taneb> Stack/cabal/something in the whole pile has decided to ignore my data-files all of a sudden
2021-02-04 17:08:19 +0100 <Taneb> Not sure what I've changed to break it
2021-02-04 17:08:28 +0100berberman(~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-04 17:08:46 +0100 <merijn> Ignore data files how?
2021-02-04 17:09:30 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-04 17:09:43 +0100 <Taneb> They're not showing up where in the build directory where Paths_lib.getDataFileName expects them to be
2021-02-04 17:10:04 +0100LKoen_(~LKoen@252.248.88.92.rev.sfr.net)
2021-02-04 17:10:24 +0100berberman(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2021-02-04 17:11:03 +0100berberman(~berberman@unaffiliated/berberman)
2021-02-04 17:11:28 +0100 <merijn> hmm, not sure how stack handles those, tbh
2021-02-04 17:11:29 +0100 <Taneb> ...actually, something is very wrong, there's a whole file heirarchy that doesn't seem to exist
2021-02-04 17:12:21 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it) (Quit: Leaving)
2021-02-04 17:12:27 +0100 <merijn> Taneb: data files normally get installed, I now v2-run has a special hack to make data files work for not installed executables in your build, but I dunno if stack has that
2021-02-04 17:12:47 +0100LKoen(~LKoen@252.248.88.92.rev.sfr.net) (Ping timeout: 256 seconds)
2021-02-04 17:13:07 +0100 <Taneb> These are only used at build
2021-02-04 17:13:34 +0100 <merijn> Data files only used at build?
2021-02-04 17:13:38 +0100 <Taneb> Yes?
2021-02-04 17:13:50 +0100 <merijn> That sounds *horribly* suspicious
2021-02-04 17:13:59 +0100 <merijn> Because that's not what Paths_ is for
2021-02-04 17:14:16 +0100 <merijn> That's for finding datafiles at runtime
2021-02-04 17:14:20 +0100 <Taneb> I'm generating a whole bunch of code with template haskell based on some CSV files
2021-02-04 17:14:27 +0100 <merijn> Taneb: Are you using stack or cabal?
2021-02-04 17:14:38 +0100 <Taneb> Stack
2021-02-04 17:14:40 +0100TianGTY(~textual@211.106.132.202)
2021-02-04 17:14:56 +0100 <merijn> ok, that I can't help with
2021-02-04 17:15:04 +0100swarmcollectivethinks Taneb is building a transpiler. :)
2021-02-04 17:15:05 +0100 <Taneb> What would you have said if I said cabal
2021-02-04 17:15:15 +0100 <merijn> Taneb: But, eh, I'm fairly confident that you cannot rely on Paths_ at compile time
2021-02-04 17:15:41 +0100 <Taneb> Hmm, that would be consistent if I'd built it successfully before but not invoked the template haskell
2021-02-04 17:15:49 +0100 <merijn> Taneb: tbh, it sounds like what you need is to mark those CSV file as extra-source-files and just access them via relative path
2021-02-04 17:16:10 +0100 <merijn> (in TH)
2021-02-04 17:16:19 +0100 <merijn> Ditching the Paths_ stuff entirely
2021-02-04 17:16:34 +0100smitop(uid328768@gateway/web/irccloud.com/x-meiowmymjnuutbpg)
2021-02-04 17:17:44 +0100 <Taneb> OK, that's easy enough, I'll give it a go
2021-02-04 17:18:42 +0100 <merijn> Taneb: With data-files those CSV files are getting copied/installed along with your package code, so that doesn't sound like your goal anyway
2021-02-04 17:18:55 +0100hackageZ-IO 0.6.0.0 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.6.0.0 (winterland)
2021-02-04 17:19:10 +0100 <merijn> Taneb: It's more intended for stuff like "what if you wanted to ship an English dictionary with your executable and access it at runtime?"
2021-02-04 17:19:35 +0100Deide(~Deide@217.155.19.23)
2021-02-04 17:19:35 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a)
2021-02-04 17:19:43 +0100 <Taneb> merijn: OK, it's working much better now, thank you
2021-02-04 17:19:48 +0100 <merijn> \o/
2021-02-04 17:20:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
2021-02-04 17:20:55 +0100TianGTY(~textual@211.106.132.202) (Remote host closed the connection)
2021-02-04 17:21:46 +0100zelazny(~zelazny@217.146.82.202)
2021-02-04 17:22:59 +0100 <swarmcollective> Taneb, out of curiosity, is this something that you expect to do often (convert csv formatted content to Haskell code)? I'm just trying to imagine a usecase for that.
2021-02-04 17:23:36 +0100 <Taneb> swarmcollective: it's not something I'd ever recommend
2021-02-04 17:23:55 +0100 <swarmcollective> Fair enough.
2021-02-04 17:24:22 +0100 <Taneb> But here the alternative is building a huge record with 90 constructors and up to 120 fields, which each constructor has some of but not all of, plus a parser to go with it
2021-02-04 17:25:55 +0100hiroaki(~hiroaki@ip4d17613f.dynamic.kabel-deutschland.de)
2021-02-04 17:25:59 +0100 <Taneb> When the data structure is described in a spreadsheet I got given
2021-02-04 17:26:16 +0100 <Taneb> This way might not be any easier but it's a lot more fun
2021-02-04 17:26:34 +0100 <swarmcollective> That sounds about right!
2021-02-04 17:29:21 +0100hseg(~gesh@185.120.124.95) (Ping timeout: 264 seconds)
2021-02-04 17:29:57 +0100ph88^(~ph88@ip5f5af71a.dynamic.kabel-deutschland.de)
2021-02-04 17:33:45 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 240 seconds)
2021-02-04 17:34:02 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 260 seconds)
2021-02-04 17:36:05 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-02-04 17:36:16 +0100 <ph88^> does someone have a link to where several preludes are debated ?
2021-02-04 17:36:49 +0100 <merijn> There are two types of Prelude
2021-02-04 17:37:01 +0100 <merijn> Prelude and a bunch of stuff nobody really uses
2021-02-04 17:37:34 +0100 <maerwald> merijn: I get around ~3secs (conduit) vs ~2.7sec (streamly) on a 3GB file copy operation (same device). I haven't run it through a proper benchmark program yet though. Could be difference in chunk size or fixed overhead
2021-02-04 17:37:36 +0100 <maerwald> https://github.com/hasufell/streamly-bench
2021-02-04 17:39:04 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds)
2021-02-04 17:39:20 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
2021-02-04 17:39:33 +0100mirrorbird(~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d)
2021-02-04 17:40:04 +0100frozenErebus(~frozenEre@94.128.81.133)
2021-02-04 17:40:07 +0100 <sm[m]> hello tomsmeding , sorry to keep pinging you
2021-02-04 17:40:08 +0100 <shapr> Is there a URL concatenation library that works like filepath? I want to prevent double slashes in URLs.
2021-02-04 17:40:17 +0100ixian(~mgold@2002:4a74:ba78:1701:0:ff:fe78:6269) (Ping timeout: 258 seconds)
2021-02-04 17:40:19 +0100 <tomsmeding> hi sm[m] :)
2021-02-04 17:40:53 +0100turion(~turion@2a02:810d:8abf:c4a8:7417:1a58:4f1d:bffb)
2021-02-04 17:41:06 +0100ixian(~mgold@terra.bitplane.org)
2021-02-04 17:41:13 +0100 <sm[m]> I think we're ready to stop having #hledger logged by ircbrowse, would you mind removing it from https://ircbrowse.tomsmeding.com
2021-02-04 17:41:22 +0100nhs(~nhs@c-24-20-87-79.hsd1.or.comcast.net)
2021-02-04 17:41:24 +0100hackagehaskoin-store 0.40.16 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.16 (jprupp)
2021-02-04 17:41:31 +0100 <tomsmeding> sure, will do
2021-02-04 17:41:41 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-yenulyouxfdnsprv) (Quit: Connection closed for inactivity)
2021-02-04 17:41:42 +0100 <tomsmeding> particular reason why, if I may ask? :)
2021-02-04 17:41:48 +0100motherfsck(~motherfsc@unaffiliated/motherfsck)
2021-02-04 17:42:24 +0100hackagehusk-scheme 3.20 - R5RS Scheme interpreter, compiler, and library. https://hackage.haskell.org/package/husk-scheme-3.20 (JustinEthier)
2021-02-04 17:43:00 +0100 <ezzieyguywuf> is there a more concise way to do this? Prelude> sequence_ (map (putStrLn . show) [1..10])
2021-02-04 17:43:21 +0100 <ryantrinkle> ezzieyguywuf: you can use mapM_ instead of sequence_ and map
2021-02-04 17:43:25 +0100 <maerwald> merijn: the difference seems to be varying between 0.3 to 0.6 seconds
2021-02-04 17:43:27 +0100 <tomsmeding> ( sm[m]: if you need to reach me to do something with stuff I host for #haskell and I'm unresponsive, feel free to use one of the other communication channels listed on my website)
2021-02-04 17:43:37 +0100 <ezzieyguywuf> blahhh I always forget about mapM_ thanks
2021-02-04 17:44:09 +0100 <swarmcollective> Isn't `print` essentially the same as `putStrLn . show` ?
2021-02-04 17:44:45 +0100 <tomsmeding> 'mapM_ print $' is muscle memory for me
2021-02-04 17:44:50 +0100 <sm[m]> tomsmeding: sure. Short answer, it tends to surprise people, some don't like it, and we're not making much use of it. Private logs + matrix logging is enough. (Matrix logging shows history only since you joined the channel, and isn't bot-accessible (at least to the same degree.)
2021-02-04 17:45:09 +0100 <tomsmeding> sm[m]: got it! makes sense too.
2021-02-04 17:45:28 +0100 <sm[m]> it wasn't that urgent, I just wanted to get it done as an atomic operation when you were around. Thanks, and thanks for the service!
2021-02-04 17:45:39 +0100 <maerwald> merijn: 7GB file is 8sec (streamly) vs 10sec (conduit)
2021-02-04 17:45:47 +0100 <maerwald> suggesting it's not a fixed overhead
2021-02-04 17:46:07 +0100bitmagie(~Thunderbi@200116b80656d5009dbe3295da93e3ee.dip.versatel-1u1.de)
2021-02-04 17:46:10 +0100conal(~conal@64.71.133.70) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-04 17:47:02 +0100bitmagie(~Thunderbi@200116b80656d5009dbe3295da93e3ee.dip.versatel-1u1.de) (Client Quit)
2021-02-04 17:47:08 +0100 <maerwald> if you can run it through criterion, that would be cool, I can barely use an editor
2021-02-04 17:47:26 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 17:47:31 +0100 <tomsmeding> sm[m]: shall I delete the logs currently in the database too?
2021-02-04 17:47:45 +0100 <sm[m]> (I still think public logs can be a useful resource for a public channel, but just don't want the hassle at the moment.) yes please
2021-02-04 17:47:49 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 17:48:28 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-04 17:49:54 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d1d4:ed84:6d20:4ae3)
2021-02-04 17:51:00 +0100conal(~conal@66.115.157.97)
2021-02-04 17:51:13 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 17:52:13 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 17:52:30 +0100dolio(~dolio@haskell/developer/dolio) (Ping timeout: 256 seconds)
2021-02-04 17:52:54 +0100dolio(~dolio@haskell/developer/dolio)
2021-02-04 17:55:02 +0100ubert(~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2021-02-04 17:56:23 +0100borne(~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 258 seconds)
2021-02-04 17:57:00 +0100 <monochrom> Hrm, atomic erasure of files = nuking, literally :)
2021-02-04 17:57:01 +0100michalz`(~user@185.246.204.93) (Remote host closed the connection)
2021-02-04 17:57:10 +0100carldd11(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2021-02-04 17:57:21 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-04 17:58:14 +0100carldd11(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-02-04 17:58:21 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2021-02-04 17:58:50 +0100 <aveltras> having some record like the following, i'd like to be able to generate lenses to update fields using the symbol given to Prop, those lenses should also work for multiple wrapper types f (goal is to have it work for Identity with Lucid and Dynamic t for reflex), i've started looking at the higgledy library and think it might be doable with it but im not sure, any idea ?
2021-02-04 17:58:55 +0100 <aveltras> https://www.irccloud.com/pastebin/AQpoUnML/
2021-02-04 18:01:08 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds)
2021-02-04 18:01:08 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds)
2021-02-04 18:02:02 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-02-04 18:02:16 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2021-02-04 18:02:17 +0100srk(~sorki@gateway/tor-sasl/sorki)
2021-02-04 18:03:09 +0100felixpm(~felixpm@172.56.10.85)
2021-02-04 18:03:26 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-02-04 18:04:00 +0100viluon(uid453725@gateway/web/irccloud.com/x-dhvshmzrbfswywrh) (Quit: Connection closed for inactivity)
2021-02-04 18:04:24 +0100 <tomsmeding> sm[m]: ircbrowse_tom should be gone from #hledger, is that correct?
2021-02-04 18:04:24 +0100conal(~conal@66.115.157.97) (Ping timeout: 256 seconds)
2021-02-04 18:04:53 +0100 <sm[m]> tomsmeding: correct. Thank you!
2021-02-04 18:05:39 +0100 <tomsmeding> sm[m]: channel removed from ircbrowse instance, logs and database entries deleted
2021-02-04 18:05:46 +0100 <tomsmeding> :)
2021-02-04 18:05:49 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 18:06:02 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 18:06:03 +0100carldd11(~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer)
2021-02-04 18:06:09 +0100 <tomsmeding> if this happens often I might write a script to clean the database, that's an annoying job
2021-02-04 18:06:20 +0100 <zzz> anyone here writing haskell in vim?
2021-02-04 18:06:27 +0100 <tomsmeding> zzz: nvim
2021-02-04 18:06:39 +0100 <polux200137> Hello! Is there a list-like structure in haskell with fast random access, fast concatenation, and that supports infinite sequences? (Data.Sequence is finite, Vector has O(n+m) concatenation). I've found https://hackage.haskell.org/package/nested-sequence-0.1/docs/Data-Nested-Seq-Lazy.html. Is there anything more canon?
2021-02-04 18:07:01 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:d1d4:ed84:6d20:4ae3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-02-04 18:07:06 +0100 <zzz> tomsmeding: what's currently a good solution for ghci integration?
2021-02-04 18:07:22 +0100carldd11(~carldd@90-224-49-113-no56.tbcn.telia.com)
2021-02-04 18:07:35 +0100 <tomsmeding> zzz: I use either HLS using ALE, or ghcid if HLS doesn't work
2021-02-04 18:07:43 +0100 <tomsmeding> not sure how much integration you want
2021-02-04 18:08:02 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds)
2021-02-04 18:09:00 +0100hseg(~gesh@185.120.124.95)
2021-02-04 18:10:14 +0100felixpm(~felixpm@172.56.10.85) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2021-02-04 18:10:38 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 18:11:04 +0100 <sm[m]> tomsmeding: a small factor in the decision was the noise (and excess personal information) from join/leave messages in the log
2021-02-04 18:11:04 +0100_noblegas(uid91066@gateway/web/irccloud.com/x-nqgmbmccisnkcgyh) (Quit: Connection closed for inactivity)
2021-02-04 18:11:30 +0100Wuzzy(~Wuzzy@p5b0df175.dip0.t-ipconnect.de)
2021-02-04 18:12:27 +0100 <zzz> my priority is showing a selected function's type but ghci integration would be nice
2021-02-04 18:12:27 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 18:12:53 +0100 <zzz> i tried hdevtools with syntastic but i couldnt make it work
2021-02-04 18:13:42 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 18:15:31 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2021-02-04 18:15:34 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-04 18:15:53 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 18:16:14 +0100rajivr(uid269651@gateway/web/irccloud.com/x-fytanfqvvewadlns) (Quit: Connection closed for inactivity)
2021-02-04 18:16:21 +0100ADG1089__(~aditya@223.236.190.35) (Remote host closed the connection)
2021-02-04 18:17:05 +0100 <merijn> polux200137: Pretty sure those requirements are contradictory :p
2021-02-04 18:17:14 +0100 <polux200137> nested-sequence doesn't build anymore because it declares an instance for Monoid but not Semigroup
2021-02-04 18:17:24 +0100conal(~conal@64.71.133.70)
2021-02-04 18:17:26 +0100 <polux200137> merijn: is the doc of nested-sequence lying then?
2021-02-04 18:17:27 +0100 <merijn> zzz: hdevtools has been dead for *well* over 4 years
2021-02-04 18:17:54 +0100 <merijn> zzz: I maintained my own fork 2 years after it died, but I haven't touched that fork since, like, 2016
2021-02-04 18:18:21 +0100 <merijn> zzz: ghcide (either directly, or via hls) together with an LSP plugin is the way to go
2021-02-04 18:18:24 +0100 <polux200137> merijn: ah no it isn't, and you're right, it has O(n) append
2021-02-04 18:18:25 +0100 <polux200137> sorry
2021-02-04 18:18:36 +0100 <merijn> I use ALE with ghcide
2021-02-04 18:18:41 +0100 <polux200137> I mean I don't know if you're right but it is not a good counter-example :)
2021-02-04 18:19:07 +0100 <polux200137> do you think it's contradictory because infinite lists cannot be balanced?
2021-02-04 18:19:14 +0100 <polux200137> I guess that would make sense
2021-02-04 18:19:25 +0100Guest19099(~textual@zrcout.mskcc.org) (Ping timeout: 240 seconds)
2021-02-04 18:19:35 +0100 <merijn> polux200137: I mean, fast random access limits you to some finite representation that almost certainly rules out fast concatenation and infinite length
2021-02-04 18:19:49 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2021-02-04 18:19:56 +0100 <polux200137> yes ok, thanks
2021-02-04 18:19:59 +0100 <polux200137> makes sense
2021-02-04 18:20:03 +0100 <merijn> polux200137: I mean you could have an infinite binary tree, but that's not going to have very great random access
2021-02-04 18:20:04 +0100 <zzz> merijn: thanks
2021-02-04 18:20:29 +0100 <polux200137> merijn: yes, that's what I meant by "infinite lists cannot be balanced"
2021-02-04 18:20:39 +0100 <sshine> what's it called when you want to parse a Haskell module but not use haskell-src-exts?
2021-02-04 18:20:57 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
2021-02-04 18:21:39 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-02-04 18:21:59 +0100 <polux200137> sshine: wishful thinking :) seriously, ormolu's doc says "Using GHC's own parser to avoid parsing problems caused by haskell-src-exts" so that must be an option.
2021-02-04 18:22:10 +0100 <sshine> ghc-lib-parser
2021-02-04 18:25:05 +0100forgottenone(~forgotten@176.42.30.142)
2021-02-04 18:25:54 +0100dolio(~dolio@haskell/developer/dolio) (Ping timeout: 258 seconds)
2021-02-04 18:26:33 +0100heatsink_(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-04 18:26:34 +0100heatsink_(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-04 18:27:45 +0100dolio(~dolio@haskell/developer/dolio)
2021-02-04 18:29:50 +0100nineonine(~nineonine@50.216.62.2)
2021-02-04 18:30:38 +0100heatsink(~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds)
2021-02-04 18:30:54 +0100hackagehaskoin-store 0.40.17 - Storage and index for Bitcoin and Bitcoin Cash https://hackage.haskell.org/package/haskoin-store-0.40.17 (jprupp)
2021-02-04 18:31:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:8527:2d6c:6fbd:96de)
2021-02-04 18:32:04 +0100epicte7us(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-02-04 18:32:50 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2021-02-04 18:34:20 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-04 18:34:20 +0100ep1ctetus(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 258 seconds)
2021-02-04 18:34:59 +0100nineonin_(~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa)
2021-02-04 18:36:47 +0100nineoni__(~nineonine@50.216.62.2)
2021-02-04 18:38:06 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 246 seconds)
2021-02-04 18:39:33 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-04 18:39:38 +0100nineonin_(~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) (Ping timeout: 264 seconds)
2021-02-04 18:39:51 +0100Alleria(~textual@zrcout.mskcc.org)
2021-02-04 18:39:59 +0100vchlup(~vchlup@nat.brnet.cz) (Read error: Connection reset by peer)
2021-02-04 18:40:14 +0100AlleriaGuest69009
2021-02-04 18:40:31 +0100vchlup(~vchlup@nat.brnet.cz)
2021-02-04 18:40:45 +0100dolio(~dolio@haskell/developer/dolio) (Ping timeout: 265 seconds)
2021-02-04 18:40:51 +0100codolio(~dolio@haskell/developer/dolio)
2021-02-04 18:41:55 +0100hackageunliftio-streams 0.1.1.1 - Generalization of io-streams to MonadUnliftIO https://hackage.haskell.org/package/unliftio-streams-0.1.1.1 (BardurArantsson)
2021-02-04 18:44:03 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-02-04 18:44:06 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-04 18:44:48 +0100metreo(~Thunderbi@unaffiliated/metreo) (Client Quit)
2021-02-04 18:44:49 +0100chele(~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2021-02-04 18:45:48 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-02-04 18:47:06 +0100metreo(~Thunderbi@unaffiliated/metreo)
2021-02-04 18:48:58 +0100Franciman(~francesco@host-95-235-155-82.retail.telecomitalia.it)
2021-02-04 18:53:20 +0100itai(~itai@46.19.86.2)
2021-02-04 18:53:50 +0100Noldorin(~noldorin@unaffiliated/noldorin)
2021-02-04 18:54:02 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:7e89:568a:710c:5bc9) (Ping timeout: 264 seconds)
2021-02-04 18:54:04 +0100itai(~itai@46.19.86.2) (Remote host closed the connection)
2021-02-04 18:54:47 +0100xff0x_(~xff0x@2001:1a81:53aa:1900:f90b:c43e:4a98:6d16)
2021-02-04 18:55:44 +0100Major_Biscuit(~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds)
2021-02-04 18:56:25 +0100codolio(~dolio@haskell/developer/dolio) (Ping timeout: 240 seconds)
2021-02-04 18:56:29 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-04 18:57:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 18:57:55 +0100hackagejsonifier 0.1.1 - Fast and simple JSON encoding toolkit https://hackage.haskell.org/package/jsonifier-0.1.1 (NikitaVolkov)
2021-02-04 18:58:00 +0100 <monochrom> https://well-typed.com/blog/2021/01/fragmentation-deeper-look/ (by way of Haskell Weekly News)
2021-02-04 18:58:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 18:58:09 +0100dandart(~Thunderbi@home.dandart.co.uk)
2021-02-04 18:58:09 +0100dandart(~Thunderbi@home.dandart.co.uk) (Client Quit)
2021-02-04 18:58:24 +0100 <monochrom> I can't help but see the pun in "pinpoint the cause of the fragmentation issues" :)
2021-02-04 19:01:31 +0100dolio(~dolio@haskell/developer/dolio)
2021-02-04 19:03:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-02-04 19:03:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:09:33 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-02-04 19:09:36 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-02-04 19:09:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:09:57 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2021-02-04 19:10:08 +0100hyiltiz(~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds)
2021-02-04 19:10:30 +0100hyiltiz(~quassel@unaffiliated/hyiltiz)
2021-02-04 19:13:46 +0100seneca(~epictetus@ip72-194-215-136.sb.sd.cox.net)
2021-02-04 19:14:51 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2021-02-04 19:15:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
2021-02-04 19:15:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:16:45 +0100epicte7us(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 264 seconds)
2021-02-04 19:17:57 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 264 seconds)
2021-02-04 19:20:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-04 19:21:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:25:16 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 19:25:47 +0100smitop(uid328768@gateway/web/irccloud.com/x-meiowmymjnuutbpg) (Quit: Connection closed for inactivity)
2021-02-04 19:26:49 +0100raym(~ray@45.64.220.55) (Quit: leaving)
2021-02-04 19:26:54 +0100hackageperegrin 0.3.1 - Database migration support for use in other libraries. https://hackage.haskell.org/package/peregrin-0.3.1 (BardurArantsson)
2021-02-04 19:27:09 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-04 19:27:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:28:52 +0100raym(~ray@45.64.220.55)
2021-02-04 19:30:19 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2021-02-04 19:31:33 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-04 19:32:49 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-04 19:36:25 +0100hackageservant-cassava 0.10.1 - Servant CSV content-type for cassava https://hackage.haskell.org/package/servant-cassava-0.10.1 (DavidJohnson)
2021-02-04 19:36:36 +0100dolio(~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.2 - https://znc.in)
2021-02-04 19:36:58 +0100 <tomsmeding> merijn: why can't an infinite binary tree have good random access, say O(log(n)) for an index n ?
2021-02-04 19:37:19 +0100 <tomsmeding> not sure how to do append, granted
2021-02-04 19:38:14 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 19:38:25 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 256 seconds)
2021-02-04 19:38:36 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 19:38:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-04 19:39:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:39:33 +0100frozenErebus(~frozenEre@94.128.81.133) (Ping timeout: 264 seconds)
2021-02-04 19:40:12 +0100jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 265 seconds)
2021-02-04 19:40:24 +0100 <zzz> huh. just found out that mempty (a -> b) = mempty
2021-02-04 19:41:20 +0100 <tomsmeding> zzz: const mempty?
2021-02-04 19:44:34 +0100 <zzz> no
2021-02-04 19:44:37 +0100 <zzz> > mempty :: Monoid b => (a -> b)
2021-02-04 19:44:39 +0100 <lambdabot> error:
2021-02-04 19:44:39 +0100 <lambdabot> • No instance for (Typeable a0)
2021-02-04 19:44:39 +0100 <lambdabot> arising from a use of ‘show_M21966143301322321887’
2021-02-04 19:44:52 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-02-04 19:45:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:46:42 +0100 <zzz> well forget it
2021-02-04 19:46:48 +0100 <zzz> yes const mempty
2021-02-04 19:48:42 +0100 <zzz> ok that makes sense
2021-02-04 19:48:51 +0100 <zzz> sorry. got confused
2021-02-04 19:49:28 +0100elfets_(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2021-02-04 19:49:43 +0100 <zzz> all is well
2021-02-04 19:50:50 +0100 <maerwald> merijn: I did some more testing... the bigger the file, the faster conduit becomes. Is that about buffer/chunk size?
2021-02-04 19:50:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-04 19:51:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 19:51:54 +0100infinity0(~infinity0@freenet/developer/infinity0) (Ping timeout: 276 seconds)
2021-02-04 19:51:54 +0100royal_screwup216(52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Ping timeout (120 seconds))
2021-02-04 19:51:54 +0100napping_(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-04 19:51:55 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 276 seconds)
2021-02-04 19:52:33 +0100incertia(~incertia@d4-50-26-103.nap.wideopenwest.com)
2021-02-04 19:52:36 +0100nappingGuest16629
2021-02-04 19:52:53 +0100napping_(~brandon@174-20-93-137.mpls.qwest.net) (Client Quit)
2021-02-04 19:52:58 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds)
2021-02-04 19:52:58 +0100Guest16629(~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 276 seconds)
2021-02-04 19:53:09 +0100infinity0(~infinity0@freenet/developer/infinity0)
2021-02-04 19:54:32 +0100 <swarmcollective> maerwald, thank you for continuing the thread. Documenting these findings might provide more clarity.
2021-02-04 19:55:01 +0100 <maerwald> it's hard to rule out side effects in benchmarks, especially when IO is involved
2021-02-04 19:55:01 +0100 <swarmcollective> I've just recently started to use conduit, but for limited use cases (not performance sensitive, yet).
2021-02-04 19:55:20 +0100 <maerwald> I also had to find a way to disable cpu scaling
2021-02-04 19:56:08 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-04 19:56:19 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-04 19:56:22 +0100knupfer(~Thunderbi@200116b82ca37600006d23d966947440.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-02-04 19:58:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2021-02-04 20:01:23 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-hwcybnxooouhdsux)
2021-02-04 20:01:24 +0100dorkside(~tdbgamer@208.190.197.222) (Remote host closed the connection)
2021-02-04 20:01:47 +0100dorkside(~tdbgamer@208.190.197.222)
2021-02-04 20:02:48 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-02-04 20:03:12 +0100dorkside(~tdbgamer@208.190.197.222) (Remote host closed the connection)
2021-02-04 20:03:21 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-04 20:03:32 +0100dorkside(~tdbgamer@208.190.197.222)
2021-02-04 20:03:32 +0100berberman_(~berberman@unaffiliated/berberman)
2021-02-04 20:04:50 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2021-02-04 20:07:04 +0100dolio(~dolio@haskell/developer/dolio)
2021-02-04 20:07:29 +0100vikid(~vikid@83.110.238.94) (Remote host closed the connection)
2021-02-04 20:07:54 +0100vikid(~vikid@bba428846.alshamil.net.ae)
2021-02-04 20:09:58 +0100 <maerwald> yeah, chunk size had an impact
2021-02-04 20:10:48 +0100hexfive(~hexfive@50.35.83.177)
2021-02-04 20:14:07 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 256 seconds)
2021-02-04 20:14:54 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 20:14:59 +0100 <ph88^> after reading this https://stackoverflow.com/a/43441289 i have the question what are the tradeoffs between using StateT and MonadState (and similar for other monads) .. can somebody explain ?
2021-02-04 20:15:47 +0100asheshambasta(~user@ptr-e1lysavr00fz11rl6gx.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2021-02-04 20:16:19 +0100 <geekosaur> ph88^, if you're using StateT directly then you're just wrapping and unwrapping manually and there doesn't seem to be much point to it
2021-02-04 20:17:01 +0100 <ph88^> i didn't have a use case in mind for my previous question (doesn't mean im not working on something that is related)
2021-02-04 20:18:24 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: leaving)
2021-02-04 20:20:11 +0100 <geekosaur> I think I understand how you are confused, but I'm not sure how to unconfuse you
2021-02-04 20:20:44 +0100 <ph88^> hahahahah nice one geekosaur :D
2021-02-04 20:21:00 +0100 <geekosaur> StateT is a constructor, which you normally don't use directly; you use its type
2021-02-04 20:21:16 +0100 <geekosaur> MonadState provides all the useful stuff
2021-02-04 20:22:37 +0100 <ph88^> StateT works with lift and MonadState without ?
2021-02-04 20:22:44 +0100thc202(~thc202@unaffiliated/thc202) (Quit: thc202)
2021-02-04 20:22:55 +0100 <geekosaur> no?
2021-02-04 20:23:34 +0100 <geekosaur> StateT is a newtype wrapper for a function. All it does is give the MonadState instance something to be attached to\
2021-02-04 20:23:57 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
2021-02-04 20:23:58 +0100 <ephemient> MonadState is the type class that you should normally be working with
2021-02-04 20:24:22 +0100 <geekosaur> I already said that but I don't think I was understood
2021-02-04 20:24:25 +0100ixaxaar(~ixaxaar@49.207.210.215) (Ping timeout: 240 seconds)
2021-02-04 20:24:42 +0100 <ephemient> StateT (under certain constraints) can be instantiated to a concrete type that is a Monad & MonadState
2021-02-04 20:24:56 +0100 <ph88^> so there is no reason to type StateT ... instead you should to MonadState .. => .. in all the cases ?
2021-02-04 20:25:32 +0100 <ephemient> pretty much
2021-02-04 20:26:29 +0100 <ph88^> i have two functions here inner and inner2 https://bpa.st/MIPA
2021-02-04 20:26:35 +0100 <ph88^> they work differently
2021-02-04 20:26:49 +0100 <ph88^> could i replace them by something with MonadState and MonadExcept constraint ?
2021-02-04 20:28:24 +0100 <ph88^> don't understand how the order of the monad stack can be maintained in this way because (MonadState .. , MonadExcept ..) => is the same as (MonadExcept .. , MonadState) =>
2021-02-04 20:28:50 +0100 <ephemient> you're using IO in there, so that sort of fixes what you can possibly do...
2021-02-04 20:29:35 +0100 <ephemient> but you could have (MonadError, MonadState, MonadIO)
2021-02-04 20:29:47 +0100Noldorin(~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-04 20:29:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-04 20:30:22 +0100geekosaur(82650c7c@130.101.12.124) (Ping timeout: 240 seconds)
2021-02-04 20:30:35 +0100 <ephemient> runExceptT $ evalStateT $ ... will then be where the actual monad transformer stack is determined
2021-02-04 20:31:01 +0100 <ph88^> aah ok
2021-02-04 20:31:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 20:31:21 +0100 <ph88^> now it becomes clear :P
2021-02-04 20:34:04 +0100 <ski> behaviour may differ, depending the nesting order you choose
2021-02-04 20:34:58 +0100jneira(501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) (Quit: Connection closed)
2021-02-04 20:35:54 +0100 <ski> btw, using `MonadState' doesn't necessarily mean that you should be writing `MonadState' constraints in your signatures
2021-02-04 20:36:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-04 20:36:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 20:37:49 +0100Wuzzy(~Wuzzy@p5b0df175.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2021-02-04 20:38:10 +0100 <ski> <maerwald> merijn: I did some more testing... the bigger the file, the faster conduit becomes. Is that about buffer/chunk size?
2021-02-04 20:39:22 +0100 <[exa]> ph88^: one extra "use-case": StateT isn't necessarily the only monad that implements State. For that reason there's a typeclass MonadState for all monads that implement the get/put state interface.
2021-02-04 20:39:37 +0100Wuzzy(~Wuzzy@p57a2e44e.dip0.t-ipconnect.de)
2021-02-04 20:39:58 +0100 <ph88^> ski, why doesn't it mean that ?
2021-02-04 20:40:45 +0100 <ski> ph88^ : you could also be defining your own data type, that's a monad, implemented in terms of `StateT' and what-not
2021-02-04 20:41:36 +0100 <ski> and then, you could provide exported operations for that data type (commonly being abstract), that are defined in terms of `put' and so on (so, using `MonadState', without incurring a `MonadState' constraint on the signature of said operation)
2021-02-04 20:41:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-04 20:42:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 20:42:28 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-04 20:42:55 +0100hackagedep-t 0.4.0.1 - Reader-like monad transformer for dependency injection. https://hackage.haskell.org/package/dep-t-0.4.0.1 (DanielDiazCarrete)
2021-02-04 20:42:55 +0100 <ski> e.g., perhaps `MyMonad a' is represented as `ReaderT MyContext (StateT MyState (ExceptT MyExn IO)) a'
2021-02-04 20:43:29 +0100 <ski> (normally you wouldn't make instances of `MonadReader',`MonadState',.. for `MyMonad', here)
2021-02-04 20:43:57 +0100 <ski> (so, not exposing the particular implementation of `MyMonad')
2021-02-04 20:45:45 +0100 <ski> `mtl' and `transformers' used to be competing packages. then it was compromised that one was to define the data types, and the other the type classes
2021-02-04 20:46:50 +0100 <ski> but you can still choose to program either by using specific transformer stacks (either using them in "raw" form, or hiding that behind an abstract data type), or else letting your operations by constrained polymorphic, mentioning the `MonadBlah' constraints
2021-02-04 20:48:45 +0100geekosaur(82650c7c@130.101.12.124)
2021-02-04 20:49:37 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 20:50:17 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-04 20:50:20 +0100 <ephemient> concrete example: Control.Monad.RWS is a MonadState but isn't StateT
2021-02-04 20:52:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 20:53:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 20:54:04 +0100 <ski> hm .. not really seeing how that's a concrete example of what i said
2021-02-04 20:54:43 +0100deviantfero(~deviantfe@190.150.27.58) (Ping timeout: 276 seconds)
2021-02-04 20:55:01 +0100 <ski> (it is an example of an instance of `MonadState' which isn't either the `StateT' instance, or a "lifting" instance for another monad transformer .. but i didn't really touch upon this)
2021-02-04 20:55:20 +0100catt(~r@31.124.181.226)
2021-02-04 20:55:28 +0100haritz(~hrtz@unaffiliated/haritz) (Remote host closed the connection)
2021-02-04 20:56:32 +0100haritz(~hrtz@62.3.70.206)
2021-02-04 20:56:32 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2021-02-04 20:56:32 +0100haritz(~hrtz@unaffiliated/haritz)
2021-02-04 20:56:57 +0100fendor(~fendor@77.119.129.25.wireless.dyn.drei.com) (Remote host closed the connection)
2021-02-04 20:58:38 +0100fendor(~fendor@77.119.129.25.wireless.dyn.drei.com)
2021-02-04 20:58:55 +0100seneca(~epictetus@ip72-194-215-136.sb.sd.cox.net) (Quit: Leaving)
2021-02-04 20:59:32 +0100 <ephemient> oh I misread what you wrote earlier as "you could also be defining your own MonadState"
2021-02-04 20:59:52 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-02-04 20:59:56 +0100deviantfero(~deviantfe@190.150.27.58)
2021-02-04 21:00:37 +0100 <ski> oh
2021-02-04 21:01:32 +0100Noldorin(~noldorin@unaffiliated/noldorin)
2021-02-04 21:03:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 21:04:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 21:05:42 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl)
2021-02-04 21:08:42 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-04 21:08:55 +0100hackagehttp-client 0.7.5 - An HTTP client engine https://hackage.haskell.org/package/http-client-0.7.5 (MichaelSnoyman)
2021-02-04 21:09:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-02-04 21:10:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 21:11:35 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 21:11:56 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 21:11:58 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving)
2021-02-04 21:14:57 +0100hseg(~gesh@185.120.124.95) (Quit: WeeChat 3.0)
2021-02-04 21:16:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds)
2021-02-04 21:16:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 21:17:45 +0100 <[exa]> ph88^: just curious, did you get that example from before to work?
2021-02-04 21:18:06 +0100 <ph88^> yes
2021-02-04 21:18:20 +0100 <[exa]> ah cool
2021-02-04 21:19:12 +0100 <ph88^> thanks to your help :)
2021-02-04 21:21:41 +0100metro(~Thunderbi@unaffiliated/metreo)
2021-02-04 21:21:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-02-04 21:21:42 +0100 <[exa]> if you wanted a more challenging (and educative by being completely impractical) example, try combining the list monad with IO
2021-02-04 21:21:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 21:23:57 +0100metreo(~Thunderbi@unaffiliated/metreo) (Ping timeout: 264 seconds)
2021-02-04 21:23:57 +0100metrometreo
2021-02-04 21:24:32 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 258 seconds)
2021-02-04 21:24:41 +0100shinobi__(~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
2021-02-04 21:24:45 +0100 <monochrom> I define my own MonadState instance all the time.
2021-02-04 21:25:00 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2021-02-04 21:25:05 +0100 <monochrom> I hate State's s->(a,s) so I define my own s->(s,a) version. :)
2021-02-04 21:25:35 +0100 <monochrom> (I'm joking. I do this for teaching.)
2021-02-04 21:25:37 +0100 <aveltras> is anyone familiar with the hkd machinery with barbies / higgledy ? i'd like to get the labelsWhere' function here to return [(String, String)] where the first string is the textual representation of the field name and the second string is the value of the field converted with a Show instance ?
2021-02-04 21:25:41 +0100 <aveltras> https://www.irccloud.com/pastebin/PGucY4I0/
2021-02-04 21:26:05 +0100 <aveltras> this code compiles, the goal is to replace Bool by String
2021-02-04 21:30:18 +0100DavidEichmann(~david@234.109.45.217.dyn.plus.net) (Remote host closed the connection)
2021-02-04 21:30:42 +0100 <exarkun> I have a data type that I'd really like to automatically derive Enum for (just for `fromEnum`) ... but one of its constructors takes a parameter. Any tricks that might help with this?
2021-02-04 21:30:56 +0100 <[exa]> monochrom: why they even had the order of (a,s) this way? I seriously wanted to ask earlier today
2021-02-04 21:31:13 +0100 <monochrom> I really don't know.
2021-02-04 21:31:17 +0100jrp(05501e8f@5.80.30.143)
2021-02-04 21:31:45 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-02-04 21:32:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-02-04 21:33:45 +0100 <jrp> Grateful for suggestions for implementing  duplicates :: (Traversable f, Eq a) => f a -> [a]  (computing the list of values which occur more than once. )
2021-02-04 21:34:11 +0100 <[exa]> exarkun: you'd probably need some version of Bounded to be able to know the enum values that go "after" the parameter
2021-02-04 21:34:26 +0100 <merijn> jrp: And Ord is a no go?
2021-02-04 21:34:42 +0100verement(~anonymous@cpe-76-167-229-223.san.res.rr.com)
2021-02-04 21:35:10 +0100 <monochrom> jrp: I would think you just need Foldable, if you produce [a] instead of f a.
2021-02-04 21:35:35 +0100 <jrp> nope.  This is a Conor McBride example and I assume that it only uses Eq and some Applicative
2021-02-04 21:36:53 +0100 <jrp> yes.  My current approach is to turn into a list and use list comprehension or filtering, but I think that that defeats the purpose of the exercise
2021-02-04 21:37:00 +0100knupfer(~Thunderbi@200116b82ca3760088333a8e5fca7cce.dip.versatel-1u1.de)
2021-02-04 21:37:15 +0100 <[exa]> jrp: you can't do much better with just Eq
2021-02-04 21:37:24 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 21:37:33 +0100 <merijn> [exa]: Well, it's a pigworker assignment then god knows ;)
2021-02-04 21:37:47 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 21:38:23 +0100cafce25(~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de)
2021-02-04 21:38:32 +0100 <jrp> He says There’s a
2021-02-04 21:38:33 +0100 <jrp> lovely way to do this using differential calculus, but that’s another story.  Which I assume means one-hole contexts, etc.  But that's for bonus points !
2021-02-04 21:39:31 +0100 <merijn> jrp: Should probably mention Conor McBride straight away so people can mentally shift gear from "try and find a convenient way to do this for beginners" to "overcomplicated puzzle" when trying to answer :p
2021-02-04 21:39:40 +0100 <[exa]> I hope "lovely" means "less than exponential complexity"
2021-02-04 21:40:13 +0100 <merijn> [exa]: "lovely" means "paper explaining this only takes 6 pages" in McBride speak :p
2021-02-04 21:40:32 +0100 <merijn> [exa]: As opposed to say, 24 and a whole thesis :p
2021-02-04 21:40:41 +0100 <jrp> My attempts:
2021-02-04 21:40:42 +0100 <jrp> duplicates' :: (Eq a, Foldable f) => f a -> Bool
2021-02-04 21:40:43 +0100 <jrp> duplicates' l = foldr test end l []
2021-02-04 21:40:43 +0100 <jrp>   where
2021-02-04 21:40:44 +0100 <jrp>     test :: Eq a => a -> ([a] -> Bool) -> [a] -> Bool
2021-02-04 21:40:44 +0100 <jrp>     test a cont seen = (a `elem` seen) || cont (a : seen)
2021-02-04 21:40:45 +0100 <jrp>     end :: [a] -> Bool
2021-02-04 21:40:45 +0100 <jrp>     end = const False
2021-02-04 21:40:50 +0100 <merijn> @where paste
2021-02-04 21:40:50 +0100 <lambdabot> Help us help you: please paste full code, input and/or output at eg https://paste.tomsmeding.com
2021-02-04 21:40:54 +0100 <merijn> jrp: ^^
2021-02-04 21:41:57 +0100 <monochrom> Perhaps Traversable is provided so you can use the State applicative and store seen items there.
2021-02-04 21:42:25 +0100hackagehaskus-utils-types 1.5.1 - Haskus types utility modules https://hackage.haskell.org/package/haskus-utils-types-1.5.1 (SylvainHenry)
2021-02-04 21:42:38 +0100 <merijn> I wonder if there's some voodoo with "clowns to the left of me, joker's to the right"
2021-02-04 21:42:51 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-04 21:43:32 +0100 <jrp> Here are a couple of my attempts https://paste.tomsmeding.com/9TYvXtuj
2021-02-04 21:43:37 +0100 <merijn> I think that used Applicative
2021-02-04 21:44:05 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 21:44:17 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 21:44:39 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 21:44:49 +0100 <jrp> The second effectively uses State
2021-02-04 21:44:50 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 21:45:34 +0100 <jrp> He does add the disclaimer: Not completely trivial.
2021-02-04 21:46:14 +0100 <jrp> The clowns / joker is probably the solution using differential calculus
2021-02-04 21:46:45 +0100 <merijn> Clowns/jokers paper was super interesting...for the 25% of it that I actually understood xD
2021-02-04 21:46:56 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
2021-02-04 21:47:01 +0100 <jiribenes> jrp: What if you had `f ~ []` and a function `[a] -> [ListZipper a]`, could you solve your problem with that (at least for lists)? ;)
2021-02-04 21:47:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-04 21:48:43 +0100 <jrp> The problem is solved (see the paste above, if it made it through) but it doesn't really use applicatives
2021-02-04 21:50:28 +0100 <jrp> @merlin https://hackage.haskell.org/package/functor-combo-0.3.6 This seems to be an implementation by Conal Elloitt (of clowns & jokers)
2021-02-04 21:50:28 +0100 <lambdabot> Unknown command, try @list
2021-02-04 21:50:35 +0100l8star(~l8star@business-90-187-113-149.pool2.vodafone-ip.de)
2021-02-04 21:50:57 +0100 <jrp>  https://hackage.haskell.org/package/functor-combo-0.3.6 This seems to be an implementation by Conal Elloitt (of clowns & jokers)
2021-02-04 21:51:13 +0100 <conal> @jrp: maybe Conor McBride
2021-02-04 21:51:13 +0100 <lambdabot> Unknown command, try @list
2021-02-04 21:52:24 +0100hackagepandoc-plantuml-diagrams 0.1.1.0 - Render and insert PlantUML diagrams with Pandoc https://hackage.haskell.org/package/pandoc-plantuml-diagrams-0.1.1.0 (thriqon)
2021-02-04 21:52:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-02-04 21:52:36 +0100 <conal> jrp: ^
2021-02-04 21:52:36 +0100 <jrp> Sorry. Don't understand. What about him?
2021-02-04 21:52:54 +0100 <conal> Conor wrote the Clowns & Jokers paper
2021-02-04 21:53:04 +0100 <jrp> Indeed
2021-02-04 21:53:16 +0100 <conal> oh, yeah. and that functor-combo sounds like one of mine.
2021-02-04 21:53:56 +0100 <jrp> Ah great.  Thanks.  It has the cool Functor Kit
2021-02-04 21:54:10 +0100 <conal> oh, yeah. now i'm remembering.
2021-02-04 21:54:16 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2021-02-04 21:54:21 +0100 <conal> i was exploring another notion of zippers
2021-02-04 21:54:26 +0100 <conal> for a blog post
2021-02-04 21:54:36 +0100zebrag(~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr)
2021-02-04 21:54:50 +0100 <conal> probably http://conal.net/blog/posts/another-angle-on-zippers
2021-02-04 21:55:39 +0100 <jrp> OK.  So it's not quite clowns and jokers
2021-02-04 21:56:58 +0100todda7(~torstein@2a02:587:1b14:d00:5ec3:abec:812c:b3e2)
2021-02-04 21:57:48 +0100 <jrp> But I'd be quite content with the simpler solution to  duplicates :: (Traversable f, Eq a) => f a -> [a]  pro tem
2021-02-04 21:59:08 +0100mrQuidome(d57f25d0@ip-213-127-37-208.ip.prioritytelecom.net)
2021-02-04 22:00:34 +0100 <ph88^> why is it not enough here to write MonadIO m to match with IO ? https://bpa.st/FPVA
2021-02-04 22:00:52 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-02-04 22:01:00 +0100Lycurgus(~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
2021-02-04 22:01:18 +0100 <mrQuidome> I am trying to use splitOn but I get Could not find module ‘Data.List.Split’ in visual studio code. I have: import Data.List.Split as a first line, did cabal install split. But now completly stuck
2021-02-04 22:01:43 +0100turion(~turion@2a02:810d:8abf:c4a8:7417:1a58:4f1d:bffb) (Ping timeout: 272 seconds)
2021-02-04 22:02:09 +0100 <jiribenes> ph88^: You're probably using some function `f` which is of the type `a -> IO b`. Use `liftIO f` instead to get the `MonadIO m` constraint.
2021-02-04 22:02:31 +0100 <ph88^> thx jiribenes
2021-02-04 22:02:42 +0100pengjiz(~user@cmu-secure-128-237-82-2.nat.cmu.net)
2021-02-04 22:03:23 +0100mmmattyx(uid17782@gateway/web/irccloud.com/x-bmhpuzgzzgtmheov) (Quit: Connection closed for inactivity)
2021-02-04 22:03:31 +0100 <swarmcollective> mrQuidome, in the status bar of vscode, is the Haskell Language Server (HLS) still analysing the project? Have you added the split dependency in the .cabal file?
2021-02-04 22:03:34 +0100 <merijn> mrQuidome: If you're using cabal 3.0 or later "cabal install split" isn't what you want and won't really work
2021-02-04 22:04:11 +0100ixian(~mgold@terra.bitplane.org) (Quit: leaving)
2021-02-04 22:04:17 +0100 <merijn> You'll want a cabal file for your code as swarmcollective mentions
2021-02-04 22:04:24 +0100 <mrQuidome> I am using cabal 3.2.0.0
2021-02-04 22:04:54 +0100hackageghcide 0.7.3.0 - The core of an IDE https://hackage.haskell.org/package/ghcide-0.7.3.0 (jneira)
2021-02-04 22:05:06 +0100 <mrQuidome> I have a cabal file but no dependency added
2021-02-04 22:05:11 +0100 <swarmcollective> Be sure that split is in the build-depends: section of the .cabal file.
2021-02-04 22:05:30 +0100 <merijn> ^^^ that
2021-02-04 22:06:02 +0100 <mrQuidome> I now have: build-depends: base >=4.14 && <4.15
2021-02-04 22:06:12 +0100 <monochrom> "cabal install split" is very likely a no-op. Put it in build-depends instead.
2021-02-04 22:06:12 +0100 <mrQuidome> where and how do I add it?
2021-02-04 22:06:48 +0100 <swarmcollective> Add a new line under that, and tab over to where "base" is, then add "split"
2021-02-04 22:06:58 +0100 <merijn> mrQuidome: ", split" behind that should work (optionally make it ", split == x.y.z" where x.y.z is whatever the version on hackage is
2021-02-04 22:07:01 +0100 <swarmcollective> (tab or space over)
2021-02-04 22:07:28 +0100 <merijn> Doesn't even have to be on a newline (although that does look cleaner, generally)
2021-02-04 22:08:26 +0100son0p(~son0p@181.136.122.143)
2021-02-04 22:09:07 +0100 <ephemient> https://discourse.haskell.org/t/ghc-9-0-1-released/1840
2021-02-04 22:09:22 +0100 <swarmcollective> If you are not already using the "haskell.haskell" vscode extension, I would recommend it as it uses the ~latest Haskell Language Server (HLS)
2021-02-04 22:09:47 +0100 <mrQuidome> OK, added the line, do I have to run Cabal?
2021-02-04 22:09:54 +0100 <mrQuidome> Before GHC?
2021-02-04 22:10:10 +0100 <mrQuidome> I am now working outside VSC on purpose
2021-02-04 22:10:12 +0100ixian(~mgold@terra.bitplane.org)
2021-02-04 22:11:13 +0100 <merijn> mrQuidome: Generally you don't bother running GHC by hand and just use "cabal build" to compile the code instead
2021-02-04 22:14:23 +0100 <merijn> mrQuidome: hls (which VS Code uses) should pick up the cabal file automatically to
2021-02-04 22:15:08 +0100geekosaur(82650c7c@130.101.12.124) (Quit: Connection closed)
2021-02-04 22:15:43 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2021-02-04 22:17:54 +0100hackagelaunchdarkly-server-sdk 2.1.0 - Server-side SDK for integrating with LaunchDarkly https://hackage.haskell.org/package/launchdarkly-server-sdk-2.1.0 (launchdarkly)
2021-02-04 22:20:37 +0100dhouthoo(~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0)
2021-02-04 22:20:52 +0100usr25(~usr25@unaffiliated/usr25)
2021-02-04 22:23:37 +0100raingloom(~quassel@BC242713.catv.pool.telekom.hu)
2021-02-04 22:24:23 +0100fendor_(~fendor@178.115.130.101.wireless.dyn.drei.com)
2021-02-04 22:25:55 +0100Noldorin(~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com)
2021-02-04 22:26:12 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-04 22:26:39 +0100conal(~conal@64.71.133.70)
2021-02-04 22:27:24 +0100fendor(~fendor@77.119.129.25.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
2021-02-04 22:28:02 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2021-02-04 22:30:04 +0100 <mrQuidome> pfff, that works outside VSC, thxs a lot guys
2021-02-04 22:30:07 +0100vchlup(~vchlup@nat.brnet.cz) (Ping timeout: 256 seconds)
2021-02-04 22:30:10 +0100 <mrQuidome> I am on windows, what is the preferred IDE for Haskell?
2021-02-04 22:30:15 +0100 <mrQuidome> And maybe a nice link for basic Cabal :)
2021-02-04 22:30:56 +0100conal(~conal@64.71.133.70) (Ping timeout: 240 seconds)
2021-02-04 22:31:53 +0100CMCDragonkai1(~Thunderbi@120.18.74.44)
2021-02-04 22:35:30 +0100 <dolio> I suspect no IDE.
2021-02-04 22:36:00 +0100jneira(501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64)
2021-02-04 22:37:37 +0100noctux(~noctux@unaffiliated/noctux) (Read error: Connection reset by peer)
2021-02-04 22:37:58 +0100CMCDragonkai1(~Thunderbi@120.18.74.44) (Remote host closed the connection)
2021-02-04 22:39:00 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2021-02-04 22:40:03 +0100DataComputist(~lumeng@50.43.26.251) (Ping timeout: 258 seconds)
2021-02-04 22:41:57 +0100 <mrQuidome> Aha, ok, so your good old plain text editor then, hm... As you already suspected I am pretty new to Haskell and I must say I am very impressed and used to IDE's :)
2021-02-04 22:41:57 +0100soft-warm(4408f588@ip68-8-245-136.sd.sd.cox.net)
2021-02-04 22:42:57 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Ping timeout: 268 seconds)
2021-02-04 22:43:04 +0100 <mrQuidome> But with Haskell I can probably do without, syntax highlighting is nice and showing errors in the editor as well
2021-02-04 22:43:27 +0100 <mrQuidome> would like to have that
2021-02-04 22:43:45 +0100 <dolio> Lots of editors can highlight Haskell code.
2021-02-04 22:44:05 +0100 <mrQuidome> also showing what's wrong?
2021-02-04 22:44:05 +0100 <ephemient> unfortunately, Windows isn't the best developer experience
2021-02-04 22:44:12 +0100 <ephemient> but HLS should work with VSCode
2021-02-04 22:44:17 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2021-02-04 22:44:21 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-04 22:44:35 +0100 <mrQuidome> What IS the best developer experience then?
2021-02-04 22:45:32 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-02-04 22:47:04 +0100 <merijn> mrQuidome: https://cabal.readthedocs.io/en/latest/getting-started.html
2021-02-04 22:47:29 +0100 <ephemient> I believe GHC on Linux has fewer issues than on other platforms, although all the major platforms should all be supported
2021-02-04 22:47:49 +0100 <ephemient> (and IIRC GHC on WSL1 had some syscall issues... WSL2 should be equivalent to regular Linux though)
2021-02-04 22:47:50 +0100 <merijn> mrQuidome: I'd say this channel is about 1/3 (n)vim, 1/3 emacs, 1/3 rest (with VS Code probably being a fairly sizable portion of "rest")
2021-02-04 22:48:22 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-04 22:48:25 +0100 <mrQuidome> wow, die hards then ;)
2021-02-04 22:48:26 +0100 <merijn> mrQuidome: hls via LSP is "as good as it gets" currently
2021-02-04 22:48:27 +0100conal(~conal@64.71.133.70)
2021-02-04 22:48:34 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Remote host closed the connection)
2021-02-04 22:48:48 +0100 <merijn> mrQuidome: More like "not enough commercial investment to build language specific IDEs" :)
2021-02-04 22:49:14 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Ping timeout: 264 seconds)
2021-02-04 22:49:17 +0100 <merijn> mrQuidome: hls has some actual funding and people paid to work on it, so it's improving rather rapidly
2021-02-04 22:49:18 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
2021-02-04 22:49:27 +0100raingloom(~quassel@BC242713.catv.pool.telekom.hu) ("https://quassel-irc.org - Chat comfortably. Anywhere.")
2021-02-04 22:49:54 +0100 <merijn> I think they're on a monthly release schedule now?
2021-02-04 22:50:17 +0100 <fendor_> yeah, just like hie
2021-02-04 22:50:20 +0100 <mrQuidome> OK, thnxs a lot, going to study your cabal link...
2021-02-04 22:50:21 +0100fendor_fendor
2021-02-04 22:50:28 +0100 <mrQuidome> buy
2021-02-04 22:50:33 +0100 <fendor> *just like hie used to
2021-02-04 22:50:44 +0100mrQuidome(d57f25d0@ip-213-127-37-208.ip.prioritytelecom.net) (Quit: Connection closed)
2021-02-04 22:51:05 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-02-04 22:54:22 +0100noctux(~noctux@unaffiliated/noctux)
2021-02-04 22:54:35 +0100miguel_clean(~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.)
2021-02-04 23:00:10 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 276 seconds)
2021-02-04 23:01:09 +0100napping(~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 264 seconds)
2021-02-04 23:02:49 +0100ADG1089__(~aditya@122.163.194.122)
2021-02-04 23:03:48 +0100 <monochrom> vscode is usually good enough. Certainly good enough for my students.
2021-02-04 23:04:21 +0100 <monochrom> Since vscode exists and works, I don't understand the perpetual pursuit for "haskell IDE".
2021-02-04 23:05:38 +0100 <monochrom> https://ro-che.info/ccc/26 is extremely prophetic. It still holds true today, and of vscode, even when it doesn't come with any of the stigma surrounding the fpcomplete corporation.
2021-02-04 23:06:05 +0100DataComputist(~lumeng@50.43.26.251)
2021-02-04 23:06:06 +0100zelazny(~zelazny@217.146.82.202) (Ping timeout: 265 seconds)
2021-02-04 23:06:45 +0100coot(~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2021-02-04 23:07:07 +0100knupfer(~Thunderbi@200116b82ca3760088333a8e5fca7cce.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2021-02-04 23:07:45 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer)
2021-02-04 23:07:57 +0100Narinas(~Narinas@189.223.62.254.dsl.dyn.telnor.net)
2021-02-04 23:08:25 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-233-121.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
2021-02-04 23:08:36 +0100 <monochrom> "good enough for my students" under the circumstance I forgot to say that my students are not remotely close to the minimalist-text-editor kind. They grew up on IPython and Java IDEs. So if vscode is good enough for them, it's good enough period.
2021-02-04 23:09:20 +0100kupi(uid212005@gateway/web/irccloud.com/x-pyrfhfaitkpiyesc)
2021-02-04 23:11:10 +0100 <kupi> liftM does the same thing as fmap?
2021-02-04 23:11:16 +0100 <monochrom> Yes.
2021-02-04 23:12:30 +0100 <monochrom> When I'm lazy I define "instance Functor MyMonad where fmap = liftM" done.
2021-02-04 23:12:31 +0100 <kupi> what's the point of liftM? there was a time when Monad was not required to have a functor instance?
2021-02-04 23:12:33 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer)
2021-02-04 23:12:37 +0100 <monochrom> Yes.
2021-02-04 23:12:55 +0100 <monochrom> Still, today it has a small use such as mine.
2021-02-04 23:13:35 +0100 <monochrom> You will find that along the same line fmapDefault exists in Data.Traversable
2021-02-04 23:13:53 +0100 <ski> kupi : `liftM' still serves the purpose of being a default implementation of `fmap', in terms of `return' and `(>>=)'
2021-02-04 23:14:25 +0100 <monochrom> onoes GHC 9.0.1 is offical
2021-02-04 23:14:45 +0100 <ski> (that is, an implementation you can plug in when making a `Functor' instance .. not as one that's automatically applied for you, if you don't define `fmap')
2021-02-04 23:15:31 +0100 <ski> @type Data.Traversable.fmapDefault
2021-02-04 23:15:32 +0100 <lambdabot> Traversable t => (a -> b) -> t a -> t b
2021-02-04 23:16:14 +0100 <ski> kupi : similarly `liftA' if you only have an `Applicative' instance. and `ap' serve as a default implementation of `(<*>)'
2021-02-04 23:17:41 +0100 <monochrom> "Record field selectors are now given type signatures that preserve the user-written order of quantified type variables" haha
2021-02-04 23:17:48 +0100 <kupi> Is there a way to tell hlint or something else to warn if a more general function could be used?
2021-02-04 23:17:54 +0100 <monochrom> (The type-var-order saga continues!)
2021-02-04 23:18:20 +0100 <merijn> monochrom: I continue being right, as always :p
2021-02-04 23:18:43 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds)
2021-02-04 23:18:49 +0100livvy_(~livvy@gateway/tor-sasl/livvy)
2021-02-04 23:21:28 +0100 <ski> monochrom : which tyvars are those ? those for `PolymorphicComponents', or of `ExistentialQuantification', or of plain parameters of the data type ?
2021-02-04 23:21:50 +0100 <monochrom> I don't know.
2021-02-04 23:22:26 +0100 <ski> merijn : hehe :b
2021-02-04 23:22:41 +0100urodna(~urodna@unaffiliated/urodna) (Read error: Connection reset by peer)
2021-02-04 23:23:14 +0100 <monochrom> I think a PolymorphicComponent example is given.
2021-02-04 23:23:29 +0100 <ski> kupi : not really that i know of. (hlint might have some suggestions built-in to it. however, hlint is also opinionated, so i wouldn't blindly follow its advice)
2021-02-04 23:24:48 +0100 <ski> kupi : hanging around this channel, lurking, talking, you do pick up some generalizations, though
2021-02-04 23:25:06 +0100 <ski> however, it's not clear using a more general operation is always a win
2021-02-04 23:26:21 +0100 <ski> if it results in a more general signature for your operation, perhaps it is (e.g. extra polymorphism can give you additional guarantees, due to parametricity. not to speak of the obvious, that you might be able to apply the generalized operation in more situations)
2021-02-04 23:27:00 +0100Tesseraction(~Tesseract@unaffiliated/tesseraction)
2021-02-04 23:27:33 +0100 <ski> however, if it doesn't then it may be better to use the more specialized operation. (a) it may be easier for a human to read the code and understand what's going on, if you don't replace all the `map's with `fmap's (or `<$>'s), so that you can distinguish between the `map's and the `fmap's you do have
2021-02-04 23:28:02 +0100napping(~brandon@174-20-93-137.mpls.qwest.net)
2021-02-04 23:28:02 +0100 <ski> and (b) your type error messages may become clearer if you do this
2021-02-04 23:28:07 +0100ADG1089__(~aditya@122.163.194.122) (Remote host closed the connection)
2021-02-04 23:28:54 +0100 <ski> (may also be less ambiguity problems, although i don't think that's as common)
2021-02-04 23:30:01 +0100 <ski> (generalization could also help with separating concerns)
2021-02-04 23:31:05 +0100 <monochrom> "LexicalNegation is a new extension" and "The behavior of NegativeLiterals changed"
2021-02-04 23:31:26 +0100 <monochrom> The former allows "f -x" to mean "f (negate x)"
2021-02-04 23:31:40 +0100 <ski> hm .. and then there's the fact that sometimes, in a more general/abstract setting, a problem is easier to solve (or easier to find the (correct) solution of, perhaps one should say), simply because there's less detail that one may be confused by, and that may be irrelevant. (but then, generalization of the problem could also take you to an unsolvable problem, or one where an (as) efficient solution is no
2021-02-04 23:31:46 +0100 <ski> longer possible)
2021-02-04 23:31:52 +0100 <monochrom> and for "(-) x y,", you make sure you have spaces, "x - y"
2021-02-04 23:32:05 +0100 <merijn> monochrom: You know what the biggest mistake in Haskell98/Haskell2010 is?
2021-02-04 23:33:06 +0100 <merijn> monochrom: Not requiring spaces around operators. That one single change would've made all this negation nonsense and RecordDot stuffs trivial :\
2021-02-04 23:33:15 +0100 <ski> monochrom : so `x-1' will mean `x (-1)' ?
2021-02-04 23:33:31 +0100 <merijn> See...lunayc
2021-02-04 23:34:00 +0100 <merijn> merijn for Haskell BDFL to end this nonsense >.>
2021-02-04 23:34:23 +0100 <ski> should spaces around `@' (or after `!' and `~') be mandatory ?
2021-02-04 23:34:46 +0100 <monochrom> "x-1" falls under NegativeLiterals because 1 is a literal. In this case, "x-1" is (-) x 1. And this is a 9.0.1 changed behaviour, 8.10.3 would do x (negate 123)
2021-02-04 23:35:11 +0100 <merijn> ski: Depends, are you talking about operators or as-patterns, bangpatterns and lazy patterns? :p
2021-02-04 23:35:29 +0100 <ski> i'm talking about the syntactical operators in patterns, yes
2021-02-04 23:35:29 +0100 <monochrom> merijn, but I would hate to have to write "x + y" instead of "x+y".
2021-02-04 23:35:56 +0100eacameron(uid256985@gateway/web/irccloud.com/x-gxofaafswzzfxmhg) (Quit: Connection closed for inactivity)
2021-02-04 23:36:02 +0100 <merijn> monochrom: I already do that anyway
2021-02-04 23:36:20 +0100 <merijn> monochrom: Embrace sane tokenization!
2021-02-04 23:36:21 +0100 <monochrom> So instead, I think that these LexicalNegation and NegativeLiterals are the mistakes.
2021-02-04 23:36:32 +0100 <ski> (but you could also consider e.g. `return @Maybe'. should this be required to be `return @ Maybe' ?)
2021-02-04 23:36:39 +0100 <merijn> monochrom: I think your way of writing *and* those extensions are mistakes :)
2021-02-04 23:36:56 +0100 <monochrom> I am more fond of SML's solution, write ~1 for negative literals.
2021-02-04 23:36:59 +0100 <merijn> ski: Oh, but when I'm BDFL I'll delete TypeApplications
2021-02-04 23:37:03 +0100 <merijn> ski: So that's a non issue
2021-02-04 23:37:15 +0100 <ski> i was suspecting that could be the solutions :D
2021-02-04 23:37:35 +0100 <monochrom> Hell OK, let me take it to the next level.
2021-02-04 23:37:38 +0100 <merijn> -XTypeApplications Considered Harmful
2021-02-04 23:37:42 +0100 <monochrom> Plain text file is the mistake.
2021-02-04 23:37:51 +0100 <merijn> monochrom: Also true, but more complicated to fix
2021-02-04 23:38:02 +0100 <monochrom> Can Programming Be Liberated From The Plain Text File?
2021-02-04 23:38:04 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2021-02-04 23:38:14 +0100 <ski> clearly, GHC should accept programs in handwriting
2021-02-04 23:38:20 +0100 <merijn> But I'm sure you're already familiar with Lamdu :p
2021-02-04 23:38:34 +0100skihasn't seen Peaker for a while
2021-02-04 23:38:44 +0100 <monochrom> handwritten Haskell = untyped lambda calculus :)
2021-02-04 23:38:46 +0100haasn(~nand@mpv/developer/haasn) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
2021-02-04 23:39:03 +0100 <ski> why untyped ?
2021-02-04 23:39:27 +0100 <monochrom> handwritten = not typed up
2021-02-04 23:40:01 +0100haasn(~nand@mpv/developer/haasn)
2021-02-04 23:40:10 +0100 <ski> you'd feed the note to your scanner/writer, and it'd mark the offending expressions with red underline, writing the type error in the margin
2021-02-04 23:40:11 +0100 <monochrom> This is also why untyped lambda calculus already comes with recursion. Because the handwriting is cursive.
2021-02-04 23:40:15 +0100 <merijn> ski: I see him tweet occasionally
2021-02-04 23:40:50 +0100 <ski> monochrom : mine isn't
2021-02-04 23:41:01 +0100 <ski> (never was. i refused to learn it, in school)
2021-02-04 23:41:06 +0100 <monochrom> Do you not write your lambda cursively?
2021-02-04 23:41:16 +0100 <ski> i write block letters, by hand
2021-02-04 23:41:54 +0100 <monochrom> OK, I'll put your handwriting on vinyl. That will round out your sharp edges.
2021-02-04 23:42:18 +0100 <monochrom> And maybe also pass it through vacuum tubes for extra softness.
2021-02-04 23:43:19 +0100tromp(~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
2021-02-04 23:43:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1)
2021-02-04 23:44:04 +0100 <monochrom> Nice, arrow notation mix well with LambdaCase and BlockArguments now.
2021-02-04 23:44:10 +0100Athas(athas@2a01:7c8:aaac:1cf:1c06:6cab:a957:ec6e) (Quit: ZNC - http://znc.sourceforge.net)
2021-02-04 23:44:20 +0100Athas(athas@sigkill.dk)
2021-02-04 23:45:27 +0100 <ski> `proc case' ?
2021-02-04 23:45:45 +0100borne(~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de)
2021-02-04 23:46:51 +0100 <monochrom> Haha in the release notes, changes to base are split into "2.1.2.8 base library" and "2.1.2.11 base library"
2021-02-04 23:48:56 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds)
2021-02-04 23:50:26 +0100borne(~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2021-02-04 23:51:31 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
2021-02-04 23:51:58 +0100borne(~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a)
2021-02-04 23:52:14 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-02-04 23:53:13 +0100 <shiraeeshi> ski, what did teachers and parents do about you refusing to learn cursive writing?
2021-02-04 23:54:31 +0100 <ski> nothing, as i recall
2021-02-04 23:55:24 +0100hackagehls-hlint-plugin 0.2.0.0 - Hlint integration plugin with Haskell Language Server https://hackage.haskell.org/package/hls-hlint-plugin-0.2.0.0 (jneira)
2021-02-04 23:56:16 +0100 <shiraeeshi> hmm, interesting. you could also refuse to go to school while you're at it.
2021-02-04 23:56:29 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2021-02-04 23:56:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection)
2021-02-04 23:57:12 +0100 <shiraeeshi> it is boring to have to wait until the bell rings to be able to go outside, just go outside.
2021-02-04 23:57:24 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-02-04 23:57:25 +0100mattl1(~mattl@s91904426.blix.com)
2021-02-04 23:57:43 +0100fendor_(~fendor@178.115.130.101.wireless.dyn.drei.com)
2021-02-04 23:57:57 +0100elliott_(~elliott_@pool-108-51-101-42.washdc.fios.verizon.net)
2021-02-04 23:59:19 +0100 <ski> nah, i was mostly interested in learning stuff
2021-02-04 23:59:24 +0100 <shiraeeshi> idk why, but grown-ups had a way of forcing children to do things, or maybe it just seems like that.
2021-02-04 23:59:44 +0100 <ski> i just couldn't see a reason to learn to do something that i considered bad, that i'd prefer noone did