Home liberachat/#haskell: Logs Calendar

Logs on 2023-08-09 (liberachat/#haskell)

00:00:04 <Square> I have numerous functions on the form "f :: a1 -> a2 -> ... -> aN -> x", but in the context I want to call them are left with {m a1, m a2, .. , m aN}. Is there some trick automagically form a "g :: m a1 -> m a2 -> .. m aN -> m x" that invokes f? m would typically be an "Either SomeErrType"
00:00:24 <Square> s/are left/I'm left/
00:01:49 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
00:01:49 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
00:01:49 dibblego joins (~dibblego@haskell/developer/dibblego)
00:02:02 <geekosaur> this sounds like you really want one of the ways to get idiom brackets via qq
00:02:03 <jackdk> Square: `liftA{2,3,4,...}` functions from `Control.Applicative`. Or, the general idiom using `<$>` and `<*>`: f <$> ma1 <*> ma2 <*> ma3 <*> ma4 <*> ma5 <*> ...
00:02:24 <int-e> > let x = Just 1; y = Just 2 in (+) <$> x <*> y
00:02:24 <jackdk> or idiom brackets if you're keen on that
00:02:25 <lambdabot> Just 3
00:03:55 <int-e> (Assuming N doesn't get too large, I'd go with Applicative. If N gets large... hmm... I might revisit how that happened in the first place :))
00:03:57 <Square> jackdk, yeah. That's what I'm doing now. The applicative approach.
00:05:19 <jackdk> I endorse this approach of lifting pure functions over the actual arguments (encased in applicative context)
00:06:54 <Square> These functions can take 20-30 parameters, so it would be nice if I could just form a plain function
00:07:49 <geekosaur> uh
00:09:20 m21it joins (~m21it@2800:ac:4001:e1d0:812b:6f83:c9f4:cf80)
00:10:12 <Square> Bigger records, that is
00:10:18 <m21it> If I want logging from the pure function, what do I use? Some kind of WriterT or something else?
00:10:27 × arahael quits (~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Quit: Lost terminal)
00:10:27 × gatekempt quits (~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:11:46 <jackdk> what do you mean by "logging"?
00:12:23 <jackdk> (I'm not being snarky, questions around application logging are different from questions around retrospective execution traces)
00:14:10 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:14:11 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:14:11 wroathe joins (~wroathe@user/wroathe)
00:15:52 <m21it> jackdk, ok, my real use case is handling some data from third-party dynamic JSON API which does change from time to time, so let's say the result is `[A]`. But in a process a lot of things could and will go wrong with parsing some of A items. However, I want to get back whatever succeeded, but also log the error which should be fixed by human, by improving code or configuration
00:17:19 <m21it> So things like `Either` are not super handy in this case, because they are not "forgiving" errors. I need to forgive parsing errors, but collect and log them
00:18:17 <jackdk> Right. My point is, that the collection of parser errors is not exactly application logging - you're not emitting these errors as you go. You might later perform an effectful action to write the list of parse failures to a logfile or whatever
00:19:02 <m21it> Yes, I mean pure logging, without IO
00:19:11 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
00:19:20 <m21it> Just remembering errors to log later, in main loop
00:19:38 <m21it> Where there is IO and we could do side effects like logging
00:20:22 <jackdk> I think you want to consider either (lol) a `Validation` type (which is a semi-common name given to a type that's isomorphic to `Either` but accumulates errors with its `instance Semigroup e => Applicative (Validation e)`). I like package `validation-selective` for this, but it does not and cannot have a lawful `Monad` instance.
00:21:40 <jackdk> You can mitigate this somewhat by using `{-# LANGAUGE ApplicativeDo #-}` which lets GHC desugar some `do`-blocks into `Applicative` operations. Essentially anything where no variable appears on both the LHS and RHS of an `<-`
00:22:28 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
00:23:04 <m21it> Thanks, jackdk! I actually do prefer a normal Applicative, looks cleaner without single-use variable pollution of namespace
00:23:36 <jackdk> Or, you can use `ChronicleT` from package `monad-chronicle`, which is like `WriterT` but instead of using `Either`, it's built on the data type `data These a b = This a | These a b | That b`. This gives you accumulation of errors and a lawful `Monad` instance, but will suffer the same space-leak troubles that `WriterT` can (if you don't use the CPS version)
00:24:44 <jackdk> (ew... I hadn't noticed `MonadChronicle's` `disclose :: Default a => c -> m a` before)
00:25:59 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
00:27:01 <m21it> Actually `Validation e a = Failure e | Success a` is not what I need, because I need both, not either. So more or less the problem is `parseXS :: [RawX] -> Result [Failure] [X]` So some of `RawX` are expected to cause `Failure` which I want to get and log later
00:27:01 × dibblego quits (~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
00:27:05 dobblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
00:27:06 × dobblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
00:27:06 dobblego joins (~dibblego@haskell/developer/dibblego)
00:27:37 dobblego is now known as dibblego
00:28:18 <jackdk> Then you may want to use `These e a` as your result type?
00:29:49 <m21it> Probably.. Not sure how convenient would be to compose a bunch of `[e]` from every result in do notation by hand.. Would like this to be done automatically
00:30:26 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 256 seconds)
00:30:26 × Alex_test quits (~al_test@178.34.161.41) (Ping timeout: 256 seconds)
00:30:42 AlexNoo_ joins (~AlexNoo@94.233.240.100)
00:31:00 × AlexZenon quits (~alzenon@178.34.161.41) (Ping timeout: 256 seconds)
00:31:09 <jackdk> Well that should be handled by the Applicative/Monad instances for `These a`, right? Note that it has a Semigroup constraint on `a` in the haddocks: `instance Semigroup a => Applicative (These a)`
00:31:36 gatekempt joins (~gatekempt@user/gatekempt)
00:32:39 thegeekinside joins (~thegeekin@189.180.79.225)
00:32:41 × AlexNoo quits (~AlexNoo@178.34.161.41) (Ping timeout: 260 seconds)
00:33:33 <m21it> Ah, it's kinda cool if it will do it automatically! I'll take a look to the code! Initially I wanted something just like working with `([e], [a])` as result, but it's too much boilerplate to compose all stuff by hand. And what was wrong with normal Writer?
00:37:00 × gatekempt quits (~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:37:09 × Nosrep quits (~Nosrep@user/nosrep) (Remote host closed the connection)
00:38:16 AlexZenon joins (~alzenon@94.233.240.100)
00:41:37 <m21it> And is there a transformer for `These e a` similar to `ExceptT e m a`?
00:42:01 Alex_test joins (~al_test@94.233.240.100)
00:43:45 razetime joins (~quassel@117.254.36.158)
00:47:01 <jackdk> m21it: Validation may do what you want; see the first example. These appears to discard some information sometimes: https://www.irccloud.com/pastebin/vuNXujzL/ValidationAndThese.hs
00:47:16 <jackdk> The transformer for `These` is `ChronicleT` provided by package `monad-chronicle`
00:48:35 <jackdk> The problem with `WriterT` is that unless you're very careful, you build up a big unevaluated thunk for `w` and that uses lots of memory. `Control.Monad.Trans.Writer.CPS` avoids this by basically being `StateT` with a `WriterT` interface (so you can't do state monad things with it), but you can't do the equivalent with `These` as easily because its `>>=` must inspect the constructor.
00:48:59 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
00:49:40 × AlexZenon quits (~alzenon@94.233.240.100) (Ping timeout: 245 seconds)
00:50:29 <m21it> Thanks! It's close, but not exactly what I need. The difference with my case - if there is at least one `Success` in raw list I'm parsing, the result is successful, but I need to keep all info about failures. Validation does not give it. It does collect all failures which is the thing I need, but it does not keep success
00:52:17 AlexZenon joins (~alzenon@94.233.240.100)
00:52:52 <jackdk> Then I don't think the Applicative/Monad instances will work for you - the types will probably imply this fact if I think about them more. You can maybe look for something like `partitionValidations` or even just go back to `base` and use `partitionEithers`, and maybe then convert to whatever type has the instance that you want
00:54:38 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
00:54:40 × ystael quits (~ystael@user/ystael) (Ping timeout: 245 seconds)
00:58:41 <m21it> `These e a` actually does look ok I think. According its monad instance seems like the idea is following: `This e` = fatal failure, short circuit, exception. `That a` = success, use it with bind `<-` to evaluate next expression in do notation, `These e a` = non fatal failure, accumulate with other non-fatal failures with Monoid. Is it correct?
00:58:59 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
00:59:10 <m21it> https://hackage.haskell.org/package/these-1.2/docs/src/Data.These.html#line-283
00:59:28 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
01:00:03 <m21it> If it's correct, it's even better than I need, because I could do fatal and non-fatal failures with it, in pure functions. Or in effectful using transformer you mentioned.
01:01:02 niko joins (niko@libera/staff/niko)
01:03:27 <jackdk> yes, I believe that's what it does. But note that unlike Validation, `This a <*> _ = This a`, which is why my `these` example in the link above did not collect all the failures in the `sequenceA` call
01:03:51 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 246 seconds)
01:06:25 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
01:06:53 AlexNoo joins (~AlexNoo@94.233.240.100)
01:07:35 × Alex_test quits (~al_test@94.233.240.100) (Ping timeout: 245 seconds)
01:08:00 × AlexNoo_ quits (~AlexNoo@94.233.240.100) (Ping timeout: 245 seconds)
01:08:24 × AlexZenon quits (~alzenon@94.233.240.100) (Ping timeout: 256 seconds)
01:09:00 <m21it> Yeah, it's kinda like fatal exception which overtakes the priority of whatever was collected already. Names are confusing, haha. It should really be something like `Result e a = FatalFailure e | NonFatalFailure e a | AbsoluteSuccess a`
01:10:28 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:41 <jackdk> Well, yes and no. It's a lawful monad for the data type, and you and I are ascribing meaning to it based on the intended use case. It's like how some people say "monads are not 'for IO'" - the IO type exists, its monad instance exists, it's up to you to decide if and how to use it
01:11:03 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
01:11:48 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 256 seconds)
01:13:26 <m21it> True, if I think a bit more `Either e a = Left e | Right a` might be a bit confusing if you are not used to it. In Rust for example they have `Result a e = Either e a`, arguments are swapped, so confusing, but they are used to it
01:15:51 <m21it> I will memorize it with just `this` context from JS, how bad it was, and will never use `This e` - then `That a` and `These e a` will be my exact use case.
01:16:00 <jackdk> The fact that we have the "error" on the left is forced by the way kinds work: `class Monad (m :: Type -> Type) where`... means that `Either e` is the natural way to get it to fit. And so we do that because it lets us write more useful code. Though there's a neat paper, Exceptionally Monadic Error Handling, which points out that `catch :: c a -> (e -> c a) -> c a` is a bind operator: https://arxiv.org/pdf/1810.13430.pdf
01:16:15 Guest36 joins (~Guest36@2800:810:5ea:34e:1c56:e7eb:4664:3b36)
01:16:18 <jackdk> As for this/that/these, you can also let the types guide you
01:16:20 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
01:16:35 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:16:55 <jackdk> You could also define your own `data ParseResult e a = OK a | WithErrors e a` and write your own instances to get exactly what you want
01:17:36 Guest36 is now known as ludat
01:17:38 Alex_test joins (~al_test@94.233.240.100)
01:18:52 <jackdk> But note `ParseResult e a` = `a + (e * a)` = `a * (1 + e)` = `(Maybe e, a)`; we are actually back to a writer monad, using `instance Semigroup g => Monoid (Maybe g)` to get the monoid instance.
01:20:28 <jackdk> so we could circle alllll the way back to your original question, and accumulate errors in something like a `WriterT (Maybe (NonEmpty Error)) m a` or `Writer (Maybe (NonEmpty Error)) a` if you don't need other effects
01:21:37 L29Ah joins (~L29Ah@wikipedia/L29Ah)
01:21:55 <m21it> Yeah, exactly! Isomoprhic to a simple Writer. I actually think `These e a` is cool, and fatal failure is a feature which might be useful. But still might just use simple Writer/WriterT if I don't need a fatal failure
01:22:14 <jackdk> Well I hope the detour was fun at least
01:22:29 × ludat quits (~Guest36@2800:810:5ea:34e:1c56:e7eb:4664:3b36) (Quit: Client closed)
01:22:34 <jackdk> The `These` and `Semialign` universe of packages are cool and underappreciated
01:23:48 ludat joins (~ludat@2800:810:5ea:34e:1c56:e7eb:4664:3b36)
01:24:30 <m21it> Yes! Thanks a lot!
01:30:55 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 245 seconds)
01:35:20 AlexZenon joins (~alzenon@94.233.240.100)
01:38:26 × xff0x quits (~xff0x@ai086045.d.east.v6connect.net) (Ping timeout: 256 seconds)
01:42:33 hugo joins (znc@verdigris.lysator.liu.se)
01:47:10 × niko quits (niko@libera/staff/niko) (Ping timeout: 600 seconds)
01:51:43 <ludat> stackage is down?
01:53:30 niko joins (niko@libera/staff/niko)
01:53:31 <jackdk> https://downforeveryoneorjustme.com/stackage.org
01:53:35 <jackdk> Apparently so
01:56:11 libertyprime joins (~libertypr@203.96.203.44)
02:01:16 Nosrep joins (~Nosrep@user/nosrep)
02:04:30 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 256 seconds)
02:12:26 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
02:15:18 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
02:15:19 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
02:15:19 dibblego joins (~dibblego@haskell/developer/dibblego)
02:15:26 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:15:53 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:16:28 hugo joins (znc@verdigris.lysator.liu.se)
02:22:26 × libertyprime quits (~libertypr@203.96.203.44) (Quit: leaving)
02:25:10 cptaffe joins (~cptaffe@99.47.99.155)
02:26:15 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:31:39 × cptaffe quits (~cptaffe@99.47.99.155) (Ping timeout: 260 seconds)
02:32:14 × td_ quits (~td@i53870913.versanet.de) (Ping timeout: 260 seconds)
02:34:02 td_ joins (~td@i53870903.versanet.de)
02:34:17 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
02:34:42 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
02:37:40 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
02:40:11 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:47:40 nick4 joins (~nick@2600:8807:9084:7800:c51f:d18e:8d7:c770)
02:52:02 × m21it quits (~m21it@2800:ac:4001:e1d0:812b:6f83:c9f4:cf80) (Ping timeout: 246 seconds)
02:54:24 × troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
02:54:50 troydm joins (~troydm@user/troydm)
02:57:41 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:57:41 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:57:41 finn_elija is now known as FinnElija
02:58:13 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
02:58:55 barakk joins (~barakk@2a0d:6fc2:68c0:8e00:fbc6:1d6:b64a:3503)
03:14:13 <jackdk> And it's back
03:18:44 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
03:19:29 × aforemny_ quits (~aforemny@2001:9e8:6cf5:400:b5db:18ef:729d:b60a) (Ping timeout: 260 seconds)
03:20:20 aforemny joins (~aforemny@i59F516C2.versanet.de)
03:27:42 Square2 joins (~Square4@user/square)
03:28:21 × Square quits (~Square4@user/square) (Ping timeout: 245 seconds)
03:30:38 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
03:34:55 dibblego joins (~dibblego@116-255-1-151.ip4.superloop.au)
03:34:56 × dibblego quits (~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
03:34:56 dibblego joins (~dibblego@haskell/developer/dibblego)
03:36:25 × jero98772 quits (~jero98772@2800:484:1d84:300::3) (Remote host closed the connection)
03:39:08 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
03:46:30 × razetime quits (~quassel@117.254.36.158) (Ping timeout: 256 seconds)
03:52:54 justsomeguy joins (~justsomeg@user/justsomeguy)
04:04:15 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
04:04:59 × nyc quits (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com) (Ping timeout: 260 seconds)
04:07:49 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:08:35 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
04:13:49 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
04:16:31 trev joins (~trev@user/trev)
04:21:04 × trev quits (~trev@user/trev) (Ping timeout: 256 seconds)
04:23:20 × shapr quits (~user@2600:1700:c640:3100:8740:4f93:d0ae:d771) (Ping timeout: 256 seconds)
04:27:42 razetime joins (~quassel@117.254.36.158)
04:27:46 jero98772 joins (~jero98772@2800:484:1d84:300::3)
04:33:33 × jero98772 quits (~jero98772@2800:484:1d84:300::3) (Quit: leaving)
04:42:25 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
05:12:26 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
05:15:45 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
05:20:34 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
05:22:52 × mauke quits (~mauke@user/mauke) (Quit: leaving)
05:25:56 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
05:26:20 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 245 seconds)
05:29:04 × ddellacosta quits (~ddellacos@143.244.47.89) (Ping timeout: 256 seconds)
05:30:16 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:30:19 shriekingnoise joins (~shrieking@186.137.175.87)
05:35:57 sm joins (~sm@plaintextaccounting/sm)
05:37:50 ludat31 joins (~ludat@2800:810:5ea:34e:1c56:e7eb:4664:3b36)
05:37:50 × ludat quits (~ludat@2800:810:5ea:34e:1c56:e7eb:4664:3b36) (Remote host closed the connection)
05:39:17 shriekingnoise_ joins (~shrieking@186.137.175.87)
05:40:10 × shriekingnoise_ quits (~shrieking@186.137.175.87) (Client Quit)
05:40:24 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 256 seconds)
05:45:50 × [Leary] quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
05:46:05 [Leary] joins (~Leary]@user/Leary/x-0910699)
05:58:44 × thegeekinside quits (~thegeekin@189.180.79.225) (Remote host closed the connection)
06:02:11 nyc joins (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com)
06:04:45 thegeekinside joins (~thegeekin@189.180.79.225)
06:04:45 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
06:11:20 × thegeekinside quits (~thegeekin@189.180.79.225) (Ping timeout: 245 seconds)
06:13:13 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Remote host closed the connection)
06:21:14 mima joins (~mmh@net-93-67-213-210.cust.vodafonedsl.it)
06:43:46 michalz joins (~michalz@185.246.207.200)
06:46:38 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:49:38 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
06:58:18 acidjnk joins (~acidjnk@p200300d6e7072f35c0ee89994173f691.dip0.t-ipconnect.de)
07:01:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:04:10 fendor joins (~fendor@2a02:8388:1640:be00:b586:6c06:a58:19a3)
07:09:44 ludat31 is now known as ludat
07:12:31 <Hecate> hello hello
07:14:17 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
07:16:57 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
07:17:45 × sm quits (~sm@plaintextaccounting/sm) (Remote host closed the connection)
07:18:25 sm joins (~sm@plaintextaccounting/sm)
07:27:54 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:33:40 gurkenglas joins (~gurkengla@dynamic-046-114-093-026.46.114.pool.telefonica.de)
07:38:10 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
07:38:33 CiaoSen joins (~Jura@2a05:5800:2a1:7d00:664b:f0ff:fe37:9ef)
07:40:23 × Square2 quits (~Square4@user/square) (Remote host closed the connection)
07:41:04 Square2 joins (~Square4@user/square)
07:50:52 chele joins (~chele@user/chele)
07:56:58 × Square2 quits (~Square4@user/square) (Ping timeout: 256 seconds)
07:57:28 raym joins (~ray@user/raym)
07:57:34 <juri_> hio!
07:59:02 zeenk joins (~zeenk@2a02:2f04:a300:2a00::7fe)
08:02:57 zer0bitz_ joins (~zer0bitz@user/zer0bitz)
08:06:09 <Hecate> heya juri_ :)
08:06:52 × zer0bitz quits (~zer0bitz@user/zer0bitz) (Ping timeout: 246 seconds)
08:07:35 × gurkenglas quits (~gurkengla@dynamic-046-114-093-026.46.114.pool.telefonica.de) (Ping timeout: 245 seconds)
08:08:56 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:09:30 gurkenglas joins (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de)
08:14:46 titibandit joins (~titibandi@user/titibandit)
08:19:32 cfricke joins (~cfricke@user/cfricke)
08:20:22 <juri_> Hecate: i heard you were saying good things about me behind my back. you should get to know me better, so you'll stop that. :)
08:23:14 gehmehgeh joins (~user@user/gehmehgeh)
08:24:05 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
08:24:25 × chele quits (~chele@user/chele) (Remote host closed the connection)
08:28:25 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:71bf:cb71:be4e:b077)
08:31:20 danse-nr3_ joins (~francesco@151.46.172.50)
08:32:25 × razetime quits (~quassel@117.254.36.158) (Ping timeout: 246 seconds)
08:33:19 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:71bf:cb71:be4e:b077) (Ping timeout: 260 seconds)
08:37:06 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds)
08:37:20 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
08:38:57 titibandit joins (~titibandi@user/titibandit)
08:41:28 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
08:44:59 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 260 seconds)
08:56:33 razetime joins (~quassel@117.254.36.158)
08:56:44 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:00:03 zer0bitz_ is now known as zer0bitz
09:02:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:03:15 × elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 244 seconds)
09:06:15 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:06:17 <Hecate> juri_: haha yeah I met with Igor! I mean, I haven't lied one bit!
09:06:30 <Hecate> All the stuff I have to say about you is your own fault :p
09:06:48 mc47 joins (~mc47@xmonad/TheMC47)
09:09:54 elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
09:11:13 × ludat quits (~ludat@2800:810:5ea:34e:1c56:e7eb:4664:3b36) (Quit: Client closed)
09:13:35 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 244 seconds)
09:15:19 titibandit joins (~titibandi@user/titibandit)
09:23:01 anselmschueler joins (~anselmsch@user/schuelermine)
09:24:51 × ft quits (~ft@p3e9bcd02.dip0.t-ipconnect.de) (Quit: leaving)
09:24:54 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:28:49 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:31:13 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
09:32:10 × mima quits (~mmh@net-93-67-213-210.cust.vodafonedsl.it) (Ping timeout: 256 seconds)
09:34:37 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
09:35:21 × bonz060 quits (~quassel@2001:bc8:678:1c48::1) (Quit: No Ping reply in 180 seconds.)
09:38:20 mmhat joins (~mmh@p200300f1c73d1934ee086bfffe095315.dip0.t-ipconnect.de)
09:42:51 × connrs quits (~connrs@user/connrs) (Read error: Connection reset by peer)
09:44:19 connrs joins (~connrs@user/connrs)
09:44:55 ubert joins (~Thunderbi@77.119.201.162.wireless.dyn.drei.com)
09:50:29 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:51:27 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
09:51:49 Lord_of_Life_ is now known as Lord_of_Life
09:58:39 × TheCatCollective quits (NyaaTheKit@user/calculuscat) (Ping timeout: 246 seconds)
09:58:51 × hiredman_ quits (~hiredman@frontier1.downey.family) (Ping timeout: 246 seconds)
09:58:52 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
09:58:56 × mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Ping timeout: 246 seconds)
09:59:11 × hiredman quits (~hiredman@frontier1.downey.family) (Ping timeout: 245 seconds)
09:59:42 × wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 260 seconds)
10:01:38 <bwe> is doctest 0.22 broken for any GHC > 9 code base that specifically uses $setup to import a module?
10:07:24 <danse-nr3_> this is the only recent open issue i found that might be vaguely related to that https://github.com/sol/doctest/issues/327
10:07:57 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds)
10:09:34 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 260 seconds)
10:10:21 mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001)
10:10:28 wagle joins (~wagle@quassel.wagle.io)
10:10:58 × canta quits (~canta@user/canta) (Quit: WeeChat 3.5)
10:11:47 TheCatCollective joins (NyaaTheKit@user/calculuscat)
10:13:40 <bwe> danse-nr3_: cabal repl --with-ghc=doctest does work!
10:14:02 × anselmschueler quits (~anselmsch@user/schuelermine) (Quit: WeeChat 4.0.2)
10:15:14 siers joins (~ij@user/ij)
10:15:26 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 245 seconds)
10:15:35 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
10:15:51 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 245 seconds)
10:16:29 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
10:16:31 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
10:17:38 bonz060 joins (~quassel@2001:bc8:678:1c48::1)
10:18:32 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Remote host closed the connection)
10:22:38 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:24:12 × razetime quits (~quassel@117.254.36.158) (Ping timeout: 260 seconds)
10:24:48 thyriaen joins (~thyriaen@2a01:aea0:dd4:6b33:6245:cbff:fe9f:48b1)
10:29:31 <danse-nr3_> cool
10:29:32 × acidjnk quits (~acidjnk@p200300d6e7072f35c0ee89994173f691.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
10:31:01 razetime joins (~quassel@117.254.36.158)
10:32:32 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 252 seconds)
10:38:40 <ncf> type MaybeIndexedTraversal s t a b = forall p m. (forall i. Indexable (Maybe i) p, Applicative m) => p a (m b) -> s -> m t
10:38:49 <ncf> QuantifiedConstraints ftw
10:40:49 Pixi` joins (~Pixi@user/pixi)
10:43:48 × Pixi quits (~Pixi@user/pixi) (Ping timeout: 246 seconds)
10:44:42 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
10:44:42 ripspin joins (~chatzilla@1.145.239.146)
10:45:39 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
10:47:35 × CiaoSen quits (~Jura@2a05:5800:2a1:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 245 seconds)
10:49:59 × sgarcia quits (sgarcia@swarm.znchost.com) (Quit: Hosted by www.ZNCHost.com)
10:50:26 sgarcia joins (sgarcia@swarm.znchost.com)
10:52:50 × mmhat quits (~mmh@p200300f1c73d1934ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.2)
10:53:18 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
10:54:17 chexum joins (~quassel@gateway/tor-sasl/chexum)
11:06:45 × siers quits (~ij@user/ij) (Ping timeout: 246 seconds)
11:10:35 xff0x joins (~xff0x@2405:6580:b080:900:c273:dfcc:236d:9211)
11:14:28 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:14:56 m21it joins (~m21it@2800:ac:c020:aa04:8c7b:1285:3d4:e64f)
11:15:39 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:18:01 siers joins (~ij@user/ij)
11:18:32 Lycurgus joins (~juan@user/Lycurgus)
11:23:00 × gurkenglas quits (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
11:29:04 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Tschüss)
11:32:44 Pickchea joins (~private@user/pickchea)
11:34:36 × robbert-vdh quits (~robbert@robbertvanderhelm.nl) (Ping timeout: 245 seconds)
11:35:15 robbert-vdh joins (~robbert@robbertvanderhelm.nl)
11:36:45 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
11:38:11 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:38:24 × acro quits (~acro@user/acro) (Ping timeout: 246 seconds)
11:38:36 kraftwerk28_ joins (~kraftwerk@178.62.210.83)
11:39:25 × kraftwerk28 quits (~kraftwerk@178.62.210.83) (Ping timeout: 240 seconds)
11:41:31 acro joins (~acro@user/acro)
11:42:07 × razetime quits (~quassel@117.254.36.158) (Ping timeout: 246 seconds)
11:45:20 × danse-nr3_ quits (~francesco@151.46.172.50) (Ping timeout: 256 seconds)
11:48:12 razetime joins (~quassel@117.254.36.158)
11:49:26 Feuermagier joins (~Feuermagi@user/feuermagier)
11:51:55 × wagle quits (~wagle@quassel.wagle.io) (Ping timeout: 240 seconds)
11:52:16 danse-nr3_ joins (~francesco@151.46.172.50)
11:52:38 wagle joins (~wagle@quassel.wagle.io)
11:55:55 × flounders quits (~flounders@24.246.133.1) (Ping timeout: 245 seconds)
11:56:40 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
11:56:57 × danse-nr3_ quits (~francesco@151.46.172.50) (Ping timeout: 246 seconds)
12:00:53 × ripspin quits (~chatzilla@1.145.239.146) (Remote host closed the connection)
12:00:54 × hellwolf quits (~user@5b3d-5cac-bb28-d008-0f00-4d40-07d0-2001.sta.estpak.ee) (Read error: Connection reset by peer)
12:02:00 SoF joins (~skius@user/skius)
12:05:19 × incertia quits (~incertia@209.122.71.127) (*.net *.split)
12:05:19 × h2t quits (~h2t@user/h2t) (*.net *.split)
12:05:19 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (*.net *.split)
12:05:19 × kritzefitz quits (~kritzefit@debian/kritzefitz) (*.net *.split)
12:05:19 × drdo quits (~drdo@bl5-28-156.dsl.telepac.pt) (*.net *.split)
12:05:19 × urdh quits (~urdh@user/urdh) (*.net *.split)
12:05:19 × exarkun quits (~exarkun@user/exarkun) (*.net *.split)
12:05:19 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (*.net *.split)
12:05:19 × tomjaguarpaw quits (~tom@172.104.25.182) (*.net *.split)
12:05:19 × quintasan quits (~quassel@188.226.239.107) (*.net *.split)
12:05:19 × totbwf quits (sid402332@id-402332.uxbridge.irccloud.com) (*.net *.split)
12:05:19 × pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (*.net *.split)
12:05:19 × lisq quits (~quassel@lis.moe) (*.net *.split)
12:05:19 × ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split)
12:05:19 × bsima quits (~bsima@143.198.118.179) (*.net *.split)
12:05:19 × noctux1 quits (88FTKVRINY@user/noctux) (*.net *.split)
12:05:19 × dunj3 quits (~dunj3@kingdread.de) (*.net *.split)
12:05:19 × disconnect3d quits (~disconnec@user/disconnect3d) (*.net *.split)
12:05:19 × apache quits (apache2@anubis.0x90.dk) (*.net *.split)
12:05:19 × koala_man quits (~vidar@157.146.251.23.bc.googleusercontent.com) (*.net *.split)
12:05:19 × drlkf quits (~drlkf@192.184.163.34.bc.googleusercontent.com) (*.net *.split)
12:05:19 × Minnozz quits (~minnozz@salix.minnozz.com) (*.net *.split)
12:05:19 × Hobbyboy quits (Hobbyboy@hobbyboy.co.uk) (*.net *.split)
12:05:19 × c_wraith quits (~c_wraith@adjoint.us) (*.net *.split)
12:05:19 × russruss2 quits (~russruss@my.russellmcc.com) (*.net *.split)
12:05:19 × alinab quits (sid468903@id-468903.helmsley.irccloud.com) (*.net *.split)
12:05:19 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (*.net *.split)
12:05:19 × sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (*.net *.split)
12:05:20 × davl quits (~davl@207.154.228.18) (*.net *.split)
12:05:20 × dragestil quits (~znc@user/dragestil) (*.net *.split)
12:05:20 × gmc quits (sid58314@id-58314.ilkley.irccloud.com) (*.net *.split)
12:05:20 × systemfault quits (sid267009@id-267009.uxbridge.irccloud.com) (*.net *.split)
12:05:20 × dexter1 quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (*.net *.split)
12:05:20 × hexagoxel quits (~hexagoxel@2a01:4f8:c0c:e::2) (*.net *.split)
12:05:20 × sclv quits (sid39734@haskell/developer/sclv) (*.net *.split)
12:05:20 × ggranberry quits (sid267884@id-267884.uxbridge.irccloud.com) (*.net *.split)
12:05:20 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (*.net *.split)
12:05:20 × Franciman quits (~Franciman@mx1.fracta.dev) (*.net *.split)
12:05:38 Minnozz joins (~minnozz@salix.minnozz.com)
12:05:38 exarkun joins (~exarkun@user/exarkun)
12:05:38 incertia joins (~incertia@209.122.71.127)
12:05:38 h2t joins (~h2t@user/h2t)
12:05:38 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
12:05:38 kritzefitz joins (~kritzefit@debian/kritzefitz)
12:05:38 drdo joins (~drdo@bl5-28-156.dsl.telepac.pt)
12:05:38 urdh joins (~urdh@user/urdh)
12:05:38 iphy joins (sid67735@id-67735.lymington.irccloud.com)
12:05:38 quintasan joins (~quassel@188.226.239.107)
12:05:38 tomjaguarpaw joins (~tom@172.104.25.182)
12:05:38 totbwf joins (sid402332@id-402332.uxbridge.irccloud.com)
12:05:38 pepeiborra joins (sid443799@id-443799.ilkley.irccloud.com)
12:05:38 lisq joins (~quassel@lis.moe)
12:05:38 ggVGc joins (~ggVGc@a.lowtech.earth)
12:05:38 bsima joins (~bsima@143.198.118.179)
12:05:38 noctux1 joins (88FTKVRINY@user/noctux)
12:05:38 dunj3 joins (~dunj3@kingdread.de)
12:05:38 disconnect3d joins (~disconnec@user/disconnect3d)
12:05:38 apache joins (apache2@anubis.0x90.dk)
12:05:38 koala_man joins (~vidar@157.146.251.23.bc.googleusercontent.com)
12:05:38 drlkf joins (~drlkf@192.184.163.34.bc.googleusercontent.com)
12:05:38 Hobbyboy joins (Hobbyboy@hobbyboy.co.uk)
12:05:38 c_wraith joins (~c_wraith@adjoint.us)
12:05:38 russruss2 joins (~russruss@my.russellmcc.com)
12:05:38 alinab joins (sid468903@id-468903.helmsley.irccloud.com)
12:05:38 bradparker joins (sid262931@id-262931.uxbridge.irccloud.com)
12:05:38 sa1 joins (sid7690@id-7690.ilkley.irccloud.com)
12:05:38 davl joins (~davl@207.154.228.18)
12:05:38 dragestil joins (~znc@user/dragestil)
12:05:38 gmc joins (sid58314@id-58314.ilkley.irccloud.com)
12:05:38 systemfault joins (sid267009@id-267009.uxbridge.irccloud.com)
12:05:38 dexter1 joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec)
12:05:38 hexagoxel joins (~hexagoxel@2a01:4f8:c0c:e::2)
12:05:38 sclv joins (sid39734@haskell/developer/sclv)
12:05:38 ggranberry joins (sid267884@id-267884.uxbridge.irccloud.com)
12:05:38 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
12:05:38 Franciman joins (~Franciman@mx1.fracta.dev)
12:07:15 danse-nr3_ joins (~francesco@151.46.172.50)
12:08:04 × m21it quits (~m21it@2800:ac:c020:aa04:8c7b:1285:3d4:e64f) (Remote host closed the connection)
12:08:21 × Pickchea quits (~private@user/pickchea) (Ping timeout: 245 seconds)
12:10:56 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:14:20 × danse-nr3_ quits (~francesco@151.46.172.50) (Read error: Connection reset by peer)
12:14:47 danse-nr3_ joins (~francesco@151.44.223.34)
12:14:47 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
12:20:00 acidjnk joins (~acidjnk@p200300d6e7072f350cd3228785a0f2a1.dip0.t-ipconnect.de)
12:21:39 siers joins (~ij@user/ij)
12:28:42 × tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 245 seconds)
12:33:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:36:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:36:28 <rselim> damn you put on a couple of Beethoven piano sonatas and all of a sudden it's past midnight and you're implementing typed tagless final interpreters...
12:38:09 <rselim> the 30 {-# LANGUAGE ... #-} declarations in every file thing drove me away from Haskell for a few years but this, on the other hand, this is fun.
12:42:50 × xff0x quits (~xff0x@2405:6580:b080:900:c273:dfcc:236d:9211) (Ping timeout: 244 seconds)
12:43:08 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
12:44:01 img joins (~img@user/img)
12:44:09 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 260 seconds)
12:44:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:44:55 xff0x joins (~xff0x@178.255.149.135)
12:52:31 gatekempt joins (~gatekempt@user/gatekempt)
12:55:29 <danse-nr3_> imagine if you had put bach, rselim
12:55:56 hiredman joins (~hiredman@frontier1.downey.family)
12:56:06 sm joins (~sm@plaintextaccounting/sm)
12:56:16 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 245 seconds)
12:56:31 hiredman_ joins (~hiredman@frontier1.downey.family)
12:58:08 xff0x joins (~xff0x@2405:6580:b080:900:c273:dfcc:236d:9211)
13:06:02 myxos joins (~myxos@cpe-65-28-251-121.cinci.res.rr.com)
13:12:44 × gatekempt quits (~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:15:46 gatekempt joins (~gatekempt@user/gatekempt)
13:15:52 L29Ah joins (~L29Ah@wikipedia/L29Ah)
13:20:56 Guest45 joins (~Guest45@37.163.158.153)
13:24:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:24:56 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
13:29:07 gurkenglas joins (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de)
13:30:47 × Guest45 quits (~Guest45@37.163.158.153) (Ping timeout: 246 seconds)
13:34:43 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
13:35:17 × gatekempt quits (~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:41:38 joel135 joins (sid136450@id-136450.hampstead.irccloud.com)
13:43:16 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
13:43:29 <joel135> Hi, I was wondering if there is a way to get a repl to interact with an instance of xmonad, in order to get a hang of things.
13:44:05 ystael joins (~ystael@user/ystael)
13:45:16 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
13:46:54 <geekosaur> no, xmonad's internals can't be accessed from outside
13:47:59 <joel135> Ah too bad. I was looking at `IncMasterNSource` and saw that it instances the `Message` class, so I got the idea that maybe one could add messages manually "from the outside" as you say.
13:48:33 <joel135> I will just have to look at some more resources to figure out how people actually use this thing.
13:48:41 <geekosaur> nope, because something inside needs to know about them and you can't push code between instances
13:48:58 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
13:50:00 <geekosaur> haskell isn't erlang
13:50:13 × razetime quits (~quassel@117.254.36.158) (Ping timeout: 246 seconds)
13:50:25 <joel135> nor lisp :)
13:50:29 <geekosaur> (erlang only gets away with it because it compiles to beam, not native code)
13:51:48 <geekosaur> but even if we could do that, we'd probably prevent it some other way because there are too many invariants that need to be preserved for things to work
13:51:49 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:52:51 × hgolden quits (~hgolden@2603-8000-9d00-3ed1-fc05-5499-f77c-fbe5.res6.spectrum.com) (Remote host closed the connection)
13:55:05 hgolden joins (~hgolden@2603-8000-9d00-3ed1-fc05-5499-f77c-fbe5.res6.spectrum.com)
13:59:04 × acidjnk quits (~acidjnk@p200300d6e7072f350cd3228785a0f2a1.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
14:03:24 razetime joins (~quassel@117.254.36.158)
14:07:10 × Alex_test quits (~al_test@94.233.240.100) (Ping timeout: 245 seconds)
14:07:23 mima joins (~mmh@net-93-67-213-210.cust.vodafonedsl.it)
14:08:00 × AlexZenon quits (~alzenon@94.233.240.100) (Ping timeout: 245 seconds)
14:08:25 × AlexNoo quits (~AlexNoo@94.233.240.100) (Ping timeout: 245 seconds)
14:11:21 sm joins (~sm@plaintextaccounting/sm)
14:12:11 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 258 seconds)
14:12:21 thegeekinside joins (~thegeekin@189.180.79.225)
14:20:18 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
14:24:00 × hiredman quits (~hiredman@frontier1.downey.family) (Ping timeout: 256 seconds)
14:27:27 × nick4 quits (~nick@2600:8807:9084:7800:c51f:d18e:8d7:c770) (Ping timeout: 260 seconds)
14:27:42 ddellacosta joins (~ddellacos@146.70.166.219)
14:29:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
14:30:27 cfricke joins (~cfricke@user/cfricke)
14:32:13 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
14:32:52 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:36:42 AlexNoo joins (~AlexNoo@178.34.161.177)
14:39:00 Alex_test joins (~al_test@178.34.161.177)
14:39:35 nick4 joins (~nick@2600:8807:9084:7800:2dab:994f:4b53:9bd3)
14:44:07 sm joins (~sm@plaintextaccounting/sm)
14:44:16 hiredman joins (~hiredman@frontier1.downey.family)
14:47:14 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 260 seconds)
14:53:55 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:54:02 × nick4 quits (~nick@2600:8807:9084:7800:2dab:994f:4b53:9bd3) (Ping timeout: 256 seconds)
14:54:15 AlexZenon joins (~alzenon@178.34.161.177)
14:55:38 nick4 joins (~nick@2600:8807:9084:7800:2dab:994f:4b53:9bd3)
14:57:08 nyr joins (~nyr@user/nyr)
14:58:45 mmhat joins (~mmh@p200300f1c73d1934ee086bfffe095315.dip0.t-ipconnect.de)
14:59:20 gatekempt joins (~gatekempt@user/gatekempt)
14:59:38 × mmhat quits (~mmh@p200300f1c73d1934ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
15:00:38 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Remote host closed the connection)
15:01:02 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
15:07:12 × nyr quits (~nyr@user/nyr) (Ping timeout: 246 seconds)
15:09:38 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
15:10:28 × gurkenglas quits (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
15:15:49 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
15:16:16 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:17:35 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
15:18:29 mauke joins (~mauke@user/mauke)
15:20:22 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 245 seconds)
15:20:53 sm joins (~sm@plaintextaccounting/sm)
15:21:12 × nick4 quits (~nick@2600:8807:9084:7800:2dab:994f:4b53:9bd3) (Ping timeout: 246 seconds)
15:21:27 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
15:23:04 trev joins (~trev@user/trev)
15:27:39 × trev quits (~trev@user/trev) (Ping timeout: 244 seconds)
15:31:28 merijn joins (~merijn@088-129-128-083.dynamic.caiway.nl)
15:33:04 jero98772 joins (~jero98772@2800:484:1d84:300::3)
15:34:23 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
15:34:48 × gatekempt quits (~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:37:10 × jero98772 quits (~jero98772@2800:484:1d84:300::3) (Ping timeout: 245 seconds)
15:38:31 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:71bf:cb71:be4e:b077)
15:40:16 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
15:42:01 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Quit: Gateway shutdown)
15:45:54 L29Ah joins (~L29Ah@wikipedia/L29Ah)
15:46:32 CiaoSen joins (~Jura@2a05:5800:2a1:7d00:664b:f0ff:fe37:9ef)
15:49:54 ripspin joins (~chatzilla@1.145.222.186)
15:51:50 × ddellacosta quits (~ddellacos@146.70.166.219) (Ping timeout: 256 seconds)
15:52:37 × thegeekinside quits (~thegeekin@189.180.79.225) (Ping timeout: 260 seconds)
15:53:59 ddellacosta joins (~ddellacos@143.244.47.84)
15:56:16 × razetime quits (~quassel@117.254.36.158) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
15:59:36 × ph88 quits (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de) (Remote host closed the connection)
15:59:43 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Remote host closed the connection)
16:00:00 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
16:00:09 ph88 joins (~ph88@ip5b403cd4.dynamic.kabel-deutschland.de)
16:00:59 billchenchina joins (~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a)
16:01:16 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:01:18 bramhaag3 joins (~bramhaag@134.195.121.39)
16:02:13 motherfsck joins (~motherfsc@user/motherfsck)
16:03:04 × bramhaag quits (~bramhaag@134.195.121.39) (Ping timeout: 260 seconds)
16:03:04 bramhaag3 is now known as bramhaag
16:04:17 × ddellacosta quits (~ddellacos@143.244.47.84) (Ping timeout: 260 seconds)
16:06:17 ddellacosta joins (~ddellacos@146.70.166.219)
16:06:56 neptun joins (neptun@2607:5300:60:5910:dcad:beff:feef:5bc)
16:07:52 thegeekinside joins (~thegeekin@189.180.79.225)
16:10:41 gatekempt joins (~gatekempt@user/gatekempt)
16:13:25 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 240 seconds)
16:14:45 danse-nr3__ joins (~francesco@151.46.216.118)
16:17:32 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:17:39 × danse-nr3_ quits (~francesco@151.44.223.34) (Ping timeout: 260 seconds)
16:20:10 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 256 seconds)
16:21:11 codaraxis joins (~codaraxis@user/codaraxis)
16:26:42 × ripspin quits (~chatzilla@1.145.222.186) (Remote host closed the connection)
16:30:01 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
16:31:42 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 246 seconds)
16:31:52 shapr joins (~user@2600:1700:c640:3100:40c:ae4c:e272:f9ec)
16:34:34 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:34:59 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
16:35:26 sm joins (~sm@plaintextaccounting/sm)
16:41:50 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:42:32 gurkenglas joins (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de)
16:46:52 × zeenk quits (~zeenk@2a02:2f04:a300:2a00::7fe) (Quit: Konversation terminated!)
16:50:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:53:19 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
17:00:24 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 256 seconds)
17:04:48 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
17:06:28 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
17:13:53 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
17:18:17 d34df00d joins (~d34df00d@2600:1702:4f1b:7c10::e)
17:20:47 <d34df00d> Hi! I'm tyring to build a package that depends on openssl ( https://github.com/larskuhtz/hs-hashes ) , and it fails in the preprocessor here: https://github.com/larskuhtz/hs-hashes/blob/main/src/Data/Hash/Internal/OpenSSL.hs#L12
17:20:53 <d34df00d> In particular, I get this error:
17:21:16 <d34df00d> https://bpa.st/R47Q
17:22:00 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
17:22:20 <d34df00d> configuration.h looks like https://bpa.st/JQ5A , so I presume ghc doesn't pass the __x86_64__ define (or it gets undefined somehow) to the C preprocessor.
17:22:27 <d34df00d> How can I debug/fix this?
17:22:30 × danse-nr3__ quits (~francesco@151.46.216.118) (Ping timeout: 256 seconds)
17:23:47 sm joins (~sm@plaintextaccounting/sm)
17:24:39 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
17:25:40 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:26:26 <geekosaur> typically those are defined internally by the preprocessor or in OS specific headers. I note the error message points you to bugs.gentoo.org, not here; they would know more
17:27:42 × thegeekinside quits (~thegeekin@189.180.79.225) (Ping timeout: 246 seconds)
17:27:46 toqueteos joins (~toqueteos@228.red-81-35-152.dynamicip.rima-tde.net)
17:27:54 <d34df00d> Rest of the packages (especially system ones) work ok with this openssl, so I thought this particular haskell package build process might be a more likely culprit.
17:28:01 <d34df00d> But asking gentoo folks might be a good idea as well.
17:30:26 <mauke> d34df00d: https://bugs.gentoo.org/531120 ?
17:32:26 <d34df00d> mauke: yeah, very similar, thanks!
17:32:40 <d34df00d> So ghc calls cpp with `-undef`
17:34:47 thegeekinside joins (~thegeekin@189.180.79.225)
17:35:50 <geekosaur> that sounds wrong tbh
17:37:51 × merijn quits (~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
17:39:31 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
17:41:04 <d34df00d> I'm curious if it's possible to somehow un-undef this `-undef`
17:43:25 <geekosaur> looks like you need to edit the settings file
17:43:32 <mauke> not from the inside, I don't think
17:43:34 <geekosaur> and indeed it's doing `-undef`
17:44:13 <mauke> you could work around it if you control both the build commands and the code
17:44:28 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
17:44:53 <mauke> idea: cpp -dM /dev/null > platform.h; then #include "platform.h" in the code
17:49:08 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 256 seconds)
17:50:07 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:51:07 <d34df00d> Hmm, that might work for now.
17:52:47 <d34df00d> I'd say modulo ghc doing this undef thing, it's indeed a gentoo bug and something that could be fixed there.
17:56:39 anselmschueler joins (~anselmsch@user/schuelermine)
17:58:03 acidjnk joins (~acidjnk@p200300d6e7072f35188440d828d901dc.dip0.t-ipconnect.de)
18:01:38 × azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
18:10:28 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
18:10:42 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
18:14:41 telser joins (~quassel@user/telser)
18:16:43 <mauke> might be nice to have {-# LANGUAGE CPP' #-} that doesn't -undef
18:17:52 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 260 seconds)
18:20:47 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 260 seconds)
18:25:48 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
18:31:03 nyr joins (~nyr@user/nyr)
18:32:22 × zer0bitz quits (~zer0bitz@user/zer0bitz) ()
18:34:10 danza joins (~francesco@151.46.216.118)
18:36:02 <thyriaen> A $ B $ C $ D the same as A ( B ( C ( D ))) ?
18:36:18 <int-e> for most purposes, yes
18:37:37 <int-e> (there are rare type inference complications from using x $ y instead of x y, because GHC has to figure out a type for ($), not just for x and y)
18:38:54 <int-e> A . B . C $ D is also equivalent to A (B (C D)) except for those caveats.
18:39:42 <mauke> % :info ($)
18:39:42 <yahb2> ($) :: (a -> b) -> a -> b -- Defined in ‘GHC.Base’ ; infixr 0 $
18:39:54 <int-e> (and other mixes of $ and . with $ in the end, like, A $ B . C $ D)
18:40:06 <mauke> infixr means it's right associative, so a $ b $ c parses as a $ (b $ c)
18:40:24 <mauke> @src ($)
18:40:24 <lambdabot> f $ x = f x
18:40:32 cheater_ joins (~Username@user/cheater)
18:40:35 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
18:40:49 <int-e> > let ($) = (+) in 2 $ 3 -- and of course you /can/ redefine ($) and then all bets are off
18:40:50 <lambdabot> 5
18:41:21 <mauke> that's counterfeit $ and it's illegal
18:41:31 <int-e> not in my country?
18:41:39 <int-e> (it may be, I have no clue)
18:43:00 <int-e> thyriaen: I think the important point here is that $ is *not* special syntax; it's just one of many infix operators that comes with Haskell's standard libraries.
18:43:18 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
18:43:19 cheater_ is now known as cheater
18:43:27 <int-e> > otherwise
18:43:28 <lambdabot> True
18:43:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:43:46 <int-e> (that's another one that might be mistaken for special syntax and isn't)
18:43:50 <mauke> > sqrt $ 2
18:43:51 <lambdabot> 1.4142135623730951
18:43:54 <mauke> > sqrt `id` 2
18:43:56 <lambdabot> 1.4142135623730951
18:44:23 <d34df00d> Isn't (the standard) $ also special-cased in the type checker to alleviate some type inference issues?
18:44:34 zer0bitz joins (~zer0bitz@user/zer0bitz)
18:44:55 <d34df00d> I remember hitting some bugs where $ was fine for IIRC impredicatively polymorphic things, and my similarly looking custom definitions weren't.
18:45:02 <mauke> yeah, but we keep that a secret
18:45:04 <d34df00d> s/bugs/edge cases/, perhaps
18:46:19 <dolio> Is it still? That quicklook stuff was years ago at this point.
18:46:32 <int-e> Let's discuss this when somebody asks why `runST $ do ...` works but not if you replace $ by another infix operator with the same definition :)
18:46:44 <int-e> dolio: I'm not actually certain
18:46:50 <int-e> and too lazy to check
18:47:00 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
18:47:09 × anselmschueler quits (~anselmsch@user/schuelermine) (Ping timeout: 246 seconds)
18:47:10 <geekosaur> the magic currently is that $ secretly turns on ImpredicativeTypes for that expression
18:47:40 <geekosaur> it used to have a different kind of magic (it hacked the parse tree to remove the $) but QuickLook made that unnecessary
18:48:25 <mauke> :t [id, ($), ask, asks, fmap fix pure, pure <*> const]
18:48:26 <lambdabot> [(a -> b) -> a -> b]
18:48:31 <mauke> I have many identities
18:48:46 <d34df00d> > fmap fix pure
18:48:48 <lambdabot> error:
18:48:48 <lambdabot> • No instance for (Typeable b0)
18:48:48 <lambdabot> arising from a use of ‘show_M80332521831079503577’
18:48:50 <d34df00d> That requires some processing.
18:49:06 <int-e> > fmap fix pure id 42
18:49:07 <lambdabot> 42
18:49:18 <int-e> > fmap fix pure 42
18:49:20 <lambdabot> 42
18:49:26 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
18:49:45 <int-e> (not sure which one from mauke's list forces a function type into the argument)
18:49:54 <int-e> asks?
18:50:01 <mauke> ($) and probably the asks
18:50:12 <mauke> also SKK
18:50:25 <mauke> no, strike that
18:50:25 <int-e> :t ap const const
18:50:26 <lambdabot> b -> b
18:52:05 cheater_ joins (~Username@user/cheater)
18:52:14 <int-e> Ah, hmpf. I didn't recognize `pure` as `const`.
18:53:00 × danza quits (~francesco@151.46.216.118) (Ping timeout: 245 seconds)
18:53:46 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 245 seconds)
18:54:42 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
18:54:52 cheater_ is now known as cheater
18:55:13 <mauke> always keep the naked Reader in mind
18:55:56 <geekosaur> is that its official name? I usually call it "primitive Reader"
18:56:57 × CiaoSen quits (~Jura@2a05:5800:2a1:7d00:664b:f0ff:fe37:9ef) (Ping timeout: 260 seconds)
18:58:27 <Rembane> Both sounds like a Discovery Channel series
18:58:50 × toqueteos quits (~toqueteos@228.red-81-35-152.dynamicip.rima-tde.net) (Quit: Client closed)
19:04:20 <mauke> no, that's just what I call it
19:04:58 simikando1 joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
19:05:14 <geekosaur> I suppose "function Applicative" is the "right" name
19:06:02 <EvanR> dependency injection applicative
19:07:27 × simikando1 quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Client Quit)
19:08:34 <mauke> functiunctor
19:09:50 <geekosaur> functionator
19:10:03 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
19:11:26 <mauke> "the IO MonadIO"
19:12:18 <monochrom> "Don't ask to ask, just apply" >:)
19:14:46 <int-e> > ask ask 42
19:14:47 <lambdabot> 42
19:16:12 <mauke> don't ask to ask Ask
19:23:19 danza joins (~francesco@151.46.216.118)
19:24:25 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Ping timeout: 240 seconds)
19:31:46 grnman_ joins (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net)
19:33:55 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
19:34:34 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:35:44 × gurkenglas quits (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de) (Ping timeout: 250 seconds)
19:38:12 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:44:10 × danza quits (~francesco@151.46.216.118) (Ping timeout: 256 seconds)
19:46:11 ft joins (~ft@p3e9bcd02.dip0.t-ipconnect.de)
19:46:25 Pickchea joins (~private@user/pickchea)
19:47:16 danza joins (~francesco@151.46.216.118)
19:49:27 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
20:02:00 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:07:49 ars23 joins (~ars23@86.120.205.92)
20:08:01 × ars23 quits (~ars23@86.120.205.92) (Changing host)
20:08:01 ars23 joins (~ars23@user/ars23)
20:11:55 sm joins (~sm@plaintextaccounting/sm)
20:14:11 jero98772 joins (~jero98772@2800:484:1d84:300::3)
20:14:53 danza_ joins (~francesco@151.46.137.106)
20:17:10 × danza quits (~francesco@151.46.216.118) (Ping timeout: 245 seconds)
20:17:59 × ulysses4ever quits (~artem@38.42.227.237) (Ping timeout: 260 seconds)
20:20:22 × jero98772 quits (~jero98772@2800:484:1d84:300::3) (Ping timeout: 260 seconds)
20:21:10 × nyr quits (~nyr@user/nyr) (Ping timeout: 246 seconds)
20:24:12 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:71bf:cb71:be4e:b077) (Remote host closed the connection)
20:27:55 Square joins (~Square@user/square)
20:28:58 simikando joins (~simikando@adsl-dyn-104.95-102-88.t-com.sk)
20:29:28 toqueteos joins (~toqueteos@228.red-81-35-152.dynamicip.rima-tde.net)
20:31:39 <toqueteos> Greetings, a bit of a moonshot question but how feasible is to compile something like pandoc as wasm module nowadays? I tried doing it myself but failed miserably (if you are wondering why I want to embed it on a non-Haskell codebase)
20:32:14 × Nosrep quits (~Nosrep@user/nosrep) (Read error: Connection reset by peer)
20:32:24 Nosrep joins (~Nosrep@user/nosrep)
20:33:07 × ars23 quits (~ars23@user/ars23) (Quit: Leaving)
20:33:44 <geekosaur> not very feasible at all; wasm is still a tech preview, and is known incomplete
20:34:59 <toqueteos> Ok so failure was pretty much expected, thanks for confirming it!
20:35:14 anselmschueler joins (~anselmsch@user/schuelermine)
20:40:27 × simikando quits (~simikando@adsl-dyn-104.95-102-88.t-com.sk) (Quit: Leaving)
20:41:30 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
20:46:20 × mima quits (~mmh@net-93-67-213-210.cust.vodafonedsl.it) (Ping timeout: 245 seconds)
20:48:04 <geekosaur> if you want to track progress on wasm there's a roughly weekly update on discourse.haskell.org
20:49:15 <meejah> is it? I've certainly seen some non-trivial things make it to wasm (but haven't done that myself)
20:49:20 libertyprime joins (~libertypr@203.96.203.44)
20:49:31 <meejah> (oh, sorry you meant "within haskell" ... nevermind ;)
20:50:35 <geekosaur> right, this is the ghc wasm backend
20:51:23 nick4 joins (~nick@2600:8807:9084:7800:4d1:6f81:aa5b:f64)
20:53:22 × danza_ quits (~francesco@151.46.137.106) (Ping timeout: 246 seconds)
20:55:15 × mixfix41 quits (~sdeny9ee@user/mixfix41) (Ping timeout: 246 seconds)
20:55:36 × nick4 quits (~nick@2600:8807:9084:7800:4d1:6f81:aa5b:f64) (Ping timeout: 246 seconds)
20:56:21 justsomeguy joins (~justsomeg@user/justsomeguy)
20:57:11 zeenk joins (~zeenk@2a02:2f04:a300:2a00::7fe)
21:00:07 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:71bf:cb71:be4e:b077)
21:01:18 danza_ joins (~francesco@151.46.137.106)
21:01:20 × ubert quits (~Thunderbi@77.119.201.162.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
21:03:04 gurkenglas joins (~gurkengla@46.114.92.142)
21:04:24 mima joins (~mmh@net-93-67-213-210.cust.vodafonedsl.it)
21:05:30 × anselmschueler quits (~anselmsch@user/schuelermine) (Ping timeout: 245 seconds)
21:09:15 × libertyprime quits (~libertypr@203.96.203.44) (Ping timeout: 246 seconds)
21:09:38 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
21:10:10 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 246 seconds)
21:10:15 jpds joins (~jpds@gateway/tor-sasl/jpds)
21:12:27 sm joins (~sm@plaintextaccounting/sm)
21:14:37 × mima quits (~mmh@net-93-67-213-210.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
21:18:27 cfricke joins (~cfricke@user/cfricke)
21:19:59 AlexNoo_ joins (~AlexNoo@178.34.161.177)
21:20:05 × dtman34 quits (~dtman34@2601:447:d000:93c9:7bdd:68ce:a7a:9e71) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
21:20:26 dtman34 joins (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net)
21:21:26 × AlexNoo quits (~AlexNoo@178.34.161.177) (Read error: Connection reset by peer)
21:31:32 × danza_ quits (~francesco@151.46.137.106) (Ping timeout: 260 seconds)
21:32:17 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
21:39:01 × erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
21:39:51 erisco joins (~erisco@d24-141-66-165.home.cgocable.net)
21:42:51 × acidjnk quits (~acidjnk@p200300d6e7072f35188440d828d901dc.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
21:48:43 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
21:49:12 sm joins (~sm@plaintextaccounting/sm)
21:52:21 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
21:52:55 × gurkenglas quits (~gurkengla@46.114.92.142) (Ping timeout: 240 seconds)
21:54:13 azimut joins (~azimut@gateway/tor-sasl/azimut)
21:54:19 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:57:31 jinsun joins (~jinsun@user/jinsun)
21:58:14 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:58:49 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
22:02:15 × fendor quits (~fendor@2a02:8388:1640:be00:b586:6c06:a58:19a3) (Remote host closed the connection)
22:03:32 × phma quits (phma@2001:5b0:211c:e0c8:1a23:3fa2:7aa1:c25f) (Read error: Connection reset by peer)
22:03:56 phma joins (~phma@host-67-44-208-42.hnremote.net)
22:06:10 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
22:08:27 × thyriaen quits (~thyriaen@2a01:aea0:dd4:6b33:6245:cbff:fe9f:48b1) (Quit: Leaving)
22:08:30 gurkenglas joins (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de)
22:09:08 <yin> > iterate pred (0 :: Int) !! 2^64+1
22:09:10 <lambdabot> 1
22:09:18 <yin> ohh this is super confusing
22:09:23 <yin> > iterate pred (0 :: Int) !! (2^64+1)
22:09:25 <lambdabot> -1
22:10:04 <c_wraith> if either of those is terminating, it's not the way you think.
22:10:37 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 260 seconds)
22:10:43 <c_wraith> I assure you lambdabot is not doing 2^64 iterations of anything.
22:11:11 <c_wraith> Oh. right.
22:11:17 <c_wraith> :t (!!)
22:11:18 <lambdabot> [a] -> Int -> a
22:11:28 <c_wraith> > (2^64 + 1) :: Int
22:11:29 <lambdabot> 1
22:11:43 <yin> yes, it took me a while
22:11:55 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
22:14:09 × michalz quits (~michalz@185.246.207.200) (Remote host closed the connection)
22:15:01 sm joins (~sm@plaintextaccounting/sm)
22:15:25 <monochrom> Oh haha
22:16:37 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
22:16:42 × son0p quits (~ff@181.32.134.99) (Remote host closed the connection)
22:17:08 <Square> What does tilde mean in a "let ~x = ..." ?
22:18:16 <dolio> It means that the pattern is irrefutable, but normally that would do nothing in that specific example.
22:18:21 <yin> c_wraith: monochrom: (!!) has fixity 9 , (^) has 8 and (+) has 6, so the first is (iterate pred (0 :: Int) !! 2) ^ 64 + 1
22:19:15 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
22:19:48 <monochrom> "let ~(x,y) = foo" is lazier than "case foo of (x,y)"
22:20:21 <dolio> Irrefutable patterns always match, but if the scrutinee does not match the subpattern (x in this case), variables in the subpattern are bound to bottoms.
22:20:26 <Square> oh.. in the code I read its actuallt "let ~((a, f), w) = runWriter act"
22:20:36 <Square> actually*
22:20:38 <yin> monochrom: i was under the impression that let bindings were irrefutable?
22:21:05 <monochrom> Oh heh, yeah that ~ example is redundant.
22:21:34 <dolio> Yeah, both let bindings and variables are irrefutable normally.
22:21:48 <Square> thanks
22:21:57 <c_wraith> Square: that ~ seems to be redundant too, unless the module has -XStrict or something
22:22:09 <Square> ok
22:22:21 <monochrom> You start to have fun with "let (~(Just z), _)" or "case foo of ~(~(Just z), _)"
22:22:37 × grnman_ quits (~michaelsc@c-66-176-3-51.hsd1.fl.comcast.net) (Ping timeout: 246 seconds)
22:22:44 <probie> > (\(x,y) -> 1) undefined
22:22:45 <lambdabot> *Exception: Prelude.undefined
22:22:49 <probie> > (\ ~(x,y) -> 1) undefined
22:22:50 <lambdabot> 1
22:23:02 <dolio> Yeah, you can come up with examples where it matters.
22:23:04 <yin> monochrom: if by fun you mean mental problems
22:24:28 <dolio> > let (Just _, x) = (Nothing, 5) ; (~(Just _), y) = (Nothing, 6) in (y,x)
22:24:29 <lambdabot> (6,*Exception: <interactive>:3:5-30: Non-exhaustive patterns in (Just _, x)
22:25:13 <yin> close
22:25:23 <yin> > (~(Just _), y) = (Nothing, 6) in (y,x)
22:25:24 <lambdabot> <hint>:1:2: error: Pattern syntax in expression context: ~(Just _)
22:25:24 <lambdabot> <hint>:1:16: error: parse error on input ‘=’
22:25:35 <yin> > let (~(Just _), y) = (Nothing, 6) in (y,x)
22:25:37 <lambdabot> (6,x)
22:25:39 <yin> there we go
22:26:42 jmdaemon joins (~jmdaemon@user/jmdaemon)
22:27:09 <monochrom> There is a long chain of rules from the Haskell Report that concludes that if you evaluate that x, then the whole pattern (Just _, x) is checked.
22:28:42 × gurkenglas quits (~gurkengla@dynamic-046-114-092-142.46.114.pool.telefonica.de) (Ping timeout: 260 seconds)
22:29:22 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
22:29:57 <yin> something something whnf?
22:29:58 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds)
22:31:06 <monochrom> The principle was that "~" is all-or-nothing: with "~pat", either pat is not checked at all or all of pat is checked (unless you add inner ~'s to block).
22:32:54 <monochrom> It is orthogonal to whnf. With nested patterns, whnf almost explains nothing.
22:33:12 <monochrom> seq is when whnf explains something.
22:34:39 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 246 seconds)
22:35:37 Sgeo joins (~Sgeo@user/sgeo)
22:35:48 × gatekempt quits (~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:37:29 <probie> I've seen it used from time to time when a function returns a tuple, but also needs the result during the computation
22:38:51 wroathe joins (~wroathe@user/wroathe)
22:43:18 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
23:00:48 <geekosaur> @src partition
23:00:48 <lambdabot> partition p xs = foldr (select p) ([],[]) xs
23:00:48 <lambdabot> where select p x ~(ts,fs) | p x = (x:ts,fs)
23:00:48 <lambdabot> | otherwise = (ts, x:fs)
23:02:52 × toqueteos quits (~toqueteos@228.red-81-35-152.dynamicip.rima-tde.net) (Quit: Client closed)
23:10:27 mauke_ joins (~mauke@user/mauke)
23:12:04 justsomeguy joins (~justsomeg@user/justsomeguy)
23:12:08 × mauke quits (~mauke@user/mauke) (Ping timeout: 244 seconds)
23:12:08 mauke_ is now known as mauke
23:20:16 notzmv joins (~zmv@user/notzmv)
23:24:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
23:31:13 × zeenk quits (~zeenk@2a02:2f04:a300:2a00::7fe) (Quit: Konversation terminated!)
23:34:08 cptaffe joins (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net)
23:36:45 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 245 seconds)
23:38:33 pavonia joins (~user@user/siracusa)
23:40:28 × cptaffe quits (~cptaffe@99-47-99-155.lightspeed.ltrkar.sbcglobal.net) (Ping timeout: 256 seconds)
23:43:02 × haritz quits (~hrtz@user/haritz) (Ping timeout: 246 seconds)
23:47:02 × jbalint quits (~jbalint@2600:6c44:117f:e98a:816a:9488:fb1:7b7) (Ping timeout: 245 seconds)
23:47:52 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:49:58 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
23:49:58 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
23:49:58 wroathe joins (~wroathe@user/wroathe)
23:50:05 × phma quits (~phma@host-67-44-208-42.hnremote.net) (Read error: Connection reset by peer)
23:50:17 haritz joins (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk)
23:50:17 × haritz quits (~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host)
23:50:17 haritz joins (~hrtz@user/haritz)
23:50:29 phma joins (phma@2001:5b0:211c:e0c8:3513:b4f1:f37e:21ab)
23:50:52 ulysses4ever joins (~artem@38.42.227.237)
23:51:32 × tv quits (~tv@user/tv) (Ping timeout: 260 seconds)
23:59:55 × niko quits (niko@libera/staff/niko) (Ping timeout: 600 seconds)

All times are in UTC on 2023-08-09.