2022/09/19

2022-09-19 00:00:53 +0200edrx(~Eduardo@2804:18:6020:97ea:4484:f432:54e5:8220)
2022-09-19 00:01:29 +0200 <edrx> hi all! I am an emacs old-timer and a haskell newbie...
2022-09-19 00:01:34 +0200 <sclv> fhello!
2022-09-19 00:02:25 +0200 <Hecate> hiya
2022-09-19 00:02:26 +0200 <edrx> is there an emacs package that lets me navigate the libraries with M-. for "go to the definition of this symbol" and M-, for "go back"?
2022-09-19 00:02:29 +0200 <edrx> hi! =)
2022-09-19 00:02:58 +0200 <c_wraith> Hmm. probably, but there's a problem.. by default, the source of libraries isn't installed anywhere
2022-09-19 00:03:45 +0200 <edrx> here the sources for Process.System - for example - is in ~/bigsrc/ghc-8.10.3/libraries/process/System/
2022-09-19 00:05:04 +0200 <c_wraith> what is bigsrc?
2022-09-19 00:05:06 +0200 <edrx> nevermind, let me ask my other question too... I am trying to port this to Haskell: http://angg.twu.net/eev-maxima.html#luatree
2022-09-19 00:05:48 +0200 <ski> EvanR : note that what is initialized depend on `cur_sel' .. and `cur_sel' is exactly what is changed, as i jump out and in
2022-09-19 00:05:49 +0200 <Hecate> c_wraith: technically they are in the FS at a deterministic location… just in a tarball :p
2022-09-19 00:05:50 +0200 <edrx> c_wraith: I put the sources of things that are very big, like emacs, ghc, and agda, in ~/bigsrc/, and the smaller things in ~/usrc/
2022-09-19 00:06:08 +0200 <c_wraith> Hecate: and if you never clean up the cabal store
2022-09-19 00:06:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 00:07:08 +0200 <Hecate> c_wraith: :D
2022-09-19 00:07:11 +0200 <sclv> edrx: you can use haskell-hoogle to lookup the function name in hoogle, which often suffices
2022-09-19 00:07:18 +0200 <ski> EvanR : effectively, i have `sel_count' number of `for' loops nested inside each other (with a call to `act' innermost), each one initializing, checking, and incrementing `opt_of[cur_sel]' for its particular `cur_sel' (one `for' for each value of `cur_sel')
2022-09-19 00:07:41 +0200 <edrx> my first idea was to call my script in Lua - that produces the 2D representations of trees - using the Process thing, but that's hard
2022-09-19 00:07:47 +0200 <edrx> sclv: thanks! looking
2022-09-19 00:07:58 +0200 <sclv> edrx: for your own code you can use a haskell etags generator (there are many as well) and then traditional emacs tags functions
2022-09-19 00:08:13 +0200 <sclv> or generate tags for other libs you've unpacked just to have around...
2022-09-19 00:09:32 +0200 <edrx> sclv: can you recommend me one of the etags generators?
2022-09-19 00:09:33 +0200 <ski> @where hoogle
2022-09-19 00:09:34 +0200 <lambdabot> https://hoogle.haskell.org
2022-09-19 00:09:35 +0200 <ski> @where hayoo
2022-09-19 00:09:35 +0200 <lambdabot> http://hayoo.fh-wedel.de/ -- See also Hoogle: http://haskell.org/hoogle http://fpcomplete.com/hoogle
2022-09-19 00:09:46 +0200 <edrx> hi ski! thanks!
2022-09-19 00:09:51 +0200 <ski> @hoogle mapAccumL
2022-09-19 00:09:52 +0200 <lambdabot> Data.List mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2022-09-19 00:09:52 +0200 <lambdabot> Data.Traversable mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2022-09-19 00:09:52 +0200 <lambdabot> GHC.OldList mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
2022-09-19 00:10:05 +0200 <ski> @hoogle (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:06 +0200 <lambdabot> Prelude filter :: (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:06 +0200 <lambdabot> Prelude takeWhile :: (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:06 +0200 <lambdabot> Prelude dropWhile :: (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:10 +0200 <ski> @hoogle+
2022-09-19 00:10:11 +0200 <lambdabot> Data.List takeWhile :: (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:11 +0200 <lambdabot> Data.List dropWhile :: (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:11 +0200 <lambdabot> Data.List dropWhileEnd :: (a -> Bool) -> [a] -> [a]
2022-09-19 00:10:28 +0200 <ski> heya edrx :)
2022-09-19 00:10:50 +0200 <edrx> =)
2022-09-19 00:11:06 +0200 <sclv> https://hackage.haskell.org/package/hs-tags and https://hackage.haskell.org/package/hasktags are the two common tags generators iirc
2022-09-19 00:11:22 +0200 <EvanR> ski, yep my brain just exploded
2022-09-19 00:11:36 +0200skiwhistles innocently
2022-09-19 00:12:19 +0200 <EvanR> I have saved this code for stress testing lol
2022-09-19 00:12:21 +0200 <ski> EvanR : it's not that different from `replicateM_' for the list monad
2022-09-19 00:13:12 +0200 <edrx> I will have to go offline soon, so let me ask some basic questions to work on them offlineishly...
2022-09-19 00:13:29 +0200 <ski> EvanR : if you want to, i can give you the whole file (with call to `app_ordered_selections')
2022-09-19 00:14:43 +0200 <EvanR> sure
2022-09-19 00:15:54 +0200tdsdp^(~tdsdp@173-160-76-137-atlanta.hfc.comcastbusiness.net)
2022-09-19 00:15:54 +0200 <ski> (oh and `app' was named after val app : ('a -> unit) -> 'a list -> unit in SML, which is basically `mapM_')
2022-09-19 00:16:26 +0200 <EvanR> at least the motivation makes more sense talking about list monads
2022-09-19 00:17:26 +0200shapr(~user@68.54.166.125)
2022-09-19 00:18:13 +0200hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-09-19 00:20:31 +0200 <edrx> I found some old notes on cabal here, from when I used it to install agda without understanding it... I'm on Debian, does this look right?
2022-09-19 00:20:40 +0200 <edrx> sudo apt-get install cabal; cabal update
2022-09-19 00:20:52 +0200 <edrx> oops
2022-09-19 00:20:59 +0200 <edrx> sudo apt-get install cabal-install; cabal update
2022-09-19 00:21:02 +0200 <sclv> the current way is install ghcup, then use that to install ghc and cabal binaries both
2022-09-19 00:21:23 +0200 <sclv> https://www.haskell.org/ghcup/
2022-09-19 00:21:35 +0200 <sclv> the cabal you get from apt-get may be somewhat old
2022-09-19 00:21:47 +0200 <edrx> thanks!
2022-09-19 00:21:49 +0200 <sclv> that said, apt-get should still work, just not give you the most up to dat
2022-09-19 00:22:41 +0200 <ski> EvanR, PMed you the link
2022-09-19 00:23:04 +0200 <edrx> going offline now! all hints saved! thanks, cya later =)
2022-09-19 00:25:51 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-19 00:27:56 +0200edrx(~Eduardo@2804:18:6020:97ea:4484:f432:54e5:8220) (Ping timeout: 260 seconds)
2022-09-19 00:29:27 +0200fjMSX(~hypni2p@2.92.213.55)
2022-09-19 00:38:56 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 00:43:21 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-19 00:43:36 +0200 <EvanR> got it
2022-09-19 00:47:59 +0200ystael(~ystael@user/ystael) (Ping timeout: 244 seconds)
2022-09-19 00:50:29 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-09-19 00:57:16 +0200ystael(~ystael@user/ystael)
2022-09-19 01:00:09 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 01:01:57 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-09-19 01:05:33 +0200forell(~forell@user/forell) (Ping timeout: 244 seconds)
2022-09-19 01:11:11 +0200perdent(~perdent@125.7.37.86)
2022-09-19 01:12:04 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2022-09-19 01:15:38 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-09-19 01:17:15 +0200forell(~forell@user/forell)
2022-09-19 01:17:49 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-19 01:20:05 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 01:21:03 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 244 seconds)
2022-09-19 01:23:17 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-09-19 01:25:01 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 268 seconds)
2022-09-19 01:31:06 +0200hochata(~user@user/hochata)
2022-09-19 01:35:45 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi) (Quit: Leaving.)
2022-09-19 01:37:35 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 01:39:39 +0200EvanR_(~EvanR@user/evanr)
2022-09-19 01:39:54 +0200EvanR_(~EvanR@user/evanr) (Remote host closed the connection)
2022-09-19 01:42:23 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 252 seconds)
2022-09-19 01:43:05 +0200degraafk(sid71464@id-71464.lymington.irccloud.com) (Ping timeout: 255 seconds)
2022-09-19 01:46:21 +0200degraafk(sid71464@id-71464.lymington.irccloud.com)
2022-09-19 01:51:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-19 01:54:33 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 02:00:04 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-19 02:06:53 +0200Axman6(~Axman6@user/axman6)
2022-09-19 02:08:54 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 258 seconds)
2022-09-19 02:11:36 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-09-19 02:13:07 +0200johnw(~johnw@2600:1700:cf00:db0:f056:f097:9c2d:4e24) (Quit: ZNC - http://znc.in)
2022-09-19 02:14:10 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 02:16:08 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 02:17:54 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-09-19 02:18:38 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-09-19 02:26:24 +0200gay9(~quassel@94-168-123-190.static.v4.ziggozakelijk.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-19 02:27:36 +0200janus(janus@anubis.0x90.dk)
2022-09-19 02:27:51 +0200 <janus> how do i declare an ffi function that doesn't take any arguments?
2022-09-19 02:28:06 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-19 02:28:54 +0200 <EvanR> you could give it the type IO () or IO A if it returns something
2022-09-19 02:29:26 +0200 <EvanR> where A is the return type
2022-09-19 02:30:00 +0200 <EvanR> () -> IO () is also valid but possibly pointless
2022-09-19 02:31:43 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 02:32:05 +0200gay9(~quassel@94-168-123-190.static.v4.ziggozakelijk.nl)
2022-09-19 02:32:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-09-19 02:36:11 +0200 <hpc> alternatively, it is extra pointy ;)
2022-09-19 02:37:34 +0200 <janus> if i used "IO CLong" which part of the FFI declaration would state that it is a function? i'd think it would be just a long to the FFI then
2022-09-19 02:37:56 +0200 <janus> just because it says "ccall", it must be a function?
2022-09-19 02:43:48 +0200 <EvanR> the type IO Whatever means it's a function
2022-09-19 02:43:57 +0200 <EvanR> the type IO Whatever means it's a (foreign) function
2022-09-19 02:44:10 +0200 <EvanR> oh, this isn't discord
2022-09-19 02:44:38 +0200 <EvanR> in C, it couldn't be anything else
2022-09-19 02:50:16 +0200 <janus> but surely a symbol in C isn't necessarily a function?
2022-09-19 02:50:58 +0200 <monochrom> "IO" already states that it's a C "function".
2022-09-19 02:51:23 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 268 seconds)
2022-09-19 02:53:06 +0200 <hpc> in C, only functions can perform IO
2022-09-19 02:54:18 +0200 <monochrom> https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1620008.5.1
2022-09-19 02:54:24 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Quit: Lost terminal)
2022-09-19 02:55:12 +0200 <monochrom> So actually "ccall" and absence of "&" together say that it's a C "function".
2022-09-19 02:56:10 +0200 <monochrom> Becasue even "foreign import ccall foo :: CInt" is "int foo(void)". This one assumes that foo is pure.
2022-09-19 02:57:50 +0200 <EvanR> cool, a pure function that takes no arguments is just a constant
2022-09-19 02:58:25 +0200 <janus> oh, does that mean that is no difference between 'unsafePerformIO ioFun' and 'funNotInIO'?
2022-09-19 02:59:20 +0200 <monochrom> Yes.
2022-09-19 02:59:24 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.6)
2022-09-19 03:01:14 +0200 <EvanR> :thonk: if ioFun :: IO A, and isn't "pure", then there might be a difference depending on how the uPIO expression is used?
2022-09-19 03:01:58 +0200 <janus> i'm trying to fix up ghc-0.29 to compile with nhc98, and they use a pre-haskell98 ffi mechanism using a '_call_' keyword
2022-09-19 03:02:25 +0200 <janus> s/_call_/_ccall_/
2022-09-19 03:02:49 +0200 <monochrom> EvanR, I believe that the question means that if my foo example turns out to be impure, then lying that it is pure gets the same illness as using unsafePerformIO.
2022-09-19 03:02:54 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2022-09-19 03:03:06 +0200 <EvanR> yeah makes sense in context of foo
2022-09-19 03:03:56 +0200 <monochrom> But yeah now the result depends on how the impure thing is used and funny things done by code optimizations.
2022-09-19 03:04:46 +0200 <monochrom> _ccall_ is likely a precursor of ccall.
2022-09-19 03:05:14 +0200 <janus> nhc98 supports haskell98 all right, so i converting things to standard ffi
2022-09-19 03:05:41 +0200 <janus> but this is for the NameSupply, and genSymZh is probably impure
2022-09-19 03:06:01 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-09-19 03:06:22 +0200 <EvanR> when in doubt, FFI your stuff as IO
2022-09-19 03:06:27 +0200 <janus> but they use it to construct initialNameSupply where "data NameSupply Name NameSupply NameSupply"
2022-09-19 03:06:29 +0200 <EvanR> impure until proven pure
2022-09-19 03:06:47 +0200 <janus> problem is that they use unsafePerformIO or some interleaving variant of it
2022-09-19 03:06:54 +0200 <EvanR> welp
2022-09-19 03:07:01 +0200 <janus> so maybe they are relying on it getting repeatedly evaluated somehow
2022-09-19 03:07:08 +0200 <EvanR> o_O
2022-09-19 03:07:23 +0200 <EvanR> sounds insane
2022-09-19 03:08:39 +0200 <janus> here is the file i am currently trying to port: https://paste.sr.ht/~janus/4429f882ec90027f116a576540beed5d01d0d21c
2022-09-19 03:09:44 +0200 <janus> so i thought i'd adapt the GLASGOW_HASKELL variant, since i have h98 ccall but i don't have Yale's Symbol or __gensym from HBC
2022-09-19 03:10:24 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-09-19 03:10:25 +0200 <janus> don't have LMLgensym either? (btw does anyone know where i can get LML?)
2022-09-19 03:11:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-09-19 03:12:04 +0200 <EvanR> LML, that's going back to the beginning isn't it
2022-09-19 03:12:55 +0200 <EvanR> is old software being impossible to build proof that time travel isn't possible
2022-09-19 03:13:18 +0200 <janus> i don't think LML is available anywhere on the web? nhc98 is pretty good imho, and was maintained for a long time
2022-09-19 03:13:19 +0200vglfr(~vglfr@145.224.94.16) (Ping timeout: 252 seconds)
2022-09-19 03:14:07 +0200 <janus> and it was almost bootsrapped
2022-09-19 03:15:42 +0200 <janus> i suppose i could try and keep it impure, since the YALE_HASKELL path suggests that they tried that
2022-09-19 03:16:31 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-09-19 03:18:24 +0200 <EvanR> hmm https://github.com/GunterMueller/Rio
2022-09-19 03:19:14 +0200 <janus> oooh that sounds like it is exactly meant for this use case
2022-09-19 03:23:04 +0200frost(~frost@user/frost)
2022-09-19 03:28:07 +0200 <janus> surely i can't unconditionally recurse on myself in haskell98's IO?
2022-09-19 03:28:43 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-09-19 03:29:46 +0200 <janus> seems like the monadic equivalent of "initialNameSupply = NameSupply <$> genSymZh <*> initialNameSupply <*> initialNameSupply" can't work
2022-09-19 03:29:47 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds)
2022-09-19 03:31:14 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-09-19 03:32:05 +0200nunggu(~q@user/nunggu) (Ping timeout: 258 seconds)
2022-09-19 03:32:37 +0200 <EvanR> could be an especially lazy monad
2022-09-19 03:33:06 +0200 <janus> yeah i guess PrimIO could be lazy like that... ah bummer..
2022-09-19 03:33:45 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-09-19 03:34:06 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-09-19 03:34:19 +0200 <janus> but Yale uses the 'IO' name and still has this construction
2022-09-19 03:35:09 +0200 <EvanR> um did <*> exist in ghc-0.29
2022-09-19 03:35:33 +0200 <janus> no, it didn't. that's why i said the 'monadic equivalent'. just used applicative for brevity
2022-09-19 03:36:38 +0200 <janus> as you can see, Monad didn't even exist in GHC, they have monomorphized binders for all monads. oh the calamity
2022-09-19 03:36:54 +0200 <EvanR> it does look like an infinite binary tree of syms generated via unsafeIO evaluation
2022-09-19 03:37:33 +0200 <janus> yeah, not sure how to express this with NHC98... i will have to see how this is used, maybe i can avoid the infinite tree somehow
2022-09-19 03:38:29 +0200 <EvanR> how you learned to stop worrying and love the infinite tree
2022-09-19 03:38:33 +0200 <EvanR> of unsafePerformIO
2022-09-19 03:39:16 +0200jinsun__(~jinsun@user/jinsun)
2022-09-19 03:39:17 +0200jinsunGuest4828
2022-09-19 03:39:17 +0200jinsun__jinsun
2022-09-19 03:42:06 +0200Guest4828(~jinsun@user/jinsun) (Ping timeout: 244 seconds)
2022-09-19 03:43:18 +0200 <janus> SplitUniq mentions how this part of the code is the most performance sensitive
2022-09-19 03:44:03 +0200 <janus> but given that i just need to run this compiler a couple of times, and our machines are so much faster than in the 90's, maybe i could get away with some naive version
2022-09-19 03:46:26 +0200 <janus> a Name is an Int, so it could be NameSupply 0 (NameSupply (-1) ...) (NameSupply 1 ...)
2022-09-19 03:47:42 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-09-19 03:50:59 +0200 <EvanR> what's this, enumerating the plane
2022-09-19 03:51:42 +0200 <janus> yeah, i think Name's just need to be unique, i don't think that there are any other requirements
2022-09-19 03:52:22 +0200 <janus> so i just need to make a binary tree that enumerates the 32-bit integers breadth first
2022-09-19 03:52:24 +0200_xor(~xor@74.215.182.83) (Quit: bbiab)
2022-09-19 03:53:53 +0200 <EvanR> interval bisection
2022-09-19 03:55:17 +0200ddellacosta(~ddellacos@89.45.224.130)
2022-09-19 03:55:48 +0200 <EvanR> [a,c] yields b=(a+c)/2, continue with [a,b] and [b,c] or something
2022-09-19 03:56:08 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-09-19 03:56:09 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-09-19 03:56:09 +0200wroathe(~wroathe@user/wroathe)
2022-09-19 03:56:21 +0200 <janus> thanks that seems like it fits the bill
2022-09-19 03:57:14 +0200 <EvanR> left side + width probably makes more sense instead of overflowing
2022-09-19 03:57:27 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-09-19 04:02:19 +0200 <EvanR> since you can start with clean -2^31 and width/2 = 2^31
2022-09-19 04:02:47 +0200 <EvanR> the first number is zero
2022-09-19 04:03:00 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
2022-09-19 04:03:33 +0200ddellacosta(~ddellacos@89.45.224.130) (Ping timeout: 252 seconds)
2022-09-19 04:05:37 +0200ddellacosta(~ddellacos@86.106.143.161)
2022-09-19 04:13:26 +0200emmanuelux(~emmanuelu@2a01cb0000f39300c038d63b00f83cab.ipv6.abo.wanadoo.fr) (Quit: au revoir)
2022-09-19 04:17:29 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-09-19 04:21:29 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2022-09-19 04:25:26 +0200frost(~frost@user/frost)
2022-09-19 04:26:17 +0200td_(~td@muedsl-82-207-238-056.citykom.de) (Ping timeout: 252 seconds)
2022-09-19 04:28:03 +0200td_(~td@muedsl-82-207-238-061.citykom.de)
2022-09-19 04:28:47 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
2022-09-19 04:32:12 +0200xff0x(~xff0x@2405:6580:b080:900:dd90:9b38:b496:ed23) (Ping timeout: 264 seconds)
2022-09-19 04:35:52 +0200nate1(~nate@98.45.169.16)
2022-09-19 04:36:21 +0200vglfr(~vglfr@145.224.94.16)
2022-09-19 04:39:19 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-09-19 04:39:19 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-09-19 04:39:19 +0200finn_elijaFinnElija
2022-09-19 04:43:04 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 244 seconds)
2022-09-19 04:45:17 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-09-19 04:49:44 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2022-09-19 04:51:47 +0200 <mrianbloom> Is there a standard function with the type :: (MonadTrans t, Monad m) => (m a -> m b -> m c) -> t m a -> t m b -> t m c
2022-09-19 04:54:47 +0200xff0x(~xff0x@2405:6580:b080:900:1f6b:da1d:cffe:2329)
2022-09-19 04:55:22 +0200 <Axman6> Not that I'm aware of - I'm not sure it would be generally possible to write one either. it would have to be specific to each t
2022-09-19 04:55:44 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 04:55:54 +0200 <Axman6> @unmty ExceptT e m a
2022-09-19 04:55:54 +0200 <lambdabot> m (Either e a)
2022-09-19 04:58:37 +0200 <Axman6> l* to be able to write unliftT2 :: (m a -> m b -> m c) -> ExceptT e m a -> ExceptT e m b -> ExceptT e m c, you need to know that the inner m's are actually returning Either, to then run them, see if either returned Left, then if not, call the function on the Right values, and lift that result back into ExceptT. It could be a type class, but I'm not sure how common it is for that to come up in practice
2022-09-19 04:59:44 +0200 <mrianbloom> Axman6: I see, that makes sense. What about a typeclass function for t?
2022-09-19 05:00:06 +0200 <Axman6> I don't understand the question
2022-09-19 05:00:51 +0200 <mrianbloom> A typeclass whose parameter is t
2022-09-19 05:01:02 +0200 <Axman6> you could have class MonadTrans t => MonadApply t where unliftA2 :: (m a -> m b -> m c) -> t m a -> t m b -> t m c, but you would need instances for each t
2022-09-19 05:01:25 +0200ddellacosta(~ddellacos@86.106.143.161) (Ping timeout: 268 seconds)
2022-09-19 05:01:38 +0200 <mrianbloom> Is there a standard typeclass like that?
2022-09-19 05:01:51 +0200 <mrianbloom> I'm just trying no to reinvent the wheel.
2022-09-19 05:02:09 +0200 <mrianbloom> *not
2022-09-19 05:03:27 +0200 <Axman6> Not that I'm aware of
2022-09-19 05:04:00 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-09-19 05:04:10 +0200 <[Leary]> mrianbloom: You can take advantage of the fact that Applicatives compose to write things like this generally, given that your Monad transformer is just the composition of a particular Monad.
2022-09-19 05:04:17 +0200 <Axman6> this was announced last weel, maybe it's in there :) https://hackage.haskell.org/package/monadology
2022-09-19 05:04:34 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-09-19 05:04:37 +0200 <Axman6> week*
2022-09-19 05:04:52 +0200 <mrianbloom> Nice
2022-09-19 05:05:01 +0200 <mrianbloom> I'll check that out.
2022-09-19 05:05:09 +0200 <Axman6> in fact https://hackage.haskell.org/package/monadology-0.1/docs/Control-Monad-Ology-General-Trans-Tunnel.h… looks very relevant
2022-09-19 05:06:13 +0200 <mrianbloom> I'll give this a shot.
2022-09-19 05:07:33 +0200 <[Leary]> % :t liftA2 @(Compose _ _)
2022-09-19 05:07:33 +0200 <yahb2> liftA2 @(Compose _ _) ; :: (Applicative _1, Applicative _2) => ; (a -> b -> c) ; -> Compose _1 _2 a -> Compose _1 _2 b -> Compose _1 _2 c
2022-09-19 05:07:51 +0200 <[Leary]> Hmm, not quite right.
2022-09-19 05:09:35 +0200 <[Leary]> I guess it's just regular `liftA2`, once your `t m a` has been reduced to some `tf (m a)`.
2022-09-19 05:13:34 +0200 <mrianbloom> Is it the case that for both tunnel and hoist, the underlying function must be an endomorph
2022-09-19 05:20:55 +0200dtman34(~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 252 seconds)
2022-09-19 05:26:16 +0200nunggu(~q@user/nunggu)
2022-09-19 05:27:11 +0200jargon(~jargon@184.101.186.15)
2022-09-19 05:37:35 +0200Batzy(~quassel@user/batzy) (Read error: Connection reset by peer)
2022-09-19 05:37:51 +0200Batzy(~quassel@user/batzy)
2022-09-19 05:45:06 +0200nunggu(~q@user/nunggu) (Ping timeout: 258 seconds)
2022-09-19 05:46:12 +0200Batzy(~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-19 05:46:49 +0200Batzy(~quassel@user/batzy)
2022-09-19 05:50:13 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57) (Read error: Connection reset by peer)
2022-09-19 05:51:09 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
2022-09-19 05:53:48 +0200Batzy(~quassel@user/batzy) (Ping timeout: 264 seconds)
2022-09-19 05:54:30 +0200nate1(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-19 05:55:54 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-09-19 05:58:02 +0200rembo10(~rembo10@main.remulis.com)
2022-09-19 06:01:11 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-19 06:06:08 +0200Vajb(~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-09-19 06:06:58 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-09-19 06:06:58 +0200tdsdp^(~tdsdp@173-160-76-137-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-09-19 06:12:11 +0200Vajb(~Vajb@2001:999:504:1841:9e47:1ec7:a52e:1d57)
2022-09-19 06:12:34 +0200wroathe(~wroathe@user/wroathe) (Quit: leaving)
2022-09-19 06:12:34 +0200shriekingnoise(~shrieking@186.137.167.202) (Read error: Connection reset by peer)
2022-09-19 06:15:32 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-19 06:15:46 +0200nate1(~nate@98.45.169.16)
2022-09-19 06:18:14 +0200rembo10(~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
2022-09-19 06:20:19 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-09-19 06:20:22 +0200rembo10(~rembo10@main.remulis.com)
2022-09-19 06:31:50 +0200nate1(~nate@98.45.169.16)
2022-09-19 06:33:49 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-09-19 06:34:12 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-19 06:35:47 +0200shriekingnoise(~shrieking@186.137.167.202) (Read error: Connection reset by peer)
2022-09-19 06:36:18 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-19 06:37:50 +0200shriekingnoise(~shrieking@186.137.167.202) (Client Quit)
2022-09-19 06:40:05 +0200mvk(~mvk@2607:fea8:5ce3:8500::6e80) (Ping timeout: 268 seconds)
2022-09-19 06:41:30 +0200Null_A(~null_a@c-73-93-244-42.hsd1.ca.comcast.net) ()
2022-09-19 06:42:26 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-09-19 06:53:59 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-09-19 06:55:46 +0200nate1(~nate@98.45.169.16)
2022-09-19 07:00:26 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-09-19 07:00:46 +0200Luj(~Luj@2a01:e0a:5f9:9681:b08d:568b:3590:6640) (Quit: Ping timeout (120 seconds))
2022-09-19 07:01:06 +0200Luj(~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb)
2022-09-19 07:05:42 +0200titibandit(~titibandi@xdsl-87-78-162-143.nc.de)
2022-09-19 07:08:49 +0200Maeda(~Maeda@91-161-10-149.subs.proxad.net)
2022-09-19 07:09:32 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-09-19 07:09:51 +0200tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 260 seconds)
2022-09-19 07:10:12 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 258 seconds)
2022-09-19 07:13:38 +0200jinsun__(~jinsun@user/jinsun)
2022-09-19 07:13:38 +0200jinsunGuest7632
2022-09-19 07:13:39 +0200Guest7632(~jinsun@user/jinsun) (Killed (calcium.libera.chat (Nickname regained by services)))
2022-09-19 07:13:39 +0200jinsun__jinsun
2022-09-19 07:16:40 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-09-19 07:16:59 +0200jinsun(~jinsun@user/jinsun)
2022-09-19 07:17:08 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-19 07:27:05 +0200gmg(~user@user/gehmehgeh)
2022-09-19 07:27:47 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
2022-09-19 07:28:03 +0200jinsun__(~jinsun@user/jinsun)
2022-09-19 07:28:04 +0200jinsunGuest7366
2022-09-19 07:28:04 +0200jinsun__jinsun
2022-09-19 07:29:20 +0200jinsun__(~jinsun@user/jinsun)
2022-09-19 07:29:21 +0200jinsunGuest214
2022-09-19 07:29:21 +0200jinsun__jinsun
2022-09-19 07:31:19 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net)
2022-09-19 07:31:31 +0200Guest7366(~jinsun@user/jinsun) (Ping timeout: 244 seconds)
2022-09-19 07:32:32 +0200Guest214(~jinsun@user/jinsun) (Ping timeout: 244 seconds)
2022-09-19 07:44:43 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-09-19 07:45:58 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 07:48:12 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.6)
2022-09-19 07:50:00 +0200analoq(~yashi@user/dies) (Ping timeout: 265 seconds)
2022-09-19 07:51:25 +0200analoq(~yashi@user/dies)
2022-09-19 07:53:08 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 258 seconds)
2022-09-19 07:54:23 +0200gmg(~user@user/gehmehgeh)
2022-09-19 07:56:01 +0200nate1(~nate@98.45.169.16)
2022-09-19 08:00:47 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-09-19 08:16:00 +0200nunggu(~q@user/nunggu)
2022-09-19 08:20:17 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 250 seconds)
2022-09-19 08:27:58 +0200perdent(~perdent@125.7.37.86) (Ping timeout: 252 seconds)
2022-09-19 08:28:24 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 258 seconds)
2022-09-19 08:29:18 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a)
2022-09-19 08:29:33 +0200 <c209e6dc-4d76-47> is there something like networkx for haskell?
2022-09-19 08:29:47 +0200 <Axman6> what is networkx?
2022-09-19 08:30:05 +0200 <c209e6dc-4d76-47> library to work on graphs/networks
2022-09-19 08:30:09 +0200gmg(~user@user/gehmehgeh)
2022-09-19 08:30:23 +0200 <c209e6dc-4d76-47> i am working on spectral graph theory
2022-09-19 08:30:29 +0200 <Axman6> perhaps fgl?
2022-09-19 08:31:04 +0200 <c209e6dc-4d76-47> let me take a look, does it support for linear algebra related stuff - eigenvalues, laplacian, etc?
2022-09-19 08:31:43 +0200 <Axman6> No idea I'm sorry, I've never done much with graphs, a mate of mine is/was the maintainer of fgl and did a lot of his PhD work using it
2022-09-19 08:32:58 +0200 <c209e6dc-4d76-47> no problem, but thanks for helping out!
2022-09-19 08:33:30 +0200 <Axman6> it's worth taking a look around hackage and seeing what turns up
2022-09-19 08:33:46 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 258 seconds)
2022-09-19 08:34:27 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-09-19 08:39:29 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-09-19 08:48:11 +0200zeenk(~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f)
2022-09-19 08:49:53 +0200nate1(~nate@98.45.169.16)
2022-09-19 08:50:37 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:b602:1ca2:8fdc:ffae)
2022-09-19 08:54:46 +0200nate1(~nate@98.45.169.16) (Ping timeout: 265 seconds)
2022-09-19 08:56:23 +0200nunggu(~q@user/nunggu) (Ping timeout: 258 seconds)
2022-09-19 08:58:01 +0200nunggu(~q@user/nunggu)
2022-09-19 08:58:57 +0200oldsk00l(~znc@ec2-18-134-177-246.eu-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
2022-09-19 09:00:59 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-09-19 09:01:21 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f304:45a9:c72c:4fdd)
2022-09-19 09:01:23 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:b602:1ca2:8fdc:ffae) (Ping timeout: 268 seconds)
2022-09-19 09:01:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 09:09:45 +0200coot(~coot@213.134.176.158)
2022-09-19 09:14:58 +0200EvanR_(~EvanR@user/evanr)
2022-09-19 09:15:21 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 244 seconds)
2022-09-19 09:21:48 +0200 <alp> c209e6dc-4d76-47: you can find haskell igraph bindings out there, maybe as close as it gets. but nothing shockingy polished and comprehensive like networkx sadly, should however cover quite a bit of ground.
2022-09-19 09:23:35 +0200hochata(~user@user/hochata) (Ping timeout: 268 seconds)
2022-09-19 09:24:58 +0200dtman34(~dtman34@2601:446:4400:2ad9:49aa:be6d:b3ac:4bab)
2022-09-19 09:27:33 +0200 <siers> ski, I have gotten to the F-algebra portion of "basic category theory for computer scientists" and I'm so excited that I'll be able to follow your F-algebra fueled explanations you sent me from like a month or two ago. :)
2022-09-19 09:30:07 +0200odnes(~odnes@ppp089210198232.access.hol.gr)
2022-09-19 09:31:17 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-19 09:31:53 +0200califax(~califax@user/califx)
2022-09-19 09:34:50 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-09-19 09:34:54 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-09-19 09:34:54 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer)
2022-09-19 09:35:30 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-19 09:35:34 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 09:39:23 +0200toeffel(~toeffel@user/toeffel)
2022-09-19 09:43:54 +0200odnes(~odnes@ppp089210198232.access.hol.gr) (Ping timeout: 268 seconds)
2022-09-19 09:44:58 +0200c209e6dc-4d76-47(~aditya@2601:249:4300:1296:195:dac6:592c:a55a) (Quit: Konversation terminated!)
2022-09-19 09:46:36 +0200odnes(~odnes@ppp089210198232.access.hol.gr)
2022-09-19 09:46:57 +0200titibandit(~titibandi@xdsl-87-78-162-143.nc.de) (Remote host closed the connection)
2022-09-19 09:46:59 +0200johnjaye(~pi@173.209.64.74) (Ping timeout: 265 seconds)
2022-09-19 09:47:06 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-19 09:48:42 +0200johnjaye(~pi@173.209.64.74)
2022-09-19 09:50:13 +0200MajorBiscuit(~MajorBisc@145.94.160.96)
2022-09-19 09:51:25 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-09-19 09:53:08 +0200king_gs(~Thunderbi@2806:103e:29:ac5e:a16e:4ac9:a89b:4d)
2022-09-19 09:53:18 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2022-09-19 09:57:07 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2022-09-19 09:57:10 +0200Pickchea(~private@user/pickchea)
2022-09-19 09:59:41 +0200cheater(~Username@user/cheater) (Quit: (BitchX) A gentleman is one who knows how to play the bagpipes, but chooses not to.)
2022-09-19 10:03:42 +0200 <ski> cheers, siers :)
2022-09-19 10:04:07 +0200shriekingnoise(~shrieking@186.137.167.202)
2022-09-19 10:08:59 +0200cheater(~Username@user/cheater)
2022-09-19 10:12:45 +0200shriekingnoise(~shrieking@186.137.167.202) (Quit: Quit)
2022-09-19 10:14:18 +0200odnes(~odnes@ppp089210198232.access.hol.gr) (Quit: Leaving)
2022-09-19 10:17:13 +0200razetime(~quassel@117.254.35.177)
2022-09-19 10:17:28 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:df30:9337:5d21:828)
2022-09-19 10:17:58 +0200razetime_(~quassel@117.254.35.177)
2022-09-19 10:17:59 +0200razetime_(~quassel@117.254.35.177) (Client Quit)
2022-09-19 10:18:05 +0200razetime(~quassel@117.254.35.177) (Client Quit)
2022-09-19 10:18:28 +0200razetime(~quassel@117.254.35.177)
2022-09-19 10:18:48 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:df30:9337:5d21:828) (Remote host closed the connection)
2022-09-19 10:20:13 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:8fe3:ee0f:6df3:aee0)
2022-09-19 10:29:30 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-09-19 10:30:49 +0200vglfr(~vglfr@145.224.94.16) (Remote host closed the connection)
2022-09-19 10:31:24 +0200vglfr(~vglfr@145.224.94.16)
2022-09-19 10:34:27 +0200toeffel(~toeffel@user/toeffel) (Quit: quit)
2022-09-19 10:36:22 +0200califax(~califax@user/califx)
2022-09-19 10:42:21 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2022-09-19 10:49:20 +0200mestre(~mestre@191.177.181.194) (Ping timeout: 265 seconds)
2022-09-19 10:49:45 +0200ft(~ft@p3e9bc57b.dip0.t-ipconnect.de) (Quit: Lost terminal)
2022-09-19 10:50:04 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-09-19 10:51:03 +0200king_gs(~Thunderbi@2806:103e:29:ac5e:a16e:4ac9:a89b:4d) (Quit: king_gs)
2022-09-19 10:53:55 +0200__monty__(~toonn@user/toonn)
2022-09-19 10:57:12 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-09-19 11:02:36 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-09-19 11:03:21 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-09-19 11:03:26 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:8fe3:ee0f:6df3:aee0) (Remote host closed the connection)
2022-09-19 11:03:44 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:2047:c85a:1d1e:f109)
2022-09-19 11:05:57 +0200nunggu(~q@user/nunggu) (Ping timeout: 258 seconds)
2022-09-19 11:06:09 +0200mestre(~mestre@191.177.181.194)
2022-09-19 11:09:25 +0200nunggu(~q@user/nunggu)
2022-09-19 11:13:14 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:2047:c85a:1d1e:f109) (Remote host closed the connection)
2022-09-19 11:13:33 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:b243:152c:3096:7d25)
2022-09-19 11:18:50 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 244 seconds)
2022-09-19 11:19:21 +0200kuribas(~user@ptr-17d51epqora8ux5p3qo.18120a2.ip6.access.telenet.be)
2022-09-19 11:19:38 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-09-19 11:21:00 +0200zaquest(~notzaques@5.130.79.72)
2022-09-19 11:22:06 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-09-19 11:23:22 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-09-19 11:40:47 +0200jargon(~jargon@184.101.186.15) (Remote host closed the connection)
2022-09-19 11:42:52 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-19 11:44:32 +0200ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
2022-09-19 11:50:36 +0200yvan-sraka(~yvan-srak@2a02:2788:224:71c:b243:152c:3096:7d25) (Remote host closed the connection)
2022-09-19 11:51:14 +0200 <carbolymer> does ghc have two runtimes?
2022-09-19 11:51:49 +0200 <dminuoso> Yes and no. The threaded and non-threaded runtime.
2022-09-19 11:51:52 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 11:52:06 +0200 <carbolymer> ah right
2022-09-19 11:56:20 +0200 <carbolymer> what are the downsides of using threaded rutime?
2022-09-19 11:57:23 +0200 <dminuoso> Ask the opposide
2022-09-19 11:57:31 +0200 <dminuoso> The non-threaded runtime is, officially, not even supported, despite being the default.
2022-09-19 11:57:52 +0200perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.6)
2022-09-19 11:57:56 +0200 <dminuoso> I dont even know why it is the way it is
2022-09-19 11:58:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 11:58:48 +0200 <dminuoso> carbolymer: But, consult https://gitlab.haskell.org/ghc/ghc/-/merge_requests/538 for a list of reasons why it is not yet the default.
2022-09-19 11:59:46 +0200perrierjouet(~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
2022-09-19 12:00:09 +0200 <dminuoso> carbolymer: In reality, using the non-threaded RTS will make quite a few things block or not work.
2022-09-19 12:03:02 +0200 <carbolymer> dminuoso: thanks for that link. That's why I'm asking, I don't see the reason to still keep non-threaded rts around
2022-09-19 12:05:32 +0200 <dminuoso> Well keeping it around is necessary for compatibility with some systems as far as I understand it
2022-09-19 12:08:24 +0200 <ski> @quote optimization.of.infinity
2022-09-19 12:08:24 +0200 <lambdabot> sipa says: it can optimize non-terminating programs into programs that output "<<loop>>" and quit; that's an optimization of infinity% !
2022-09-19 12:11:47 +0200akegalj(~akegalj@93.138.18.60)
2022-09-19 12:12:58 +0200nate1(~nate@98.45.169.16)
2022-09-19 12:13:09 +0200luffy(~chenqisu1@183.217.201.192)
2022-09-19 12:16:23 +0200cfricke(~cfricke@user/cfricke)
2022-09-19 12:17:45 +0200nate1(~nate@98.45.169.16) (Ping timeout: 250 seconds)
2022-09-19 12:21:10 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2022-09-19 12:22:08 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 265 seconds)
2022-09-19 12:25:26 +0200vglfr(~vglfr@145.224.94.16) (Quit: Quit)
2022-09-19 12:25:33 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-09-19 12:25:39 +0200vglfr(~vglfr@145.224.94.16)
2022-09-19 12:25:52 +0200doyougnu(~doyougnu@2001:7c0:921:0:6078:e539:2d7c:fa86)
2022-09-19 12:32:48 +0200doyougnu(~doyougnu@2001:7c0:921:0:6078:e539:2d7c:fa86) (Ping timeout: 268 seconds)
2022-09-19 12:43:26 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 12:46:34 +0200 <maerwald[m]> New stack release
2022-09-19 12:48:19 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
2022-09-19 13:01:23 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 13:04:31 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net)
2022-09-19 13:05:22 +0200toeffel(~toeffel@user/toeffel)
2022-09-19 13:05:41 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 13:08:42 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:b006:2ebc:491e:e6d5)
2022-09-19 13:14:57 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 13:16:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 13:18:58 +0200nunggu(~q@user/nunggu) (Ping timeout: 258 seconds)
2022-09-19 13:19:39 +0200nunggu(~q@user/nunggu)
2022-09-19 13:20:39 +0200toeffelbillcosby
2022-09-19 13:23:54 +0200doyougnu(~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc)
2022-09-19 13:24:23 +0200doyougnu(~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) (Remote host closed the connection)
2022-09-19 13:24:41 +0200doyougnu(~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc)
2022-09-19 13:25:30 +0200billcosby(~toeffel@user/toeffel) (Quit: quit)
2022-09-19 13:29:36 +0200doyougnu(~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) (Ping timeout: 260 seconds)
2022-09-19 13:30:01 +0200WaxCPUAndrew
2022-09-19 13:31:05 +0200NieDzejkob(~quassel@178-37-215-128.adsl.inetia.pl)
2022-09-19 13:34:59 +0200NieDzejkob(~quassel@178-37-215-128.adsl.inetia.pl) (Client Quit)
2022-09-19 13:35:25 +0200Maja_(~quassel@178-37-215-128.adsl.inetia.pl)
2022-09-19 13:36:40 +0200Maja_(~quassel@178-37-215-128.adsl.inetia.pl) (Client Quit)
2022-09-19 13:37:01 +0200Maja_(~quassel@178-37-215-128.adsl.inetia.pl)
2022-09-19 13:40:33 +0200Maja_Maja
2022-09-19 13:43:48 +0200coot(~coot@213.134.176.158) (Ping timeout: 265 seconds)
2022-09-19 13:48:25 +0200frost(~frost@user/frost)
2022-09-19 14:09:44 +0200doyougnu(~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc)
2022-09-19 14:12:23 +0200lyle(~lyle@104.246.145.85)
2022-09-19 14:12:36 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-09-19 14:15:19 +0200nunggu(~q@user/nunggu) (Ping timeout: 258 seconds)
2022-09-19 14:17:00 +0200hgolden(~hgolden@cpe-172-251-233-141.socal.res.rr.com)
2022-09-19 14:22:12 +0200gurkenglas(~gurkengla@p548ac72e.dip0.t-ipconnect.de)
2022-09-19 14:22:42 +0200MajorBiscuit(~MajorBisc@145.94.160.96) (Ping timeout: 260 seconds)
2022-09-19 14:23:29 +0200 <dminuoso> Mmm, I wish optparse-applicative would get rid of this silly monoid interface everywhere, and just accept [Mod T a] instead
2022-09-19 14:23:36 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-09-19 14:23:56 +0200 <dminuoso> Its visually disrupting with no real benefit. Seeing as we can interpret list as the free monoid, it's more than equivalent. :)
2022-09-19 14:23:59 +0200vorpuni(~pvorp@2001:861:3881:c690:ce8:83c1:1cb7:4be9)
2022-09-19 14:25:16 +0200MajorBiscuit(~MajorBisc@145.94.160.96)
2022-09-19 14:26:19 +0200 <dminuoso> Things like `idm` just add more confusion to unsuspecting newcomers as well
2022-09-19 14:35:52 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-09-19 14:36:04 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-19 14:42:39 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds)
2022-09-19 14:46:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 14:50:40 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
2022-09-19 14:53:27 +0200coot(~coot@213.134.176.158)
2022-09-19 14:58:39 +0200toeffel(~toeffel@user/toeffel)
2022-09-19 15:06:17 +0200toeffel(~toeffel@user/toeffel) (Quit: quit)
2022-09-19 15:10:07 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-09-19 15:10:19 +0200razetime(~quassel@117.254.35.177) (Ping timeout: 265 seconds)
2022-09-19 15:12:08 +0200res0nat0r084490(~Fletch@dia.whatbox.ca) (Quit: Ping timeout (120 seconds))
2022-09-19 15:12:23 +0200res0nat0r084490(~Fletch@dia.whatbox.ca)
2022-09-19 15:13:37 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-09-19 15:18:33 +0200luffy(~chenqisu1@183.217.201.192) (Ping timeout: 265 seconds)
2022-09-19 15:21:35 +0200razetime(~quassel@117.254.35.161)
2022-09-19 15:28:59 +0200 <ski> dminuoso : hm, there was some recentish blag which talked about something like that (except, i think, for HTML or XML generation, rather than option parsing)
2022-09-19 15:29:02 +0200PiDelport(uid25146@id-25146.lymington.irccloud.com)
2022-09-19 15:29:22 +0200 <ski> (about whether to use `m' where `Monoid m', or use `[m]')
2022-09-19 15:29:57 +0200 <ski> (.. if i could find it, that would be nice)
2022-09-19 15:30:18 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-09-19 15:30:24 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 15:33:26 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c)
2022-09-19 15:38:42 +0200 <[Leary]> ski: https://blog.ocharles.org.uk/posts/2022-06-22-list-of-monoids-pattern.html
2022-09-19 15:38:54 +0200 <[Leary]> I don't find it very compelling though.
2022-09-19 15:40:27 +0200 <ski> ty
2022-09-19 15:44:55 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 244 seconds)
2022-09-19 15:45:06 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-09-19 15:46:01 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net)
2022-09-19 15:51:21 +0200 <int-e> Hmm. So basically they're pushing an mconcat from the call site into the implementation, with the idea that if you need only one argument, [x] to pass a singleton is light-weight compared to mconcat [x,y] for combining multiple arguments?
2022-09-19 15:52:41 +0200tcard(~tcard@p1772079-ipngn12801hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 250 seconds)
2022-09-19 15:53:14 +0200doyougnu(~doyougnu@2001:7c0:921:0:85c2:c19d:1c67:c8bc) (Ping timeout: 268 seconds)
2022-09-19 15:53:16 +0200 <int-e> . o O ( Cute, but not much of a pattern; those tend to run deeper. )
2022-09-19 15:58:34 +0200mestre(~mestre@191.177.181.194) (Quit: Lost terminal)
2022-09-19 16:06:50 +0200razetime(~quassel@117.254.35.161) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-19 16:06:51 +0200benin08(benin@gateway/vpn/protonvpn/benin)
2022-09-19 16:08:48 +0200benin0(~benin@183.82.204.58) (Ping timeout: 265 seconds)
2022-09-19 16:08:49 +0200benin08benin0
2022-09-19 16:10:20 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-09-19 16:14:30 +0200nate1(~nate@98.45.169.16)
2022-09-19 16:16:07 +0200benin02(~benin@183.82.207.175)
2022-09-19 16:17:39 +0200benin0(benin@gateway/vpn/protonvpn/benin) (Ping timeout: 248 seconds)
2022-09-19 16:17:39 +0200benin02benin0
2022-09-19 16:19:05 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-09-19 16:20:12 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Quit: leaving)
2022-09-19 16:20:28 +0200ezzieyguywuf(~Unknown@user/ezzieyguywuf)
2022-09-19 16:25:48 +0200Sgeo(~Sgeo@user/sgeo)
2022-09-19 16:32:24 +0200 <dminuoso> I think for most uses of optparse-applicative, there will be more than just a singleton in most uses of Mod.
2022-09-19 16:32:53 +0200 <dminuoso> (Or there will be often exactly none in case of InfoMod)
2022-09-19 16:36:21 +0200weier(~z@219.70.204.146)
2022-09-19 16:38:59 +0200acidjnk(~acidjnk@p200300d6e7137a147dd3ef2b14c15b4a.dip0.t-ipconnect.de)
2022-09-19 16:40:56 +0200akegalj(~akegalj@93.138.18.60) (Quit: leaving)
2022-09-19 16:49:32 +0200benin0(~benin@183.82.207.175) (Remote host closed the connection)
2022-09-19 16:58:20 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 17:03:29 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-09-19 17:04:16 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 17:16:09 +0200EvanR_Evanr
2022-09-19 17:16:11 +0200EvanrEvanR
2022-09-19 17:18:51 +0200DavidBinder(~davidbind@134.2.10.18)
2022-09-19 17:19:49 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 17:23:00 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.6)
2022-09-19 17:25:35 +0200raym(~raym@user/raym) (Quit: gonna try artix)
2022-09-19 17:27:14 +0200DavidBinder(~davidbind@134.2.10.18) (Quit: Leaving)
2022-09-19 17:29:51 +0200DavidBinder(~DavidBind@134.2.10.18)
2022-09-19 17:29:59 +0200David_Binder(~DavidBind@134.2.10.18)
2022-09-19 17:29:59 +0200David_Binder(~DavidBind@134.2.10.18) (Client Quit)
2022-09-19 17:30:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 17:30:50 +0200jero98772(~jero98772@2800:484:1d80:d8ce:3490:26c5:1782:da8c) (Ping timeout: 244 seconds)
2022-09-19 17:36:12 +0200raehik(~raehik@zone3.jesus.cam.ac.uk)
2022-09-19 17:38:04 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 244 seconds)
2022-09-19 17:39:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-19 17:44:00 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff)
2022-09-19 17:49:49 +0200k`(~user@152.7.255.205)
2022-09-19 17:50:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 17:50:43 +0200EashanHatti(~Thunderbi@c-24-126-44-70.hsd1.wv.comcast.net) ()
2022-09-19 17:51:00 +0200 <k`> How do folks normally use Storable with CStringLen? Just manually peek and poke at the length and the length and the string, and assume the alignment will be right?
2022-09-19 17:54:51 +0200hochata(~user@user/hochata)
2022-09-19 18:01:40 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-19 18:03:23 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-09-19 18:03:32 +0200doyougnu(~doyougnu@2001:7c0:921:0:f282:6ee3:55a:e90f)
2022-09-19 18:06:46 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-09-19 18:06:47 +0200califax(~califax@user/califx) (Write error: Broken pipe)
2022-09-19 18:07:12 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-09-19 18:07:12 +0200califax(~califax@user/califx)
2022-09-19 18:10:45 +0200doyougnu(~doyougnu@2001:7c0:921:0:f282:6ee3:55a:e90f) (Ping timeout: 268 seconds)
2022-09-19 18:13:25 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 18:13:46 +0200tcard(~tcard@p696070-ipngn8501hodogaya.kanagawa.ocn.ne.jp)
2022-09-19 18:15:15 +0200DavidBinder(~DavidBind@134.2.10.18) (Remote host closed the connection)
2022-09-19 18:16:16 +0200causal(~user@50.35.83.177)
2022-09-19 18:19:59 +0200raym(~raym@user/raym)
2022-09-19 18:20:14 +0200nate1(~nate@98.45.169.16)
2022-09-19 18:21:36 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-09-19 18:21:44 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-09-19 18:28:52 +0200titibandit(~titibandi@xdsl-87-78-162-143.nc.de)
2022-09-19 18:34:35 +0200 <ski> @hoogle withCStringLen
2022-09-19 18:34:36 +0200 <lambdabot> Foreign.C.String withCStringLen :: String -> (CStringLen -> IO a) -> IO a
2022-09-19 18:34:36 +0200 <lambdabot> GHC.Foreign withCStringLen :: TextEncoding -> String -> (CStringLen -> IO a) -> IO a
2022-09-19 18:34:36 +0200 <lambdabot> Data.Text.Foreign withCStringLen :: Text -> (CStringLen -> IO a) -> IO a
2022-09-19 18:34:45 +0200MajorBiscuit(~MajorBisc@145.94.160.96) (Ping timeout: 250 seconds)
2022-09-19 18:34:59 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-09-19 18:35:23 +0200ec(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2022-09-19 18:37:15 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 18:42:36 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 18:42:48 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f304:45a9:c72c:4fdd) (Quit: WeeChat 2.8)
2022-09-19 18:44:11 +0200johnw(~johnw@2600:1700:cf00:db0:7521:269e:c5d9:26aa)
2022-09-19 18:44:59 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 18:49:03 +0200k`(~user@152.7.255.205) (Ping timeout: 252 seconds)
2022-09-19 18:49:47 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 258 seconds)
2022-09-19 18:51:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 18:52:35 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 18:53:30 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-c1e9-cb91-01c1-e3d9.res6.spectrum.com) (Ping timeout: 244 seconds)
2022-09-19 18:55:25 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-09-19 18:55:38 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-09-19 18:57:29 +0200titibandit(~titibandi@xdsl-87-78-162-143.nc.de) (Quit: Leaving.)
2022-09-19 18:57:59 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-19 19:00:02 +0200weier(~z@219.70.204.146) (Quit: Konversation terminated!)
2022-09-19 19:00:39 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 19:00:53 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-09-19 19:01:33 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-09-19 19:03:35 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 19:05:31 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 250 seconds)
2022-09-19 19:05:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 19:05:40 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-61f2-c7b2-cd95-6846.res6.spectrum.com)
2022-09-19 19:10:00 +0200waldo(~waldo@user/waldo)
2022-09-19 19:10:18 +0200wootehfoot(~wootehfoo@user/wootehfoot)
2022-09-19 19:13:48 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-09-19 19:17:31 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-09-19 19:18:40 +0200nate1(~nate@98.45.169.16) (Ping timeout: 268 seconds)
2022-09-19 19:19:28 +0200econo(uid147250@user/econo)
2022-09-19 19:19:37 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
2022-09-19 19:20:16 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-09-19 19:20:49 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
2022-09-19 19:21:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 19:21:07 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-09-19 19:24:23 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-19 19:25:53 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 19:32:18 +0200 <sm> @where operators
2022-09-19 19:32:18 +0200 <lambdabot> I know nothing about operators.
2022-09-19 19:32:56 +0200 <sm> @where+ operators https://www.fpcomplete.com/haskell/tutorial/operators
2022-09-19 19:32:56 +0200 <lambdabot> Done.
2022-09-19 19:33:59 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
2022-09-19 19:34:16 +0200 <sm> good article (found via https://news.ycombinator.com/item?id=32893762)
2022-09-19 19:35:53 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 19:37:43 +0200kuribas(~user@ptr-17d51epqora8ux5p3qo.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2022-09-19 19:39:57 +0200skijust saw it in another channel, some hour or two ago
2022-09-19 19:40:28 +0200 <ski> (someone seemed to think it contained a bewildering plethora of operators .. but it mostly seemed pretty tame to me)
2022-09-19 19:40:36 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
2022-09-19 19:41:28 +0200 <geekosaur> my observation is that those who come from a fixed-operators background are often bewildered by the number of haskell operators, not to mention that it's trivial to define new ones
2022-09-19 19:43:49 +0200 <EvanR> I made this YMMV https://github.com/haskellcats/haskell-operators
2022-09-19 19:43:53 +0200jero98772(~jero98772@2800:484:1d80:d8ce:efcc:cbb3:7f2a:6dff) (Remote host closed the connection)
2022-09-19 19:44:52 +0200 <EvanR> "too many operators" debunked!
2022-09-19 19:45:00 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net)
2022-09-19 19:45:11 +0200hochata(~user@user/hochata) (Ping timeout: 268 seconds)
2022-09-19 19:46:43 +0200ski. o O ( "but I do try to avoid doing that because it does sound arrogant and patronizing" -- "yeah, the ignorant tend to misunderstand and incorrectly infer intent" )
2022-09-19 19:46:48 +0200raehik(~raehik@zone3.jesus.cam.ac.uk) (Ping timeout: 265 seconds)
2022-09-19 19:48:15 +0200skialso mentioned <https://github.com/ekmett/lens/wiki/Operators> as a larger maze to get lost in
2022-09-19 19:48:37 +0200 <EvanR> wow there's no so many in lens as I thought
2022-09-19 19:48:50 +0200 <EvanR> oh, it's 4 columns...
2022-09-19 19:49:06 +0200 <glguy> EvanR: <> is in Prelude now
2022-09-19 19:49:13 +0200 <EvanR> yeah I realize that
2022-09-19 19:49:16 +0200 <geekosaur> but in lens at least they follow patterns and if you learn the patterns you get pretty much the entire suite of operators
2022-09-19 19:49:31 +0200 <EvanR> I need to dust off my table
2022-09-19 19:49:32 +0200 <geekosaur> and there's only like 4 patterns iirc
2022-09-19 19:49:38 +0200 <ski> (plus a few more in the Notes)
2022-09-19 19:51:32 +0200 <dolio> Clearly it's much less bewildering to overload the same small collection of operators in many different, incoherent ways depending on the context.
2022-09-19 19:53:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 19:55:10 +0200 <EvanR> that's kind of how alphabets work too
2022-09-19 19:55:38 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 19:56:05 +0200 <EvanR> most of the image space of a 8x13 pixel grid is going unused!
2022-09-19 19:56:14 +0200 <geekosaur> enh. it's incoherent in English but not Spanish
2022-09-19 19:56:34 +0200 <geekosaur> (or at least much less incoherent)
2022-09-19 19:56:54 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-09-19 19:57:00 +0200 <int-e> EvanR: ink is expensive
2022-09-19 19:57:47 +0200titibandit(~titibandi@xdsl-87-78-162-143.nc.de)
2022-09-19 19:57:51 +0200 <sm> I think the article did a great job explaining the most common and useful operators, with motivating examples.. good writing
2022-09-19 19:59:09 +0200 <sm> bad at displaying date and author alas
2022-09-19 19:59:21 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-19 20:00:09 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-09-19 20:04:11 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-19 20:10:10 +0200Tuplanolla(~Tuplanoll@91-159-69-34.elisa-laajakaista.fi)
2022-09-19 20:13:00 +0200Techcable(~Techcable@user/Techcable) (Remote host closed the connection)
2022-09-19 20:13:08 +0200Techcable(~Techcable@user/Techcable)
2022-09-19 20:15:29 +0200redviking(~redviking@24.48.51.166)
2022-09-19 20:17:23 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 20:21:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 20:23:25 +0200haskell_is_no_ha(~haskell_i@c-73-169-221-60.hsd1.wa.comcast.net)
2022-09-19 20:23:54 +0200tomboy64(~tomboy64@user/tomboy64)
2022-09-19 20:29:02 +0200haskell_is_no_ha(~haskell_i@c-73-169-221-60.hsd1.wa.comcast.net) (Remote host closed the connection)
2022-09-19 20:31:21 +0200waldo(~waldo@user/waldo) (Ping timeout: 252 seconds)
2022-09-19 20:36:11 +0200Pickchea(~private@user/pickchea)
2022-09-19 20:36:55 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 20:37:36 +0200Linux(~kernel@user/OpenSource) (Ping timeout: 268 seconds)
2022-09-19 20:39:16 +0200Guest|59(~Guest|59@80.143.205.77.rev.sfr.net)
2022-09-19 20:39:51 +0200Guest|59(~Guest|59@80.143.205.77.rev.sfr.net) (Client Quit)
2022-09-19 20:40:11 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-19 20:44:55 +0200 <zzz> @type (, 7 ())
2022-09-19 20:44:56 +0200 <lambdabot> Num (() -> t1) => t2 -> (t2, t1)
2022-09-19 20:45:02 +0200 <zzz> can anyone explain this to me?
2022-09-19 20:46:00 +0200 <geekosaur> (, x) for some x is a tuple section (requires TupleSections extension), which takes a parameter and produces a tuple
2022-09-19 20:46:14 +0200 <zzz> yes
2022-09-19 20:46:27 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 20:46:32 +0200 <geekosaur> `7 ()` reads `7` as a function which is passed a parameter `()`; this means a Num instance for a function i srequired
2022-09-19 20:46:44 +0200 <geekosaur> thus `Num (() -> t1)`
2022-09-19 20:46:51 +0200 <zzz> that's the part i'm having trouble with
2022-09-19 20:47:51 +0200 <geekosaur> Haskell does not know what a "number" is; any type for which you can write fromInteger can conceivably have a Num instance
2022-09-19 20:47:56 +0200 <geekosaur> including functions
2022-09-19 20:48:14 +0200 <geekosaur> :t 7
2022-09-19 20:48:15 +0200 <lambdabot> Num p => p
2022-09-19 20:48:40 +0200 <geekosaur> numeric literals are treated specially: they are stored as Integer and fromInteger is called on them at runtime
2022-09-19 20:49:31 +0200 <geekosaur> btw it *is* possible to write a function instance of Num. moreover, it's possible to write a Num instance for any Applicative, not just functions
2022-09-19 20:50:29 +0200 <zzz> ah i get it
2022-09-19 20:50:31 +0200 <zzz> thanks
2022-09-19 20:50:39 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-09-19 20:51:08 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds)
2022-09-19 20:51:13 +0200 <geekosaur> (if it's got a decimal point, it's stored as a Rational and fromRational is called on them)
2022-09-19 20:52:38 +0200MoC(~moc@user/moc)
2022-09-19 20:53:26 +0200Lord_of_Life_Lord_of_Life
2022-09-19 20:54:55 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-09-19 20:55:27 +0200 <geekosaur> @let instance Num a => Num (b -> a) where (+) = liftA2 (+); (-) = liftA2 (-); (*) = liftA2 (*); negate = fmap negate; abs = fmap abs; signum = fmap signum; fromInteger = pure . fromInteger
2022-09-19 20:55:29 +0200 <lambdabot> Defined.
2022-09-19 20:55:44 +0200 <geekosaur> there's your instance for any Applicative including functions
2022-09-19 20:56:06 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 20:57:15 +0200 <geekosaur> well, wibble on "any Applicative": it has to have something with a Num instance "inside" it
2022-09-19 20:57:47 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-09-19 20:57:50 +0200 <geekosaur> so `7 ()` won't work with it unless you give () a Num instance (which is possible, just pretty useless)
2022-09-19 20:58:54 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2022-09-19 20:59:05 +0200chomwitt(~chomwitt@2a02:587:dc14:f500:b006:2ebc:491e:e6d5) (Ping timeout: 268 seconds)
2022-09-19 21:00:14 +0200 <geekosaur> @let instance Num () where _ + _ = (); _ - _ = (); negate = id; abs = id; signum = id; fromInteger _ = ()
2022-09-19 21:00:15 +0200 <lambdabot> /sandbox/tmp/.L.hs:172:10: error: [-Wmissing-methods, -Werror=missing-methods]
2022-09-19 21:00:15 +0200 <lambdabot> • No explicit implementation for
2022-09-19 21:00:15 +0200 <lambdabot> ‘*’
2022-09-19 21:00:30 +0200 <geekosaur> @let instance Num () where _ + _ = (); _ - _ = (); _ * _ = (); negate = id; abs = id; signum = id; fromInteger _ = ()
2022-09-19 21:00:31 +0200 <lambdabot> Defined.
2022-09-19 21:01:05 +0200 <geekosaur> > (0, 7 ())
2022-09-19 21:01:07 +0200 <lambdabot> ((),())
2022-09-19 21:03:34 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-19 21:03:43 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 21:04:34 +0200 <geekosaur> (this is partly because ExtendedDefaultRules is enabled in lambdabot so () is also the default type instead of Integer; accordingly, that Num instance for () produces a lot of surprises in lambdabot and ghci)
2022-09-19 21:04:44 +0200 <EvanR> a numeric constant like 1.234e308 is stored as a Rational ? xD
2022-09-19 21:05:00 +0200 <geekosaur> iirc yes
2022-09-19 21:05:47 +0200`2jt(~jtomas@86.red-88-17-188.dynamicip.rima-tde.net) (Ping timeout: 244 seconds)
2022-09-19 21:06:17 +0200 <geekosaur> maybe someone who knows more about ghc internals can chime in about it; I think this might work out to be 1.234 stored as Rational and e becomes ^?
2022-09-19 21:06:26 +0200 <zzz> ok i'm bending my mind with the Num (b -> a) instance
2022-09-19 21:06:31 +0200 <zzz> thanks
2022-09-19 21:06:51 +0200 <geekosaur> function instances for anything are pretty mindbending
2022-09-19 21:07:13 +0200 <EvanR> even if the compiler is smart about it, now I'm scared about doing conversions at runtime through Rational heh
2022-09-19 21:07:26 +0200 <geekosaur> good, I think
2022-09-19 21:07:43 +0200 <geekosaur> it's not recommended for a number of reasons iirc
2022-09-19 21:07:57 +0200 <geekosaur> not just the chance for memory-filling denoms
2022-09-19 21:09:09 +0200redviking(~redviking@24.48.51.166) (Quit: Client closed)
2022-09-19 21:11:33 +0200sagri__(~cpli@77.47.62.180)
2022-09-19 21:11:39 +0200 <zzz> f <*> g = \x -> f x (g x) -- this is fun
2022-09-19 21:11:42 +0200raym(~raym@user/raym) (Remote host closed the connection)
2022-09-19 21:12:27 +0200 <Rembane> Which bird is that?
2022-09-19 21:12:51 +0200 <geekosaur> `ap` / S combinator
2022-09-19 21:13:14 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 21:13:27 +0200 <Rembane> Sweet! Thank you!
2022-09-19 21:13:53 +0200sagri__sai
2022-09-19 21:14:01 +0200saisaii
2022-09-19 21:14:09 +0200 <Rembane> Starling!
2022-09-19 21:14:33 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2022-09-19 21:15:46 +0200 <EvanR> that combinator comes up a lot
2022-09-19 21:16:03 +0200 <EvanR> so you use <*> and then no one understands the code
2022-09-19 21:19:14 +0200 <zzz> Rembane: https://gist.github.com/jrvieira/69c2af44f04cd6924aaf976f2a8d0fc3
2022-09-19 21:20:40 +0200raym(~raym@user/raym)
2022-09-19 21:21:29 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Remote host closed the connection)
2022-09-19 21:21:35 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-19 21:22:22 +0200 <Rembane> zzz: Thank you!
2022-09-19 21:22:54 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-09-19 21:23:38 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-09-19 21:23:51 +0200 <ski> > sortBy (comparing length <> compare) (words "The quick brown fox jumps over the lazy dog") -- sorting primarily by length, secondarily by usual lexicographic ordering
2022-09-19 21:23:52 +0200saii(~cpli@77.47.62.180) (Quit: WeeChat 3.6)
2022-09-19 21:23:54 +0200 <lambdabot> ["The","dog","fox","the","lazy","over","brown","jumps","quick"]
2022-09-19 21:23:55 +0200 <ski> @where monoids
2022-09-19 21:23:55 +0200 <lambdabot> comment on "Monoids? In my programming language?" by Cale in 2008 (or 2009 ?) at <http://www.reddit.com/r/programming/comments/7cf4r/monoids_in_my_programming_language/c06adnx> about a use of `
2022-09-19 21:23:55 +0200 <lambdabot> instance Monoid a => Monoid (rho -> a)'
2022-09-19 21:24:09 +0200 <ski> zzz : see ^ for another use of function instance
2022-09-19 21:24:09 +0200sagri_(~cpli@77.47.62.180)
2022-09-19 21:24:19 +0200sagri_sai
2022-09-19 21:24:27 +0200 <zzz> i love that one
2022-09-19 21:25:20 +0200 <ski> > map (id^2 + 1) [0 .. 9] :: [Integer]
2022-09-19 21:25:22 +0200 <lambdabot> [1,2,5,10,17,26,37,50,65,82]
2022-09-19 21:25:44 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 21:25:54 +0200raym(~raym@user/raym) (Remote host closed the connection)
2022-09-19 21:25:56 +0200 <ski> > map (cos^2 + sin^2) [0,pi/4 .. 2*pi]
2022-09-19 21:25:58 +0200 <lambdabot> [1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0]
2022-09-19 21:26:48 +0200 <ski> > map (fst^2 - fst*snd + snd^2) [(x,y) | [x,y] <- replicateM 2 [-1 .. 2]9
2022-09-19 21:26:49 +0200 <lambdabot> <hint>:1:72: error:
2022-09-19 21:26:49 +0200 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
2022-09-19 21:26:53 +0200 <ski> > map (fst^2 - fst*snd + snd^2) [(x,y) | [x,y] <- replicateM 2 [-1 .. 2]]
2022-09-19 21:26:54 +0200 <lambdabot> [()]
2022-09-19 21:27:04 +0200 <ski> > map (fst^2 - fst*snd + snd^2) [(x,y) | [x,y] <- replicateM 2 [-1 .. 2]] :: [Integer]
2022-09-19 21:27:06 +0200 <lambdabot> [1,1,3,7,1,0,1,4,3,1,1,3,7,4,3,4]
2022-09-19 21:27:23 +0200pavonia(~user@user/siracusa)
2022-09-19 21:27:38 +0200 <dminuoso> Is there builtin support for exceptions in ST?
2022-09-19 21:27:53 +0200 <dminuoso> Im almost convinced there is not, but maybe Im overlooking something
2022-09-19 21:27:58 +0200 <dminuoso> (Beyond using say ExceptT of course)
2022-09-19 21:28:24 +0200 <ski> afaik, no
2022-09-19 21:29:03 +0200 <ski> (hm .. how about `STM' ?)
2022-09-19 21:29:20 +0200saisaii
2022-09-19 21:29:32 +0200 <ski> (not counting `retry', of course)
2022-09-19 21:30:12 +0200 <dminuoso> STM has exceptions yeah (throwSTM), but its not usable for me
2022-09-19 21:30:12 +0200 <ski> how are exceptions arising ? or you'd like to raise some yourself ?
2022-09-19 21:30:16 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 260 seconds)
2022-09-19 21:30:18 +0200 <dminuoso> I would like to raise some myself
2022-09-19 21:30:25 +0200 <ski> ok
2022-09-19 21:30:29 +0200MoC(~moc@user/moc)
2022-09-19 21:30:40 +0200 <dminuoso> But I can address it by switching from `traverse_` over a list into just recursing into that list, and producing an Either at the end
2022-09-19 21:30:57 +0200 <ski> probably `ExceptT', or some CPS variant, is where it is at
2022-09-19 21:32:10 +0200cg1(~cg1@199.241.26.152)
2022-09-19 21:32:36 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-09-19 21:34:33 +0200beteigeuze(~Thunderbi@p5090d00a.dip0.t-ipconnect.de)
2022-09-19 21:38:11 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2022-09-19 21:39:10 +0200gmg(~user@user/gehmehgeh)
2022-09-19 21:40:39 +0200raym(~raym@user/raym)
2022-09-19 21:41:46 +0200gmg(~user@user/gehmehgeh) (Client Quit)
2022-09-19 21:44:56 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-19 21:45:09 +0200OpenSource(~kernel@user/OpenSource)
2022-09-19 21:45:09 +0200trcc(~trcc@87-57-134-11-cable.dk.customer.tdc.net)
2022-09-19 21:46:54 +0200 <ski> @type (runState .) . mapM . (state .)
2022-09-19 21:46:56 +0200 <lambdabot> Traversable t => (a -> s -> (b, s)) -> t a -> s -> (t b, s)
2022-09-19 21:47:05 +0200 <ski> @type flip . (((swap .) . runState) .) . mapM . ((state . (swap .)) .) . flip
2022-09-19 21:47:07 +0200 <lambdabot> Traversable t => (s -> a -> (s, b)) -> s -> t a -> (s, t b)
2022-09-19 21:47:14 +0200 <ski> @hoogle mapAccumL
2022-09-19 21:47:15 +0200 <lambdabot> Data.List mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2022-09-19 21:47:15 +0200 <lambdabot> Data.Traversable mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
2022-09-19 21:47:15 +0200 <lambdabot> GHC.OldList mapAccumL :: (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
2022-09-19 21:47:26 +0200 <ski> @type (execState .) . mapM . (state .)
2022-09-19 21:47:27 +0200 <lambdabot> Traversable t => (a -> s -> (b, s)) -> t a -> s -> s
2022-09-19 21:47:37 +0200 <ski> @type flip . ((execState) .) . mapM . ((state . (swap .)) .) . flip
2022-09-19 21:47:38 +0200 <lambdabot> Traversable t => (s -> a -> (s, b)) -> s -> t a -> s
2022-09-19 21:47:44 +0200 <ski> @hoogle mapAccumL_
2022-09-19 21:47:45 +0200 <lambdabot> Stream mapAccumL_ :: Monad m => (c -> a -> m (c, b)) -> c -> Stream m a r -> Stream m b (c, r)
2022-09-19 21:47:53 +0200 <ski> @type (runExcept .) . mapM . (except .)
2022-09-19 21:47:55 +0200 <lambdabot> Traversable t => (a -> Either e b) -> t a -> Either e (t b)
2022-09-19 21:48:02 +0200 <ski> @type (runExceptT .) . mapM . (ExceptT .)
2022-09-19 21:48:03 +0200 <lambdabot> (Traversable t, Monad m) => (a -> m (Either e b)) -> t a -> m (Either e (t b))
2022-09-19 21:48:12 +0200 <ski> @type (runExceptT .) . mapM_ . (ExceptT .)
2022-09-19 21:48:13 +0200 <lambdabot> (Foldable t, Monad m) => (a -> m (Either e b)) -> t a -> m (Either e ())
2022-09-19 21:48:20 +0200 <ski> @type (execExceptT .) . mapM_ . (ExceptT .)
2022-09-19 21:48:21 +0200 <lambdabot> (Foldable t, Monad m) => (a -> m (Either e b)) -> t a -> m (Maybe e)
2022-09-19 21:50:12 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 244 seconds)
2022-09-19 21:51:44 +0200 <trcc> I have this: https://paste.tomsmeding.com/h8D57ics and I am wondering why I get an error with line 32 whereas lines 29-31 works fine. It is hspec with shouldSatisfy
2022-09-19 21:54:44 +0200 <ski> it apparently wants to be able to `Show' `result'
2022-09-19 21:54:54 +0200 <geekosaur> because `shouldSatisfy` wants to do `show` on the left parameter if the right parameter isn't satisfied. The one that works unwraps the Cmd.Failure and shows its contents; that and the error suggests that Cmd doesn't have a Show instance
2022-09-19 21:54:57 +0200 <ski> presumably if the check fails
2022-09-19 21:55:22 +0200 <geekosaur> which is different from its unwrapped content having one
2022-09-19 21:55:39 +0200 <trcc> geekosaur okay. Weird requirement in my opinion. Thank you though
2022-09-19 21:56:26 +0200 <geekosaur> why? it makes sense that a failure case would be displayed
2022-09-19 21:56:34 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-09-19 21:56:43 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-09-19 21:58:35 +0200 <trcc> hm yes
2022-09-19 21:58:41 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 21:59:20 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 21:59:37 +0200 <geekosaur> it just doesn't necessarily fit with a parser where a success case might include non-`show`able components
2022-09-19 21:59:42 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 265 seconds)
2022-09-19 22:00:05 +0200 <trcc> just avoided the shouldsatisfy and called the function directly
2022-09-19 22:02:40 +0200 <ski> perhaps there could be a variant that is supplied with a (partial) accessor for the part to check
2022-09-19 22:03:07 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-09-19 22:04:06 +0200 <ski> shouldSatisfyPart :: (HasCallStack,Show b) => (a -> Maybe b) -> a -> (b -> Bool) -> Expectation -- or somesuch
2022-09-19 22:05:40 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-19 22:06:49 +0200trcc(~trcc@87-57-134-11-cable.dk.customer.tdc.net) (Quit: Connection closed)
2022-09-19 22:15:39 +0200tomboy64(~tomboy64@user/tomboy64) (Read error: Connection reset by peer)
2022-09-19 22:15:48 +0200lyle(~lyle@104.246.145.85) (Quit: WeeChat 3.6)
2022-09-19 22:16:16 +0200tomboy64(~tomboy64@user/tomboy64)
2022-09-19 22:17:38 +0200titibandit(~titibandi@xdsl-87-78-162-143.nc.de) (Remote host closed the connection)
2022-09-19 22:17:56 +0200hochata(~user@user/hochata)
2022-09-19 22:23:30 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-09-19 22:24:58 +0200ft_(~ft@p3e9bc57b.dip0.t-ipconnect.de)
2022-09-19 22:25:54 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-19 22:26:03 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 22:26:50 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
2022-09-19 22:26:55 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-09-19 22:28:13 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2022-09-19 22:29:03 +0200ft_ft
2022-09-19 22:30:18 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 22:31:55 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 22:34:10 +0200jakalx(~jakalx@base.jakalx.net)
2022-09-19 22:38:15 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 258 seconds)
2022-09-19 22:39:41 +0200rockymarine(~rocky@user/rockymarine) (Ping timeout: 260 seconds)
2022-09-19 22:41:14 +0200matthewmosior(~matthewmo@173.170.253.91) (Remote host closed the connection)
2022-09-19 22:45:59 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2022-09-19 22:46:29 +0200gay9(~quassel@94-168-123-190.static.v4.ziggozakelijk.nl) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-09-19 22:47:22 +0200gay9(~quassel@94-168-123-190.static.v4.ziggozakelijk.nl)
2022-09-19 22:49:29 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 22:56:51 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 244 seconds)
2022-09-19 22:58:02 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2022-09-19 22:59:03 +0200rockymarine(~rocky@user/rockymarine)
2022-09-19 23:06:05 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-19 23:08:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 23:09:37 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2022-09-19 23:10:57 +0200mestre(~mestre@191.177.181.194)
2022-09-19 23:11:09 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 268 seconds)
2022-09-19 23:11:41 +0200johnjaye(~pi@173.209.64.74) (Ping timeout: 268 seconds)
2022-09-19 23:12:49 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-09-19 23:13:04 +0200johnjaye(~pi@173.209.64.74)
2022-09-19 23:16:35 +0200jinsun__(~jinsun@user/jinsun)
2022-09-19 23:16:36 +0200jinsunGuest9638
2022-09-19 23:16:36 +0200Guest9638(~jinsun@user/jinsun) (Killed (sodium.libera.chat (Nickname regained by services)))
2022-09-19 23:16:36 +0200jinsun__jinsun
2022-09-19 23:21:58 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-09-19 23:26:06 +0200matthewmosior(~matthewmo@173.170.253.91)
2022-09-19 23:30:34 +0200matthewmosior(~matthewmo@173.170.253.91) (Ping timeout: 265 seconds)
2022-09-19 23:40:23 +0200OpenSourceQNX
2022-09-19 23:42:03 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-09-19 23:43:21 +0200LukeHoersten(~LukeHoers@user/lukehoersten)
2022-09-19 23:45:33 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-09-19 23:47:29 +0200ec(~ec@gateway/tor-sasl/ec)
2022-09-19 23:51:44 +0200coot(~coot@213.134.176.158) (Quit: coot)
2022-09-19 23:59:34 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Ping timeout: 265 seconds)