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 +0100 | nhs | (~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 +0100 | Deide | (~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 +0100 | carlomagno1 | (~cararell@148.87.23.13) |
2021-02-04 00:05:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 00:05:45 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-02-04 00:06:36 +0100 | carlomagno | (~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 +0100 | quinn | (~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 +0100 | monochrom | renames to monuschrom |
2021-02-04 00:08:27 +0100 | ukari | (~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 +0100 | ADG1089__ | (~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 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2021-02-04 00:14:08 +0100 | conal | (~conal@64.71.133.70) |
2021-02-04 00:14:21 +0100 | gentauro | (~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 +0100 | shapr | hops 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 +0100 | jedws | (~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 +0100 | jedws | (~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 +0100 | nhs | (~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 +0100 | raehik | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 00:29:35 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:6991:31b3:1556:10f4) |
2021-02-04 00:30:26 +0100 | usr25 | (~J@145.red-83-58-207.dynamicip.rima-tde.net) (Quit: Bye) |
2021-02-04 00:30:44 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-04 00:31:03 +0100 | Itkovian | (~Itkovian@178-117-76-63.access.telenet.be) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-04 00:35:26 +0100 | puke | (~vroom@217.138.252.203) (Remote host closed the connection) |
2021-02-04 00:35:50 +0100 | puke | (~vroom@217.138.252.203) |
2021-02-04 00:35:59 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 00:36:33 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 264 seconds) |
2021-02-04 00:36:38 +0100 | forgottenone | (~forgotten@176.42.24.1) (Ping timeout: 265 seconds) |
2021-02-04 00:37:27 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 00:38:58 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds) |
2021-02-04 00:40:01 +0100 | pfurla | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-04 00:41:45 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds) |
2021-02-04 00:43:41 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-02-04 00:46:14 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 264 seconds) |
2021-02-04 00:47:06 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:6006:2ad2:8fc2:e1e4) (Quit: Leaving) |
2021-02-04 00:47:35 +0100 | hyiltiz | (~quassel@31.220.5.250) |
2021-02-04 00:47:35 +0100 | hyiltiz | (~quassel@31.220.5.250) (Changing host) |
2021-02-04 00:47:35 +0100 | hyiltiz | (~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 +0100 | conal | (~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 +0100 | deviantfero | (~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 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-02-04 00:54:17 +0100 | conal | (~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 +0100 | jedws | (~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 +0100 | nhs | (~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 +0100 | gxt | (~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 +0100 | robbert-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 +0100 | Axman6 | is the king of premature optimisation |
2021-02-04 01:02:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-04 01:02:29 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-02-04 01:02:32 +0100 | <sm[m]> | tomsmeding: ping ? |
2021-02-04 01:03:14 +0100 | LKoen | (~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 +0100 | elfets | (~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 +0100 | theDon | (~td@94.134.91.50) (Ping timeout: 240 seconds) |
2021-02-04 01:08:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 01:09:11 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds) |
2021-02-04 01:10:53 +0100 | infinity0 | (~infinity0@freenet/developer/infinity0) (Remote host closed the connection) |
2021-02-04 01:13:05 +0100 | infinity0 | (~infinity0@freenet/developer/infinity0) |
2021-02-04 01:13:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 01:14:09 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Remote host closed the connection) |
2021-02-04 01:14:13 +0100 | argento | (~argent0@168.227.97.23) |
2021-02-04 01:14:25 +0100 | DavidEichmann | (~david@234.109.45.217.dyn.plus.net) (Ping timeout: 240 seconds) |
2021-02-04 01:15:17 +0100 | ridcully | (~ridcully@pd951f4de.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2021-02-04 01:15:50 +0100 | theDon | (~td@muedsl-82-207-239-014.citykom.de) |
2021-02-04 01:17:14 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 01:17:34 +0100 | deviantfero | (~deviantfe@179.51.60.188) |
2021-02-04 01:18:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 01:18:25 +0100 | hseg | (~gesh@185.120.124.95) (Ping timeout: 240 seconds) |
2021-02-04 01:19:02 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2021-02-04 01:19:20 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds) |
2021-02-04 01:19:27 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-04 01:19:49 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-hwbscpvqcraoqtak) (Quit: Connection closed for inactivity) |
2021-02-04 01:19:56 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
2021-02-04 01:25:59 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) |
2021-02-04 01:26:05 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-02-04 01:26:27 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 268 seconds) |
2021-02-04 01:27:52 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-04 01:28:10 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2021-02-04 01:29:35 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-04 01:30:51 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
2021-02-04 01:31:18 +0100 | finn_elija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-04 01:31:50 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:9d94:72c:d22d:2612) (Quit: Leaving.) |
2021-02-04 01:32:53 +0100 | xiinotulp | (~q@node-upb.pool-125-24.dynamic.totinternet.net) |
2021-02-04 01:33:07 +0100 | alx741 | (~alx741@186.178.110.33) (Quit: alx741) |
2021-02-04 01:33:34 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 01:33:55 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 01:35:34 +0100 | ridcully | (~ridcully@pd951f269.dip0.t-ipconnect.de) |
2021-02-04 01:35:42 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 268 seconds) |
2021-02-04 01:36:49 +0100 | themba_ | (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 +0100 | infinity0 | (~infinity0@freenet/developer/infinity0) (Remote host closed the connection) |
2021-02-04 01:37:28 +0100 | themba_ | (themba@90.221.74.173) |
2021-02-04 01:37:47 +0100 | <monochrom> | (page 11) |
2021-02-04 01:37:56 +0100 | rawles | (~r@unaffiliated/rawles) (Ping timeout: 240 seconds) |
2021-02-04 01:39:01 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
2021-02-04 01:39:06 +0100 | infinity0 | (~infinity0@freenet/developer/infinity0) |
2021-02-04 01:39:24 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-04 01:39:38 +0100 | Sparadox | (~etienne@ns3123347.ip-51-68-152.eu) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-02-04 01:39:38 +0100 | zyeri | (zyeri@tilde.team/users/zyeri) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-04 01:39:56 +0100 | plutoniix | (~q@node-unx.pool-125-24.dynamic.totinternet.net) (Ping timeout: 258 seconds) |
2021-02-04 01:39:56 +0100 | zyeri- | (zyeri@gateway/shell/tilde.team/x-xvdpvpjsanrpyrhi) |
2021-02-04 01:39:56 +0100 | xiinotulp | (~q@node-upb.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2021-02-04 01:40:07 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-04 01:40:19 +0100 | Sparadox | (~etienne@ns3123347.ip-51-68-152.eu) |
2021-02-04 01:40:37 +0100 | rawles | (~r@unaffiliated/rawles) |
2021-02-04 01:41:17 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-02-04 01:43:11 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds) |
2021-02-04 01:44:00 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) |
2021-02-04 01:44:42 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2021-02-04 01:46:40 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 01:47:15 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-fytanfqvvewadlns) |
2021-02-04 01:47:42 +0100 | theDon | (~td@muedsl-82-207-239-014.citykom.de) (Ping timeout: 258 seconds) |
2021-02-04 01:48:41 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz) |
2021-02-04 01:49:30 +0100 | theDon | (~td@94.134.91.17) |
2021-02-04 01:49:53 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 01:50:35 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds) |
2021-02-04 01:50:52 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
2021-02-04 01:52:12 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-02-04 01:52:40 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 01:55:16 +0100 | myShoggoth | (4ba43b2f@75.164.59.47) |
2021-02-04 01:56:57 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 01:57:45 +0100 | hyperisco | (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
2021-02-04 01:58:09 +0100 | ep1ctetus | (~epictetus@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 264 seconds) |
2021-02-04 01:59:44 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2021-02-04 01:59:51 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-04 02:00:09 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
2021-02-04 02:00:19 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2021-02-04 02:02:01 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:03:59 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-02-04 02:06:38 +0100 | <MarcelineVQ> | semiring semiautomaton semiworks semiokay |
2021-02-04 02:06:48 +0100 | mozzarella | (~sam@unaffiliated/sam113101) (Read error: Connection reset by peer) |
2021-02-04 02:07:51 +0100 | <monochrom> | :) |
2021-02-04 02:08:23 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:9840:c51c:baa7:1cb4) |
2021-02-04 02:11:23 +0100 | royal_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 +0100 | myShoggoth | (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 +0100 | myShoggoth | (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 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:20:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 02:21:20 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 02:21:30 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 02:21:52 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 02:23:57 +0100 | elliott__ | (~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 +0100 | conal | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
2021-02-04 02:28:19 +0100 | myShoggoth | (4ba43b2f@75.164.59.47) (Quit: Connection closed) |
2021-02-04 02:30:40 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:34:17 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 02:34:32 +0100 | toppler | (~user@mtop.default.momentoftop.uk0.bigv.io) (Remote host closed the connection) |
2021-02-04 02:34:45 +0100 | toppler | (~user@mtop.default.momentoftop.uk0.bigv.io) |
2021-02-04 02:35:24 +0100 | noctux | (~noctux@unaffiliated/noctux) (Read error: Connection reset by peer) |
2021-02-04 02:35:25 +0100 | meck | (~meck@li1809-18.members.linode.com) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-04 02:35:33 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-02-04 02:35:33 +0100 | hackage | (mniip@haskell/bot/hackage) (Remote host closed the connection) |
2021-02-04 02:35:36 +0100 | seliopou | (seliopou@entropy.tmok.com) (Ping timeout: 240 seconds) |
2021-02-04 02:35:50 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:36:09 +0100 | hackage | (mniip@haskell/bot/hackage) |
2021-02-04 02:37:13 +0100 | seliopou | (seliopou@entropy.tmok.com) |
2021-02-04 02:37:31 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-04 02:38:36 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 02:39:47 +0100 | meck | (~meck@li1809-18.members.linode.com) |
2021-02-04 02:40:22 +0100 | average | (uid473595@gateway/web/irccloud.com/x-oviqbcwayddkmlvw) |
2021-02-04 02:40:50 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:41:41 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 02:42:00 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-04 02:43:07 +0100 | ransom | (~c4264035@2a09:bac0:98::830:861e) |
2021-02-04 02:45:57 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:46:15 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-04 02:46:45 +0100 | guest23 | (~user@49.5.6.87) (Ping timeout: 240 seconds) |
2021-02-04 02:47:38 +0100 | sssb54 | (~ssssb56@vps-b2931db6.vps.ovh.ca) |
2021-02-04 02:49:05 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 02:49:58 +0100 | guest23 | (~user@49.5.6.87) |
2021-02-04 02:51:19 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 02:53:39 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-02-04 02:55:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 02:55:09 +0100 | deviantfero | (~deviantfe@179.51.60.188) (Ping timeout: 264 seconds) |
2021-02-04 02:55:52 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 03:00:37 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 03:01:42 +0100 | retlo | \2E0KNO |
2021-02-04 03:02:31 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-04 03:02:45 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 03:02:45 +0100 | tsrt^ | (tsrt@ip98-184-89-2.mc.at.cox.net) () |
2021-02-04 03:04:17 +0100 | aarvar | (~foewfoiew@2601:602:a080:fa0:6991:31b3:1556:10f4) () |
2021-02-04 03:05:05 +0100 | swarmcollective | (~joseph@cpe-65-31-18-174.insight.res.rr.com) (Ping timeout: 240 seconds) |
2021-02-04 03:05:07 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 03:05:31 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds) |
2021-02-04 03:06:05 +0100 | mozzarella | (~sam@unaffiliated/sam113101) |
2021-02-04 03:07:26 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds) |
2021-02-04 03:08:35 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 03:09:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 03:09:25 +0100 | shinobi__ | (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) |
2021-02-04 03:09:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 03:10:50 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer) |
2021-02-04 03:10:55 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 03:10:56 +0100 | shinobi | (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 03:11:28 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-02-04 03:11:57 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Ping timeout: 264 seconds) |
2021-02-04 03:15:52 +0100 | tromp_ | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
2021-02-04 03:17:33 +0100 | toorevitimirp | (~tooreviti@117.182.181.145) |
2021-02-04 03:19:38 +0100 | vs^ | (vs@ip98-184-89-2.mc.at.cox.net) |
2021-02-04 03:20:56 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 03:24:00 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Read error: Connection reset by peer) |
2021-02-04 03:24:51 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 03:24:57 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 03:25:19 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 03:26:53 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 03:27:42 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 03:29:09 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-04 03:29:17 +0100 | xff0x_ | (~xff0x@2001:1a81:536f:2100:2f3c:8f56:462:e9ab) (Ping timeout: 258 seconds) |
2021-02-04 03:30:58 +0100 | xff0x_ | (~xff0x@2001:1a81:53aa:1900:159a:3f2d:dfc0:b6f8) |
2021-02-04 03:31:57 +0100 | conal | (~conal@64.71.133.70) |
2021-02-04 03:32:15 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 03:37:33 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-04 03:38:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 03:40:54 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 03:41:13 +0100 | themba_ | (themba@90.221.74.173) (Ping timeout: 276 seconds) |
2021-02-04 03:42:04 +0100 | themba_ | (themba@90.221.74.173) |
2021-02-04 03:44:54 +0100 | da39a3ee5e6b4b0d | (~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 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 03:45:31 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds) |
2021-02-04 03:45:56 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 240 seconds) |
2021-02-04 03:46:00 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 03:47:53 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 03:47:57 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 272 seconds) |
2021-02-04 03:48:11 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:9840:c51c:baa7:1cb4) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 03:50:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 03:50:36 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-02-04 03:51:48 +0100 | hyperisco | (~hyperisco@104-195-141-253.cpe.teksavvy.com) |
2021-02-04 03:51:59 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 03:52:10 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-04 03:54:20 +0100 | nbloomf | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-04 04:00:27 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:04:19 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:05:34 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:07:47 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 04:08:38 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:10:44 +0100 | argento | (~argent0@168.227.97.23) (Remote host closed the connection) |
2021-02-04 04:10:58 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:12:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 04:12:25 +0100 | theDon | (~td@94.134.91.17) (Ping timeout: 276 seconds) |
2021-02-04 04:13:32 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 04:14:02 +0100 | theDon | (~td@muedsl-82-207-238-046.citykom.de) |
2021-02-04 04:15:25 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:16:14 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:17:56 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 04:18:05 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-ucvzxcoudognhctl) (Quit: Connection closed for inactivity) |
2021-02-04 04:18:30 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:18:58 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 04:19:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 04:20:59 +0100 | stiell | (~stian@fsf/member/stiell) (Ping timeout: 256 seconds) |
2021-02-04 04:21:39 +0100 | ransom | (~c4264035@2a09:bac0:98::830:861e) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 04:23:24 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-04 04:24:07 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 276 seconds) |
2021-02-04 04:27:19 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-04 04:29:03 +0100 | urodna_ | (~urodna@unaffiliated/urodna) (Quit: urodna_) |
2021-02-04 04:29:27 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 04:31:28 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-04 04:31:30 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) |
2021-02-04 04:34:11 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:35:18 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-zridcshpxaalituf) (Quit: Connection closed for inactivity) |
2021-02-04 04:35:56 +0100 | stiell | (~stian@fsf/member/stiell) |
2021-02-04 04:37:37 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:37:54 +0100 | FinnElija | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
2021-02-04 04:37:54 +0100 | finn_elija | Guest69359 |
2021-02-04 04:37:54 +0100 | FinnElija | finn_elija |
2021-02-04 04:39:12 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 04:39:43 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 04:40:10 +0100 | swarmcollective | (~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 +0100 | Guest69359 | (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 268 seconds) |
2021-02-04 04:43:08 +0100 | TommyC | (~TommyC@unaffiliated/sepulchralbloom) (Ping timeout: 265 seconds) |
2021-02-04 04:43:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 04:43:55 +0100 | TommyC | (~TommyC@unaffiliated/sepulchralbloom) |
2021-02-04 04:44:30 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:44:41 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-04 04:46:51 +0100 | plutoniix | (~q@184.82.206.197) |
2021-02-04 04:48:43 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:49:35 +0100 | sMuNiX | (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) |
2021-02-04 04:51:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 04:51:27 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 04:52:48 +0100 | salumu | (~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Ping timeout: 264 seconds) |
2021-02-04 04:54:33 +0100 | stiell | (~stian@fsf/member/stiell) (Ping timeout: 246 seconds) |
2021-02-04 04:55:01 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 04:55:30 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 04:57:55 +0100 | hackage | newtype-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 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Quit: metreo) |
2021-02-04 04:59:35 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Quit: Lost terminal) |
2021-02-04 04:59:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 05:00:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2021-02-04 05:00:32 +0100 | stiell | (~stian@fsf/member/stiell) |
2021-02-04 05:00:33 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:03:31 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-02-04 05:04:45 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:05:30 +0100 | hyperisco | (~hyperisco@104-195-141-253.cpe.teksavvy.com) (Ping timeout: 258 seconds) |
2021-02-04 05:05:33 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:07:07 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:bc71:9ab4:c3a5:8b4c) (Ping timeout: 272 seconds) |
2021-02-04 05:07:09 +0100 | Jd007 | (~Jd007@162.156.11.151) (Quit: Jd007) |
2021-02-04 05:07:41 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@49.228.239.163) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 05:08:08 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 05:08:27 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:08:34 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 258 seconds) |
2021-02-04 05:08:52 +0100 | xff0x_ | (~xff0x@2001:1a81:53aa:1900:159a:3f2d:dfc0:b6f8) (Remote host closed the connection) |
2021-02-04 05:09:10 +0100 | xff0x_ | (~xff0x@2001:1a81:53aa:1900:f400:282e:9bd1:5c2c) |
2021-02-04 05:10:06 +0100 | stiell | (~stian@fsf/member/stiell) (Ping timeout: 258 seconds) |
2021-02-04 05:12:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 05:13:13 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 05:13:40 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:15:28 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 05:15:30 +0100 | stiell | (~stian@fsf/member/stiell) |
2021-02-04 05:17:59 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds) |
2021-02-04 05:18:19 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:18:40 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) |
2021-02-04 05:18:44 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:19:23 +0100 | sw1nn | (~sw1nn@2a00:23c6:2385:3a00:8481:383e:48dd:21f5) |
2021-02-04 05:20:03 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 05:21:24 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:23:30 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-duetsgbgiyfgeatn) () |
2021-02-04 05:23:51 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:24:24 +0100 | hackage | opaleye-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 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:25:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-04 05:28:49 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:29:42 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds) |
2021-02-04 05:30:52 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
2021-02-04 05:31:16 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:31:55 +0100 | hackage | heartbeat-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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 05:33:54 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:38:05 +0100 | nineonin_ | (~nineonine@50.216.62.2) (Ping timeout: 258 seconds) |
2021-02-04 05:38:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 05:41:12 +0100 | Edwin91 | (63f0a4ca@cpe5c7695b93ed1-cm5c7695b93ecf.cpe.net.cable.rogers.com) |
2021-02-04 05:43:38 +0100 | raym | (~ray@45.64.220.55) |
2021-02-04 05:44:00 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:44:36 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Quit: WeeChat 3.0) |
2021-02-04 05:46:52 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 05:47:26 +0100 | Younder | (~john@33.51-174-155.customer.lyse.net) (Quit: Leaving) |
2021-02-04 05:47:45 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-04 05:48:32 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 05:50:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 05:50:40 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 05:51:25 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-02-04 05:54:09 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 05:55:19 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 06:00:15 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 06:00:47 +0100 | ixaxaar | (~ixaxaar@49.207.210.215) |
2021-02-04 06:01:52 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
2021-02-04 06:03:47 +0100 | cheater | (~user@unaffiliated/cheater) (Remote host closed the connection) |
2021-02-04 06:03:53 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 06:04:20 +0100 | Edwin91 | (63f0a4ca@cpe5c7695b93ed1-cm5c7695b93ecf.cpe.net.cable.rogers.com) (Quit: Connection closed) |
2021-02-04 06:04:55 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds) |
2021-02-04 06:07:19 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-02-04 06:08:08 +0100 | Saukk | (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection) |
2021-02-04 06:08:16 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 06:08:52 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 06:09:31 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 06:09:41 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-04 06:10:37 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 06:11:21 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 06:11:43 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) |
2021-02-04 06:12:23 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-04 06:13:09 +0100 | mrchampion | (~mrchampio@38.18.109.23) (Ping timeout: 264 seconds) |
2021-02-04 06:13:44 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 06:15:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 06:15:07 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 06:15:40 +0100 | conal | (~conal@64.71.133.70) |
2021-02-04 06:16:06 +0100 | cheater | (~user@unaffiliated/cheater) (Read error: Connection reset by peer) |
2021-02-04 06:16:47 +0100 | mrchampion | (~mrchampio@38.18.109.23) |
2021-02-04 06:17:32 +0100 | Guest38429 | (~abian@185.204.1.185) (Remote host closed the connection) |
2021-02-04 06:17:51 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-04 06:18:37 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-02-04 06:18:55 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 06:19:59 +0100 | bitmagie | (~Thunderbi@200116b80656d5009c3e767f69ddfc16.dip.versatel-1u1.de) |
2021-02-04 06:20:49 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) |
2021-02-04 06:23:53 +0100 | cheater | (~user@unaffiliated/cheater) (Read error: Connection reset by peer) |
2021-02-04 06:24:15 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2021-02-04 06:24:37 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-04 06:24:55 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 06:25:27 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) |
2021-02-04 06:27:19 +0100 | teardown | (~user@gateway/tor-sasl/mrush) |
2021-02-04 06:27:32 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 06:27:37 +0100 | elliott__ | (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 276 seconds) |
2021-02-04 06:27:50 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-04 06:28:39 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-02-04 06:29:36 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
2021-02-04 06:30:59 +0100 | jedws | (~jedws@101.184.202.248) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 06:31:25 +0100 | conal | (~conal@64.71.133.70) |
2021-02-04 06:31:42 +0100 | teardown_ | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 06:34:10 +0100 | teardown | (~user@gateway/tor-sasl/mrush) (Ping timeout: 268 seconds) |
2021-02-04 06:34:11 +0100 | cheater | (~user@unaffiliated/cheater) (Read error: Connection reset by peer) |
2021-02-04 06:35:53 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-02-04 06:36:40 +0100 | nineonin_ | (~nineonine@50.216.62.2) |
2021-02-04 06:38:26 +0100 | nineonine | (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) (Ping timeout: 264 seconds) |
2021-02-04 06:39:54 +0100 | mmohammadi9812 | (~mmohammad@2.178.213.79) (Read error: Connection reset by peer) |
2021-02-04 06:40:03 +0100 | mmohammadi9812 | (~mmohammad@198.12.95.181) |
2021-02-04 06:42:31 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 06:47:15 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-04 06:48:22 +0100 | chrisdotcode | (~chrisdotc@unaffiliated/chrisdotcode) (Ping timeout: 256 seconds) |
2021-02-04 06:50:25 +0100 | mmohammadi9812 | (~mmohammad@198.12.95.181) (Ping timeout: 240 seconds) |
2021-02-04 06:51:17 +0100 | denisse | (~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection) |
2021-02-04 06:51:17 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-02-04 06:51:21 +0100 | mmohammadi9812 | (~mmohammad@198.12.95.182) |
2021-02-04 06:51:42 +0100 | chrisdotcode | (~chrisdotc@unaffiliated/chrisdotcode) |
2021-02-04 06:52:00 +0100 | pfurla | (~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 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-02-04 07:00:07 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 07:01:25 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection) |
2021-02-04 07:01:50 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-02-04 07:04:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 07:07:45 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-04 07:08:04 +0100 | shiraeeshi | (~shiraeesh@109.166.56.2) |
2021-02-04 07:08:08 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 07:12:27 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds) |
2021-02-04 07:16:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 07:18:05 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Quit: WeeChat 3.0) |
2021-02-04 07:18:25 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 07:18:59 +0100 | Wuzzy | (~Wuzzy@p5b0df175.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-02-04 07:20:56 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 07:21:10 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 07:21:23 +0100 | TianGTY | (~textual@42.120.74.97) |
2021-02-04 07:21:29 +0100 | TianGTY | (~textual@42.120.74.97) (Client Quit) |
2021-02-04 07:21:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 07:22:25 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 07:22:35 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 07:23:16 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 07:24:04 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 07:25:25 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 07:25:39 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 07:28:02 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-02-04 07:30:44 +0100 | vs^ | (vs@ip98-184-89-2.mc.at.cox.net) () |
2021-02-04 07:32:01 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 07:34:00 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 07:35:57 +0100 | shiraeeshi | (~shiraeesh@109.166.56.2) (Ping timeout: 264 seconds) |
2021-02-04 07:37:10 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 07:37:55 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 07:37:56 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-04 07:38:00 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 246 seconds) |
2021-02-04 07:39:07 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
2021-02-04 07:39:09 +0100 | alexelcu | (~alexelcu@142.93.180.198) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-04 07:39:20 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 07:39:46 +0100 | alexelcu | (~alexelcu@142.93.180.198) |
2021-02-04 07:40:09 +0100 | erh^ | (erh@ip98-184-89-2.mc.at.cox.net) |
2021-02-04 07:40:51 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2021-02-04 07:41:18 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-04 07:42:45 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-02-04 07:43:08 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) |
2021-02-04 07:47:52 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 07:47:58 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 07:48:27 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 07:49:24 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 07:52:55 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-04 07:52:55 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-02-04 07:53:41 +0100 | jonatanb | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 08:00:01 +0100 | jonatanb | (~jonatanb@83.24.13.14.ipv4.supernova.orange.pl) (Ping timeout: 276 seconds) |
2021-02-04 08:00:23 +0100 | cheater1 | (~user@unaffiliated/cheater) |
2021-02-04 08:02:05 +0100 | bitmagie | (~Thunderbi@200116b80656d5009c3e767f69ddfc16.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-02-04 08:02:31 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 276 seconds) |
2021-02-04 08:02:38 +0100 | cheater1 | cheater |
2021-02-04 08:04:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 08:05:45 +0100 | mmohammadi9812 | (~mmohammad@198.12.95.182) (Ping timeout: 240 seconds) |
2021-02-04 08:06:24 +0100 | mmohammadi9812 | (~mmohammad@198.12.95.171) |
2021-02-04 08:07:55 +0100 | gehmehgeh | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-04 08:10:45 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 240 seconds) |
2021-02-04 08:12:27 +0100 | d3od | (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) |
2021-02-04 08:12:44 +0100 | chris8142 | (~chris8142@srvnet-01-071.ikbnet.co.at) |
2021-02-04 08:13:02 +0100 | alar[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 +0100 | asheshambasta | (~user@ptr-e1lysavr00fz11rl6gx.18120a2.ip6.access.telenet.be) |
2021-02-04 08:21:43 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 08:25:05 +0100 | michalz | (~user@185.246.204.79) |
2021-02-04 08:26:05 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 08:26:20 +0100 | rmk236 | (~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de) |
2021-02-04 08:28:05 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 08:30:22 +0100 | MidAutumnHotaru | (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾) |
2021-02-04 08:30:47 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-02-04 08:31:01 +0100 | MidAutumnHotaru | (~MidAutumn@unaffiliated/midautumnhotaru) |
2021-02-04 08:33:04 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
2021-02-04 08:33:20 +0100 | d3od | (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Remote host closed the connection) |
2021-02-04 08:34:17 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 08:35:36 +0100 | forgottenone | (~forgotten@176.42.30.142) |
2021-02-04 08:39:23 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-04 08:39:32 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-04 08:39:43 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 08:40:04 +0100 | average | (uid473595@gateway/web/irccloud.com/x-oviqbcwayddkmlvw) (Quit: Connection closed for inactivity) |
2021-02-04 08:44:23 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 08:46:15 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-04 08:47:06 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-04 08:47:22 +0100 | nineonin_ | (~nineonine@50.216.62.2) (Ping timeout: 276 seconds) |
2021-02-04 08:50:25 +0100 | Natch | (~Natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
2021-02-04 08:50:57 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 264 seconds) |
2021-02-04 08:51:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 08:51:24 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-nvqzpcbpfmbefeds) (Quit: Connection closed for inactivity) |
2021-02-04 08:51:50 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-02-04 08:52:33 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 246 seconds) |
2021-02-04 08:53:22 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 08:53:52 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-02-04 08:54:14 +0100 | unlink2 | (~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2021-02-04 08:54:28 +0100 | hhnoob | (3dded63f@61-222-214-63.HINET-IP.hinet.net) |
2021-02-04 08:55:18 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 3.0) |
2021-02-04 08:55:34 +0100 | mmohammadi9812 | (~mmohammad@198.12.95.171) (Quit: Quit) |
2021-02-04 08:56:01 +0100 | Natch | (~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) |
2021-02-04 08:56:14 +0100 | unlink2 | (~unlink2@p57b8511e.dip0.t-ipconnect.de) |
2021-02-04 08:56:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 08:56:57 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 08:58:00 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-02-04 08:58:11 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 258 seconds) |
2021-02-04 08:59:39 +0100 | EncodePanda | (b9eeefcd@185.238.239.205) |
2021-02-04 09:01:07 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-02-04 09:02:06 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-04 09:02:50 +0100 | thongpv88 | (~thongpv87@103.6.151.121) |
2021-02-04 09:02:51 +0100 | thongpv88 | (~thongpv87@103.6.151.121) (Client Quit) |
2021-02-04 09:02:55 +0100 | d3od | (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) |
2021-02-04 09:03:01 +0100 | d3od | (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Excess Flood) |
2021-02-04 09:03:16 +0100 | d3od | (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) |
2021-02-04 09:03:39 +0100 | d3od | (~nickmeno3@78-1-82-164.adsl.net.t-com.hr) (Remote host closed the connection) |
2021-02-04 09:04:50 +0100 | renzhi | (~renzhi@2607:fa49:6500:6f00::1e43) (Ping timeout: 264 seconds) |
2021-02-04 09:06:34 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-02-04 09:07:45 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:08:57 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 09:12:05 +0100 | poscat | (~poscat@111.192.221.197) (Ping timeout: 240 seconds) |
2021-02-04 09:13:26 +0100 | poscat | (~poscat@111.192.221.197) |
2021-02-04 09:13:36 +0100 | acdsystemliorg[m | (acdsysteml@gateway/shell/matrix.org/x-fdbespuaoazmlwtb) |
2021-02-04 09:13:48 +0100 | antaoiseach | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:15:13 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 09:15:30 +0100 | nhs | (~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 +0100 | coot | (~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 +0100 | geowiesnot | (~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 +0100 | nhs | (~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 +0100 | hackage | Z-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 +0100 | polyrain | (~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 +0100 | tomsmeding | is 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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:27:00 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-04 09:31:11 +0100 | knupfer | (~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 +0100 | nhs | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:33:59 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | Yumasi | (~guillaume@2a01:e0a:5cb:4430:e2bc:3fed:317c:3efb) |
2021-02-04 09:34:22 +0100 | Narinas | (~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 +0100 | vchlup | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:36:07 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 276 seconds) |
2021-02-04 09:36:14 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:38:03 +0100 | vchlup | (~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 +0100 | Narinas | (~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 +0100 | vicfred | (~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 +0100 | ericsagn1 | (~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 +0100 | nhs | (~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 +0100 | ericsagnes | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 09:43:49 +0100 | miguel_clean | (~Miguel@89-72-187-203.dynamic.chello.pl) |
2021-02-04 09:43:58 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 09:44:03 +0100 | EncodePanda | (b9eeefcd@185.238.239.205) (Quit: Connection closed) |
2021-02-04 09:46:09 +0100 | Narinas | (~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 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-02-04 09:47:25 +0100 | Narinas | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 09:51:04 +0100 | hhnoob | (3dded63f@61-222-214-63.HINET-IP.hinet.net) (Quit: Connection closed) |
2021-02-04 09:52:00 +0100 | chris8142 | (~chris8142@srvnet-01-071.ikbnet.co.at) (Quit: WeeChat 3.0.1) |
2021-02-04 09:52:42 +0100 | simara[m] | (simaramatr@gateway/shell/matrix.org/x-qirnwrgkrbmjerbr) |
2021-02-04 09:53:08 +0100 | antaoiseach | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-02-04 09:54:19 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 09:55:43 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-ioizzidwfhnufbxy) |
2021-02-04 09:56:21 +0100 | hiroaki | (~hiroaki@ip4d167562.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2021-02-04 09:57:00 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) |
2021-02-04 10:00:08 +0100 | borne | (~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de) |
2021-02-04 10:04:02 +0100 | rmk236 | (~lcampos@ip-37-201-210-153.hsi13.unitymediagroup.de) (Quit: Leaving.) |
2021-02-04 10:05:42 +0100 | TianGTY | (~textual@42.120.74.97) |
2021-02-04 10:07:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-04 10:07:52 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Remote host closed the connection) |
2021-02-04 10:10:10 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-04 10:12:24 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) |
2021-02-04 10:12:30 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-02-04 10:13:44 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-04 10:15:07 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 276 seconds) |
2021-02-04 10:21:46 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 10:21:53 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 10:22:52 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-02-04 10:25:15 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 10:26:23 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-04 10:26:39 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-vcqnqeayruwjdhxh) (Quit: Connection closed for inactivity) |
2021-02-04 10:27:57 +0100 | quinn | (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-02-04 10:29:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 10:29:54 +0100 | sakirious4 | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-02-04 10:30:34 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 10:30:46 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 10:30:51 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 272 seconds) |
2021-02-04 10:30:52 +0100 | sakirious4 | sakirious |
2021-02-04 10:35:06 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 10:35:18 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 10:35:55 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 10:36:36 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-04 10:36:36 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 10:37:05 +0100 | knupfer | (~Thunderbi@200116b82ce4e60025387f735d9833ce.dip.versatel-1u1.de) (Ping timeout: 258 seconds) |
2021-02-04 10:37:29 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 10:37:55 +0100 | knupfer | (~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 +0100 | ph88^ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) |
2021-02-04 10:40:32 +0100 | toorevitimirp | (~tooreviti@117.182.181.145) (Ping timeout: 258 seconds) |
2021-02-04 10:41:24 +0100 | knupfer | (~Thunderbi@dynamic-046-114-147-200.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
2021-02-04 10:42:10 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 10:43:34 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-02-04 10:43:45 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-02-04 10:43:50 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 264 seconds) |
2021-02-04 10:46:19 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) |
2021-02-04 10:47:19 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-04 10:47:21 +0100 | catt | (~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 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-02-04 10:50:22 +0100 | p7lpa1ugixavugu | (~atomic@2800:810:514:8155:885f:ca4:6add:b1fa) |
2021-02-04 10:50:36 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-02-04 10:53:25 +0100 | hseg | (~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 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-vpvehxcmwssmnbeh) |
2021-02-04 10:56:04 +0100 | j2t | (~j2t@84.122.202.215.dyn.user.ono.com) |
2021-02-04 10:56:54 +0100 | j2t | (~j2t@84.122.202.215.dyn.user.ono.com) (Client Quit) |
2021-02-04 10:57:11 +0100 | pera | (~pera@unaffiliated/pera) |
2021-02-04 10:57:42 +0100 | hseg | (~gesh@185.120.124.95) (Ping timeout: 256 seconds) |
2021-02-04 10:59:09 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-02-04 10:59:56 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 11:01:08 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-02-04 11:01:08 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-04 11:01:20 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-02-04 11:01:23 +0100 | Rudd0 | (~Rudd0@185.189.115.103) |
2021-02-04 11:02:11 +0100 | son0p | (~son0p@181.58.39.182) |
2021-02-04 11:04:59 +0100 | <ph88^> | yes |
2021-02-04 11:05:04 +0100 | nhs | (~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 +0100 | m0rphism1 | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-02-04 11:08:17 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) |
2021-02-04 11:10:23 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-04 11:13:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds) |
2021-02-04 11:14:59 +0100 | Franciman | (~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 +0100 | nhs | (~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 +0100 | raehik | (~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 +0100 | nhs | (~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 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-04 11:23:48 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-02-04 11:24:02 +0100 | xff0x_ | (~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 +0100 | xff0x_ | (~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 +0100 | hackage | hpqtypes-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 +0100 | DavidEichmann | (~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 +0100 | ubert | (~Thunderbi@p200300ecdf25d92eca5b76fffe29f233.dip0.t-ipconnect.de) |
2021-02-04 11:27:05 +0100 | andreas303 | (~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 +0100 | wroathe | (~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 +0100 | jedws | (~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 +0100 | andreas303 | (~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 +0100 | Lord_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 +0100 | Lord_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 +0100 | cole-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 +0100 | coot | (~coot@2a02:a311:433f:a080:2f8e:acf5:8455:513f) |
2021-02-04 11:33:52 +0100 | coot | (~coot@2a02:a311:433f:a080:2f8e:acf5:8455:513f) (Read error: Connection reset by peer) |
2021-02-04 11:33:55 +0100 | nhs | (~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 +0100 | hackage | haskoin-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 +0100 | frozenErebus | (~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 +0100 | nhs | (~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 +0100 | TianGTY | (~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 +0100 | hekkaidekapus[ | (~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 +0100 | zebrag | (~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 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-04 11:47:46 +0100 | zebrag | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 11:52:06 +0100 | nhs | (~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 +0100 | hackage | dep-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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
2021-02-04 11:57:10 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 12:01:26 +0100 | pjb | (~t@2a01cb04063ec5009d3731745487fa1c.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-02-04 12:05:26 +0100 | rdivyanshu | (uid322626@gateway/web/irccloud.com/x-ioizzidwfhnufbxy) (Quit: Connection closed for inactivity) |
2021-02-04 12:08:20 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 12:09:34 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) |
2021-02-04 12:13:17 +0100 | TianGTY | (~textual@103.116.47.86) |
2021-02-04 12:13:27 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 272 seconds) |
2021-02-04 12:14:07 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 12:14:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds) |
2021-02-04 12:16:14 +0100 | TianGTY | (~textual@103.116.47.86) (Client Quit) |
2021-02-04 12:16:43 +0100 | TianGTY | (~textual@103.116.47.86) |
2021-02-04 12:18:14 +0100 | mgautier | (~max@91-167-197-212.subs.proxad.net) |
2021-02-04 12:18:20 +0100 | jedws | (~jedws@101.184.202.248) |
2021-02-04 12:18:33 +0100 | darjeeling_ | (~darjeelin@122.245.120.134) (Ping timeout: 264 seconds) |
2021-02-04 12:18:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-04 12:18:56 +0100 | jedws | (~jedws@101.184.202.248) (Client Quit) |
2021-02-04 12:19:57 +0100 | mgautier | (~max@91-167-197-212.subs.proxad.net) (Remote host closed the connection) |
2021-02-04 12:20:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 12:22:05 +0100 | aveltras | (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 +0100 | nhs | (~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 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-04 12:30:08 +0100 | notzmv | (~user@unaffiliated/zmv) |
2021-02-04 12:30:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 12:31:09 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-04 12:31:20 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) |
2021-02-04 12:31:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 12:32:17 +0100 | fendor | (~fendor@77.119.129.25.wireless.dyn.drei.com) |
2021-02-04 12:34:15 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-02-04 12:34:53 +0100 | ph88^ | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-02-04 12:37:21 +0100 | merijn | (~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 +0100 | kritzefitz | (~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 +0100 | pjb | (~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 +0100 | merijn | (~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 +0100 | nhs | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 12:43:33 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-04 12:44:13 +0100 | son0p | (~son0p@181.58.39.182) (Quit: Lost terminal) |
2021-02-04 12:44:31 +0100 | hekkaidekapus[ | (~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 +0100 | plutoniix | (~q@184.82.206.197) (Quit: Leaving) |
2021-02-04 12:47:25 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 240 seconds) |
2021-02-04 12:47:25 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-04 12:47:47 +0100 | zebrag | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-04 12:49:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 12:51:16 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-04 12:54:45 +0100 | merijn | (~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 +0100 | merijn | (~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 +0100 | thongpv87 | (~thongpv87@103.6.151.121) (Read error: No route to host) |
2021-02-04 12:58:14 +0100 | shiraeeshi | (~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 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-04 12:58:53 +0100 | nhs | (~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 +0100 | toorevitimirp | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 13:02:18 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 13:02:30 +0100 | darjeeling_ | (~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 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) |
2021-02-04 13:03:18 +0100 | polyrain | (~polyrain@2001:8003:e4d8:4101:e942:1e05:b6e2:4ede) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 13:03:25 +0100 | ClaudiusMaximus | (~claude@191.123.199.146.dyn.plus.net) (Changing host) |
2021-02-04 13:03:25 +0100 | ClaudiusMaximus | (~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 +0100 | nhs | (~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 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-02-04 13:07:22 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
2021-02-04 13:10:16 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) |
2021-02-04 13:10:30 +0100 | LKoen | (~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 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds) |
2021-02-04 13:13:09 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds) |
2021-02-04 13:14:36 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-04 13:15:02 +0100 | heatsink | (~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 +0100 | nhs | (~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 +0100 | ubert | (~Thunderbi@p200300ecdf25d92eca5b76fffe29f233.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-02-04 13:19:09 +0100 | ubert | (~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de) |
2021-02-04 13:19:37 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-02-04 13:19:38 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-02-04 13:19:42 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2021-02-04 13:20:02 +0100 | livvy | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 13:22:19 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 13:22:46 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-ualbkaikcrbbwtmy) |
2021-02-04 13:25:03 +0100 | Athas | (athas@sigkill.dk) (Quit: ZNC - http://znc.sourceforge.net) |
2021-02-04 13:25:17 +0100 | Athas | (athas@2a01:7c8:aaac:1cf:1c06:6cab:a957:ec6e) |
2021-02-04 13:33:16 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 13:33:27 +0100 | erh^ | (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 +0100 | vnz | (~vnz@unaffiliated/vnz) (Remote host closed the connection) |
2021-02-04 13:35:10 +0100 | vnz | (~vnz@2001:bc8:604:94f::1) |
2021-02-04 13:35:10 +0100 | vnz | (~vnz@2001:bc8:604:94f::1) (Changing host) |
2021-02-04 13:35:10 +0100 | vnz | (~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 +0100 | tsrt^ | (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 +0100 | xff0x_ | (~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 +0100 | nhs | (~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 +0100 | xff0x_ | (~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 +0100 | qwfpluy | (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 +0100 | viluon | (uid453725@gateway/web/irccloud.com/x-dhvshmzrbfswywrh) |
2021-02-04 13:45:04 +0100 | frozenErebus | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 13:49:26 +0100 | royal_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 +0100 | frozenErebus | (~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 +0100 | sh9 | (~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 +0100 | hackage | haskoin-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 +0100 | Tario | (~Tario@201.192.165.173) |
2021-02-04 13:50:56 +0100 | reactormonk1 | (~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 +0100 | nhs | (~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 +0100 | bitmagie | (~Thunderbi@200116b80656d50064954332a754decc.dip.versatel-1u1.de) |
2021-02-04 13:52:37 +0100 | kritzefitz | (~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 +0100 | TianGTY | (~textual@103.116.47.86) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 13:56:25 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) |
2021-02-04 13:56:41 +0100 | nhs | (~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 +0100 | TianGTY | (~textual@103.116.47.86) |
2021-02-04 14:01:07 +0100 | <qwfpluy> | swarmcollective thanks! |
2021-02-04 14:04:34 +0100 | qwfpluy | (3e605a22@62.96.90.34) (Quit: Connection closed) |
2021-02-04 14:07:32 +0100 | darjeeling_ | (~darjeelin@122.245.120.134) (Ping timeout: 256 seconds) |
2021-02-04 14:08:09 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 265 seconds) |
2021-02-04 14:08:40 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 14:09:09 +0100 | TianGTY | (~textual@103.116.47.86) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 14:09:51 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2021-02-04 14:10:45 +0100 | forgottenone | (~forgotten@176.42.30.142) (Ping timeout: 240 seconds) |
2021-02-04 14:10:59 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) |
2021-02-04 14:11:07 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-04 14:12:19 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-yenulyouxfdnsprv) |
2021-02-04 14:12:35 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-04 14:13:28 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 265 seconds) |
2021-02-04 14:13:31 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-04 14:15:01 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-04 14:15:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds) |
2021-02-04 14:19:20 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 14:19:43 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 14:23:15 +0100 | darjeeling_ | (~darjeelin@122.245.120.134) |
2021-02-04 14:24:43 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 276 seconds) |
2021-02-04 14:25:31 +0100 | nhs | (~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 +0100 | michalz` | (~user@185.246.204.93) |
2021-02-04 14:28:49 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-04 14:28:56 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2021-02-04 14:29:05 +0100 | michalz | (~user@185.246.204.79) (Ping timeout: 240 seconds) |
2021-02-04 14:29:16 +0100 | voidcontext | (~pgee@178.62.100.221) (Ping timeout: 240 seconds) |
2021-02-04 14:29:18 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-02-04 14:30:22 +0100 | voidcontext | (~pgee@178.62.100.221) |
2021-02-04 14:30:32 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 258 seconds) |
2021-02-04 14:30:45 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-02-04 14:31:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 14:32:57 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) |
2021-02-04 14:35:18 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 14:36:25 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 276 seconds) |
2021-02-04 14:38:59 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) |
2021-02-04 14:39:05 +0100 | geekosaur | (82650c7c@130.101.12.124) (Quit: Ping timeout (120 seconds)) |
2021-02-04 14:40:03 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds) |
2021-02-04 14:40:32 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-04 14:41:44 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-04 14:42:45 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 14:43:04 +0100 | notzmv | (~user@unaffiliated/zmv) (Remote host closed the connection) |
2021-02-04 14:44:17 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) |
2021-02-04 14:45:28 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Client Quit) |
2021-02-04 14:45:33 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 14:45:56 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 14:46:25 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-04 14:46:53 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-04 14:47:33 +0100 | ADG1089__ | (~aditya@223.236.190.35) |
2021-02-04 14:47:46 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-02-04 14:47:50 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-04 14:48:53 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 14:49:55 +0100 | hackage | haskoin-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 +0100 | nhs | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 14:56:08 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 268 seconds) |
2021-02-04 14:56:55 +0100 | <ph88_> | thanks |
2021-02-04 14:57:10 +0100 | forgottenone | (~forgotten@176.42.30.142) |
2021-02-04 14:58:51 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) |
2021-02-04 15:00:32 +0100 | lortabac | (~lortabac@51.158.65.124) |
2021-02-04 15:01:35 +0100 | hyperisco | (~hyperisco@104-195-141-253.cpe.teksavvy.com) |
2021-02-04 15:01:56 +0100 | unlink_ | (~unlink2@p200300ebcf12ea00013250d6b4625a26.dip0.t-ipconnect.de) |
2021-02-04 15:02:23 +0100 | unlink2 | (~unlink2@p57b8511e.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2021-02-04 15:02:41 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood) |
2021-02-04 15:03:07 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-02-04 15:03:24 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) (Remote host closed the connection) |
2021-02-04 15:03:47 +0100 | average | (uid473595@gateway/web/irccloud.com/x-wmphahzlcegaaqct) |
2021-02-04 15:04:10 +0100 | gzj | (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer) |
2021-02-04 15:04:31 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:05:11 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:05:34 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:05:57 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-04 15:06:50 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 15:07:02 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2021-02-04 15:08:10 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:08:32 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:09:11 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:09:33 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:11:07 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:11:30 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:11:36 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-04 15:11:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) |
2021-02-04 15:12:30 +0100 | hekkaidekapus[ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-02-04 15:12:52 +0100 | hseg | (~gesh@185.120.124.95) |
2021-02-04 15:13:10 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:13:31 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:14:12 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-bmhpuzgzzgtmheov) |
2021-02-04 15:15:07 +0100 | davros | (~davros@host86-185-99-39.range86-185.btcentralplus.com) |
2021-02-04 15:15:11 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:15:33 +0100 | gzj | (~gzj@unaffiliated/gzj) |
2021-02-04 15:16:10 +0100 | gzj | (~gzj@unaffiliated/gzj) (Remote host closed the connection) |
2021-02-04 15:16:50 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds) |
2021-02-04 15:17:12 +0100 | forgottenone | (~forgotten@176.42.30.142) (Quit: Konversation terminated!) |
2021-02-04 15:17:47 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) |
2021-02-04 15:18:24 +0100 | hackage | hls-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 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:38f4:e3b3:a086:d44b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 15:18:37 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 15:22:33 +0100 | <ph88_> | [exa], are you here ? |
2021-02-04 15:23:54 +0100 | frozenErebus | (~frozenEre@94.128.81.133) |
2021-02-04 15:24:27 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 15:25:05 +0100 | themba_ | (themba@90.221.74.173) (Ping timeout: 240 seconds) |
2021-02-04 15:25:23 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 15:25:45 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 15:29:21 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-04 15:30:59 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-04 15:31:48 +0100 | alx741 | (~alx741@186.178.110.33) |
2021-02-04 15:32:33 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) (Read error: Connection reset by peer) |
2021-02-04 15:33:12 +0100 | LKoen | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-04 15:38:49 +0100 | hexfive | (~hexfive@50.35.83.177) (Quit: i must go. my people need me.) |
2021-02-04 15:40:26 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:77eb:108:ea2:a08f:6e8c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-02-04 15:41:38 +0100 | themba_ | (~themba@bcde0474.skybroadband.com) |
2021-02-04 15:42:28 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) |
2021-02-04 15:43:03 +0100 | nhs | (~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 +0100 | mnrmnaugh | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 264 seconds) |
2021-02-04 15:52:35 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-04 15:53:10 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-04 15:53:44 +0100 | mnrmnaugh | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2021-02-04 15:57:40 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 276 seconds) |
2021-02-04 15:59:18 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 15:59:39 +0100 | geekosaur | (82650c7c@130.101.12.124) (Quit: Connection closed) |
2021-02-04 16:00:09 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-02-04 16:00:16 +0100 | zaquest | (~notzaques@5.128.210.178) (Quit: Leaving) |
2021-02-04 16:03:11 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3) |
2021-02-04 16:03:40 +0100 | plutoniix | (~q@node-upb.pool-125-24.dynamic.totinternet.net) |
2021-02-04 16:04:06 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
2021-02-04 16:06:12 +0100 | mirrorbird | (~psutcliff@2a00:801:42d:5efa:6585:c362:5f1c:676) |
2021-02-04 16:06:15 +0100 | Jd007 | (~Jd007@162.156.11.151) |
2021-02-04 16:08:05 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-04 16:08:44 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) |
2021-02-04 16:08:46 +0100 | raym | (~ray@45.64.220.55) (Quit: leaving) |
2021-02-04 16:09:02 +0100 | raym | (~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 +0100 | maroloccio | (~marolocci@pousada3ja.mma.com.br) (Client Quit) |
2021-02-04 16:12:54 +0100 | maroloccio | (~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 +0100 | royal_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 +0100 | royal_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 +0100 | nhs | (~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 +0100 | pera | (~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 +0100 | nhs | (~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 +0100 | Sgeo | (~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 +0100 | ubert | (~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 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-04 16:26:16 +0100 | noctux | (~noctux@unaffiliated/noctux) (Ping timeout: 240 seconds) |
2021-02-04 16:26:23 +0100 | deviantfero | (~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 +0100 | lawid | (~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 +0100 | cr3 | (~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 +0100 | noctux | (~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 +0100 | lawid | (~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 +0100 | maroloccio | (~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 +0100 | jiribenes | (~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 +0100 | jiribenes | (~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 +0100 | nhs | (~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 +0100 | ski | . o O ( stream transducers ? ) |
2021-02-04 16:41:33 +0100 | bitmagie | (~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 +0100 | zaquest | (~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 +0100 | knupfer | (~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 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | toorevitimirp | (~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 +0100 | mirrorbird | (~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 +0100 | zebrag | (~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 +0100 | zebrag | (~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 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-04 16:57:08 +0100 | berberman | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-02-04 16:57:33 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) |
2021-02-04 16:57:35 +0100 | berberman | (~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 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-zomvgoemagekvvah) |
2021-02-04 17:01:14 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-02-04 17:01:24 +0100 | hackage | HDBC-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 +0100 | ubert | (~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 +0100 | berberman | (~berberman@unaffiliated/berberman) (Client Quit) |
2021-02-04 17:02:41 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-02-04 17:03:28 +0100 | toorevitimirp | (~tooreviti@117.182.181.186) (Remote host closed the connection) |
2021-02-04 17:03:54 +0100 | hackage | trackit 0.7 - A command-line tool for live monitoring https://hackage.haskell.org/package/trackit-0.7 (EmilAxelsson) |
2021-02-04 17:03:55 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | cocreature | (~cocreatur@eirene.uberspace.de) (Read error: Connection reset by peer) |
2021-02-04 17:06:03 +0100 | cocreature | (~cocreatur@eirene.uberspace.de) |
2021-02-04 17:06:09 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) (Quit: jiribenes) |
2021-02-04 17:06:25 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) |
2021-02-04 17:07:41 +0100 | ransom | (~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 +0100 | berberman | (~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 +0100 | berberman | (~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 +0100 | LKoen_ | (~LKoen@252.248.88.92.rev.sfr.net) |
2021-02-04 17:10:24 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-02-04 17:11:03 +0100 | berberman | (~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 +0100 | Franciman | (~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 +0100 | LKoen | (~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 +0100 | TianGTY | (~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 +0100 | swarmcollective | thinks 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 +0100 | smitop | (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 +0100 | hackage | Z-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 +0100 | Deide | (~Deide@217.155.19.23) |
2021-02-04 17:19:35 +0100 | heatsink | (~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 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
2021-02-04 17:20:55 +0100 | TianGTY | (~textual@211.106.132.202) (Remote host closed the connection) |
2021-02-04 17:21:46 +0100 | zelazny | (~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 +0100 | hiroaki | (~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 +0100 | hseg | (~gesh@185.120.124.95) (Ping timeout: 264 seconds) |
2021-02-04 17:29:57 +0100 | ph88^ | (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) |
2021-02-04 17:33:45 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 240 seconds) |
2021-02-04 17:34:02 +0100 | ph88_ | (~ph88@2a02:8109:9e00:7e5c:ade8:bbad:5afb:2c7) (Ping timeout: 260 seconds) |
2021-02-04 17:36:05 +0100 | tzh | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) (Ping timeout: 276 seconds) |
2021-02-04 17:39:20 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving) |
2021-02-04 17:39:33 +0100 | mirrorbird | (~psutcliff@2a00:801:2d5:848b:590:cf4f:5eeb:b49d) |
2021-02-04 17:40:04 +0100 | frozenErebus | (~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 +0100 | ixian | (~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 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:7417:1a58:4f1d:bffb) |
2021-02-04 17:41:06 +0100 | ixian | (~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 +0100 | nhs | (~nhs@c-24-20-87-79.hsd1.or.comcast.net) |
2021-02-04 17:41:24 +0100 | hackage | haskoin-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 +0100 | Sheilong | (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 +0100 | motherfsck | (~motherfsc@unaffiliated/motherfsck) |
2021-02-04 17:42:24 +0100 | hackage | husk-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 +0100 | bitmagie | (~Thunderbi@200116b80656d5009dbe3295da93e3ee.dip.versatel-1u1.de) |
2021-02-04 17:46:10 +0100 | conal | (~conal@64.71.133.70) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-04 17:47:02 +0100 | bitmagie | (~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 +0100 | zebrag | (~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 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-04 17:48:28 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) |
2021-02-04 17:49:54 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:d1d4:ed84:6d20:4ae3) |
2021-02-04 17:51:00 +0100 | conal | (~conal@66.115.157.97) |
2021-02-04 17:51:13 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 17:52:13 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 17:52:30 +0100 | dolio | (~dolio@haskell/developer/dolio) (Ping timeout: 256 seconds) |
2021-02-04 17:52:54 +0100 | dolio | (~dolio@haskell/developer/dolio) |
2021-02-04 17:55:02 +0100 | ubert | (~Thunderbi@p200300ecdf25d92ee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-02-04 17:56:23 +0100 | borne | (~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 +0100 | michalz` | (~user@185.246.204.93) (Remote host closed the connection) |
2021-02-04 17:57:10 +0100 | carldd11 | (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer) |
2021-02-04 17:57:21 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-04 17:58:14 +0100 | carldd11 | (~carldd@90-224-49-113-no56.tbcn.telia.com) |
2021-02-04 17:58:21 +0100 | denisse | (~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 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 268 seconds) |
2021-02-04 18:01:08 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 268 seconds) |
2021-02-04 18:02:02 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-04 18:02:16 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-02-04 18:02:17 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-02-04 18:03:09 +0100 | felixpm | (~felixpm@172.56.10.85) |
2021-02-04 18:03:26 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-02-04 18:04:00 +0100 | viluon | (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 +0100 | conal | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 18:06:02 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 18:06:03 +0100 | carldd11 | (~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 +0100 | nbloomf | (~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 +0100 | carldd11 | (~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 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) (Ping timeout: 240 seconds) |
2021-02-04 18:09:00 +0100 | hseg | (~gesh@185.120.124.95) |
2021-02-04 18:10:14 +0100 | felixpm | (~felixpm@172.56.10.85) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
2021-02-04 18:10:38 +0100 | tromp | (~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 +0100 | Wuzzy | (~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 +0100 | Narinas | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 18:15:31 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-02-04 18:15:34 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-04 18:15:53 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 18:16:14 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-fytanfqvvewadlns) (Quit: Connection closed for inactivity) |
2021-02-04 18:16:21 +0100 | ADG1089__ | (~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 +0100 | conal | (~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 +0100 | Guest19099 | (~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 +0100 | ClaudiusMaximus | (~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 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
2021-02-04 18:21:39 +0100 | kuribas | (~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 +0100 | forgottenone | (~forgotten@176.42.30.142) |
2021-02-04 18:25:54 +0100 | dolio | (~dolio@haskell/developer/dolio) (Ping timeout: 258 seconds) |
2021-02-04 18:26:33 +0100 | heatsink_ | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-04 18:26:34 +0100 | heatsink_ | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection) |
2021-02-04 18:27:45 +0100 | dolio | (~dolio@haskell/developer/dolio) |
2021-02-04 18:29:50 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-02-04 18:30:38 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:cd3d:a18d:b2f7:b84a) (Ping timeout: 264 seconds) |
2021-02-04 18:30:54 +0100 | hackage | haskoin-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 +0100 | nbloomf | (~nbloomf@2600:1700:ad14:3020:8527:2d6c:6fbd:96de) |
2021-02-04 18:32:04 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-04 18:32:50 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-02-04 18:34:20 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-02-04 18:34:20 +0100 | ep1ctetus | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 258 seconds) |
2021-02-04 18:34:59 +0100 | nineonin_ | (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) |
2021-02-04 18:36:47 +0100 | nineoni__ | (~nineonine@50.216.62.2) |
2021-02-04 18:38:06 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 246 seconds) |
2021-02-04 18:39:33 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) |
2021-02-04 18:39:38 +0100 | nineonin_ | (~nineonine@2604:3d08:7785:9600:95c8:88e9:a60d:8dfa) (Ping timeout: 264 seconds) |
2021-02-04 18:39:51 +0100 | Alleria | (~textual@zrcout.mskcc.org) |
2021-02-04 18:39:59 +0100 | vchlup | (~vchlup@nat.brnet.cz) (Read error: Connection reset by peer) |
2021-02-04 18:40:14 +0100 | Alleria | Guest69009 |
2021-02-04 18:40:31 +0100 | vchlup | (~vchlup@nat.brnet.cz) |
2021-02-04 18:40:45 +0100 | dolio | (~dolio@haskell/developer/dolio) (Ping timeout: 265 seconds) |
2021-02-04 18:40:51 +0100 | codolio | (~dolio@haskell/developer/dolio) |
2021-02-04 18:41:55 +0100 | hackage | unliftio-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 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) |
2021-02-04 18:44:06 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-04 18:44:48 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Client Quit) |
2021-02-04 18:44:49 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-02-04 18:45:48 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-02-04 18:47:06 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) |
2021-02-04 18:48:58 +0100 | Franciman | (~francesco@host-95-235-155-82.retail.telecomitalia.it) |
2021-02-04 18:53:20 +0100 | itai | (~itai@46.19.86.2) |
2021-02-04 18:53:50 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) |
2021-02-04 18:54:02 +0100 | xff0x_ | (~xff0x@2001:1a81:53aa:1900:7e89:568a:710c:5bc9) (Ping timeout: 264 seconds) |
2021-02-04 18:54:04 +0100 | itai | (~itai@46.19.86.2) (Remote host closed the connection) |
2021-02-04 18:54:47 +0100 | xff0x_ | (~xff0x@2001:1a81:53aa:1900:f90b:c43e:4a98:6d16) |
2021-02-04 18:55:44 +0100 | Major_Biscuit | (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 265 seconds) |
2021-02-04 18:56:25 +0100 | codolio | (~dolio@haskell/developer/dolio) (Ping timeout: 240 seconds) |
2021-02-04 18:56:29 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-04 18:57:04 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 18:57:55 +0100 | hackage | jsonifier 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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 18:58:09 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-02-04 18:58:09 +0100 | dandart | (~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 +0100 | dolio | (~dolio@haskell/developer/dolio) |
2021-02-04 19:03:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-02-04 19:03:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:09:33 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-02-04 19:09:36 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-02-04 19:09:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:09:57 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2021-02-04 19:10:08 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) (Ping timeout: 256 seconds) |
2021-02-04 19:10:30 +0100 | hyiltiz | (~quassel@unaffiliated/hyiltiz) |
2021-02-04 19:13:46 +0100 | seneca | (~epictetus@ip72-194-215-136.sb.sd.cox.net) |
2021-02-04 19:14:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2021-02-04 19:15:36 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
2021-02-04 19:15:36 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:16:45 +0100 | epicte7us | (~epictetus@ip72-194-215-136.sb.sd.cox.net) (Ping timeout: 264 seconds) |
2021-02-04 19:17:57 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 264 seconds) |
2021-02-04 19:20:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-04 19:21:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:25:16 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 19:25:47 +0100 | smitop | (uid328768@gateway/web/irccloud.com/x-meiowmymjnuutbpg) (Quit: Connection closed for inactivity) |
2021-02-04 19:26:49 +0100 | raym | (~ray@45.64.220.55) (Quit: leaving) |
2021-02-04 19:26:54 +0100 | hackage | peregrin 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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-04 19:27:48 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:28:52 +0100 | raym | (~ray@45.64.220.55) |
2021-02-04 19:30:19 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-02-04 19:31:33 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-02-04 19:32:49 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) |
2021-02-04 19:36:25 +0100 | hackage | servant-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 +0100 | dolio | (~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 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-04 19:38:25 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Ping timeout: 256 seconds) |
2021-02-04 19:38:36 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-04 19:38:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-02-04 19:39:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:39:33 +0100 | frozenErebus | (~frozenEre@94.128.81.133) (Ping timeout: 264 seconds) |
2021-02-04 19:40:12 +0100 | jle` | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-02-04 19:45:40 +0100 | merijn | (~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 +0100 | elfets_ | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-04 19:51:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 19:51:54 +0100 | infinity0 | (~infinity0@freenet/developer/infinity0) (Ping timeout: 276 seconds) |
2021-02-04 19:51:54 +0100 | royal_screwup216 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Ping timeout (120 seconds)) |
2021-02-04 19:51:54 +0100 | napping_ | (~brandon@174-20-93-137.mpls.qwest.net) |
2021-02-04 19:51:55 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 276 seconds) |
2021-02-04 19:52:33 +0100 | incertia | (~incertia@d4-50-26-103.nap.wideopenwest.com) |
2021-02-04 19:52:36 +0100 | napping | Guest16629 |
2021-02-04 19:52:53 +0100 | napping_ | (~brandon@174-20-93-137.mpls.qwest.net) (Client Quit) |
2021-02-04 19:52:58 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 276 seconds) |
2021-02-04 19:52:58 +0100 | Guest16629 | (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 276 seconds) |
2021-02-04 19:53:09 +0100 | infinity0 | (~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 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) |
2021-02-04 19:56:19 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-04 19:56:22 +0100 | knupfer | (~Thunderbi@200116b82ca37600006d23d966947440.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-02-04 19:58:25 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
2021-02-04 20:01:23 +0100 | benjamingr__ | (uid23465@gateway/web/irccloud.com/x-hwcybnxooouhdsux) |
2021-02-04 20:01:24 +0100 | dorkside | (~tdbgamer@208.190.197.222) (Remote host closed the connection) |
2021-02-04 20:01:47 +0100 | dorkside | (~tdbgamer@208.190.197.222) |
2021-02-04 20:02:48 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-02-04 20:03:12 +0100 | dorkside | (~tdbgamer@208.190.197.222) (Remote host closed the connection) |
2021-02-04 20:03:21 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-02-04 20:03:32 +0100 | dorkside | (~tdbgamer@208.190.197.222) |
2021-02-04 20:03:32 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-02-04 20:04:50 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2021-02-04 20:07:04 +0100 | dolio | (~dolio@haskell/developer/dolio) |
2021-02-04 20:07:29 +0100 | vikid | (~vikid@83.110.238.94) (Remote host closed the connection) |
2021-02-04 20:07:54 +0100 | vikid | (~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 +0100 | hexfive | (~hexfive@50.35.83.177) |
2021-02-04 20:14:07 +0100 | deviantfero | (~deviantfe@190.150.27.58) (Ping timeout: 256 seconds) |
2021-02-04 20:14:54 +0100 | tromp | (~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 +0100 | asheshambasta | (~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 +0100 | neiluj | (~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 +0100 | thc202 | (~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 +0100 | Lycurgus | (~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 +0100 | ixaxaar | (~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 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-04 20:29:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-04 20:30:22 +0100 | geekosaur | (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 +0100 | merijn | (~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 +0100 | jneira | (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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-04 20:36:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 20:37:49 +0100 | Wuzzy | (~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 +0100 | Wuzzy | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-04 20:42:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 20:42:28 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:872:5621:b6dd:f0b1) (Remote host closed the connection) |
2021-02-04 20:42:55 +0100 | hackage | dep-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 +0100 | geekosaur | (82650c7c@130.101.12.124) |
2021-02-04 20:49:37 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 20:50:17 +0100 | tromp | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 20:53:24 +0100 | merijn | (~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 +0100 | deviantfero | (~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 +0100 | catt | (~r@31.124.181.226) |
2021-02-04 20:55:28 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Remote host closed the connection) |
2021-02-04 20:56:32 +0100 | haritz | (~hrtz@62.3.70.206) |
2021-02-04 20:56:32 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-02-04 20:56:32 +0100 | haritz | (~hrtz@unaffiliated/haritz) |
2021-02-04 20:56:57 +0100 | fendor | (~fendor@77.119.129.25.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-02-04 20:58:38 +0100 | fendor | (~fendor@77.119.129.25.wireless.dyn.drei.com) |
2021-02-04 20:58:55 +0100 | seneca | (~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 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-02-04 20:59:56 +0100 | deviantfero | (~deviantfe@190.150.27.58) |
2021-02-04 21:00:37 +0100 | <ski> | oh |
2021-02-04 21:01:32 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) |
2021-02-04 21:03:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 21:04:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 21:05:42 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) |
2021-02-04 21:08:42 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-02-04 21:08:55 +0100 | hackage | http-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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-02-04 21:10:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 21:11:35 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-02-04 21:11:56 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-04 21:11:58 +0100 | cafce25 | (~cafce25@ipbcc3009d.dynamic.kabel-deutschland.de) (Quit: leaving) |
2021-02-04 21:14:57 +0100 | hseg | (~gesh@185.120.124.95) (Quit: WeeChat 3.0) |
2021-02-04 21:16:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 276 seconds) |
2021-02-04 21:16:19 +0100 | merijn | (~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 +0100 | metro | (~Thunderbi@unaffiliated/metreo) |
2021-02-04 21:21:42 +0100 | merijn | (~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 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-02-04 21:23:57 +0100 | metreo | (~Thunderbi@unaffiliated/metreo) (Ping timeout: 264 seconds) |
2021-02-04 21:23:57 +0100 | metro | metreo |
2021-02-04 21:24:32 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 258 seconds) |
2021-02-04 21:24:41 +0100 | shinobi__ | (~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 +0100 | cr3 | (~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 +0100 | DavidEichmann | (~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 +0100 | jrp | (05501e8f@5.80.30.143) |
2021-02-04 21:31:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-02-04 21:32:22 +0100 | merijn | (~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 +0100 | verement | (~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 +0100 | knupfer | (~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 +0100 | zebrag | (~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 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-80-120.w86-212.abo.wanadoo.fr) |
2021-02-04 21:38:23 +0100 | cafce25 | (~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 +0100 | hackage | haskus-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 +0100 | heatsink | (~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 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 21:44:17 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 21:44:39 +0100 | Narinas | (~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 +0100 | Narinas | (~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 +0100 | raehik | (~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 +0100 | heatsink | (~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 +0100 | l8star | (~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 +0100 | hackage | pandoc-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 +0100 | raehik | (~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 +0100 | zebrag | (~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 +0100 | zebrag | (~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 +0100 | todda7 | (~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 +0100 | mrQuidome | (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 +0100 | Lycurgus | (~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 +0100 | turion | (~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 +0100 | pengjiz | (~user@cmu-secure-128-237-82-2.nat.cmu.net) |
2021-02-04 22:03:23 +0100 | mmmattyx | (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 +0100 | ixian | (~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 +0100 | hackage | ghcide 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 +0100 | son0p | (~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 +0100 | ixian | (~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 +0100 | geekosaur | (82650c7c@130.101.12.124) (Quit: Connection closed) |
2021-02-04 22:15:43 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2021-02-04 22:17:54 +0100 | hackage | launchdarkly-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 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
2021-02-04 22:20:52 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-02-04 22:23:37 +0100 | raingloom | (~quassel@BC242713.catv.pool.telekom.hu) |
2021-02-04 22:24:23 +0100 | fendor_ | (~fendor@178.115.130.101.wireless.dyn.drei.com) |
2021-02-04 22:25:55 +0100 | Noldorin | (~noldorin@unaffiliated/noldorin) (Quit: Textual IRC Client: www.textualapp.com) |
2021-02-04 22:26:12 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-04 22:26:39 +0100 | conal | (~conal@64.71.133.70) |
2021-02-04 22:27:24 +0100 | fendor | (~fendor@77.119.129.25.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-02-04 22:28:02 +0100 | Jesin | (~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 +0100 | vchlup | (~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 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
2021-02-04 22:31:53 +0100 | CMCDragonkai1 | (~Thunderbi@120.18.74.44) |
2021-02-04 22:35:30 +0100 | <dolio> | I suspect no IDE. |
2021-02-04 22:36:00 +0100 | jneira | (501ca940@gateway/web/cgi-irc/kiwiirc.com/ip.80.28.169.64) |
2021-02-04 22:37:37 +0100 | noctux | (~noctux@unaffiliated/noctux) (Read error: Connection reset by peer) |
2021-02-04 22:37:58 +0100 | CMCDragonkai1 | (~Thunderbi@120.18.74.44) (Remote host closed the connection) |
2021-02-04 22:39:00 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2021-02-04 22:40:03 +0100 | DataComputist | (~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 +0100 | soft-warm | (4408f588@ip68-8-245-136.sd.sd.cox.net) |
2021-02-04 22:42:57 +0100 | jb55 | (~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 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-02-04 22:44:21 +0100 | heatsink | (~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 +0100 | takuan | (~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 +0100 | coot | (~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 +0100 | conal | (~conal@64.71.133.70) |
2021-02-04 22:48:34 +0100 | coot | (~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 +0100 | heatsink | (~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 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) |
2021-02-04 22:49:27 +0100 | raingloom | (~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 +0100 | fendor_ | 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 +0100 | mrQuidome | (d57f25d0@ip-213-127-37-208.ip.prioritytelecom.net) (Quit: Connection closed) |
2021-02-04 22:51:05 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-02-04 22:54:22 +0100 | noctux | (~noctux@unaffiliated/noctux) |
2021-02-04 22:54:35 +0100 | miguel_clean | (~Miguel@89-72-187-203.dynamic.chello.pl) (Quit: Leaving.) |
2021-02-04 23:00:10 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 276 seconds) |
2021-02-04 23:01:09 +0100 | napping | (~brandon@174-20-93-137.mpls.qwest.net) (Ping timeout: 264 seconds) |
2021-02-04 23:02:49 +0100 | ADG1089__ | (~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 +0100 | DataComputist | (~lumeng@50.43.26.251) |
2021-02-04 23:06:06 +0100 | zelazny | (~zelazny@217.146.82.202) (Ping timeout: 265 seconds) |
2021-02-04 23:06:45 +0100 | coot | (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-02-04 23:07:07 +0100 | knupfer | (~Thunderbi@200116b82ca3760088333a8e5fca7cce.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
2021-02-04 23:07:45 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) (Read error: Connection reset by peer) |
2021-02-04 23:07:57 +0100 | Narinas | (~Narinas@189.223.62.254.dsl.dyn.telnor.net) |
2021-02-04 23:08:25 +0100 | Lowl3v3l | (~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 +0100 | kupi | (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 +0100 | Tesseraction | (~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 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 268 seconds) |
2021-02-04 23:18:49 +0100 | livvy_ | (~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 +0100 | urodna | (~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 +0100 | Tesseraction | (~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 +0100 | napping | (~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 +0100 | ADG1089__ | (~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 +0100 | eacameron | (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 +0100 | son0p | (~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 +0100 | ski | hasn'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 +0100 | haasn | (~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 +0100 | haasn | (~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 +0100 | tromp | (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection) |
2021-02-04 23:43:37 +0100 | heatsink | (~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 +0100 | Athas | (athas@2a01:7c8:aaac:1cf:1c06:6cab:a957:ec6e) (Quit: ZNC - http://znc.sourceforge.net) |
2021-02-04 23:44:20 +0100 | Athas | (athas@sigkill.dk) |
2021-02-04 23:45:27 +0100 | <ski> | `proc case' ? |
2021-02-04 23:45:45 +0100 | borne | (~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 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
2021-02-04 23:50:26 +0100 | borne | (~fritjof@200116b8641c280038baae9ec143df07.dip.versatel-1u1.de) (Ping timeout: 264 seconds) |
2021-02-04 23:51:31 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
2021-02-04 23:51:58 +0100 | borne | (~fritjof@2a06:8782:ffbb:1337:a53:e188:6f13:d1a) |
2021-02-04 23:52:14 +0100 | jpds | (~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 +0100 | hackage | hls-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 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2021-02-04 23:56:47 +0100 | heatsink | (~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 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-02-04 23:57:25 +0100 | mattl1 | (~mattl@s91904426.blix.com) |
2021-02-04 23:57:43 +0100 | fendor_ | (~fendor@178.115.130.101.wireless.dyn.drei.com) |
2021-02-04 23:57:57 +0100 | elliott_ | (~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 |