Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,804,016 events total
2021-08-06 15:02:07 <janus> and they have CI to rebuild hackage
2021-08-06 15:03:41 Obo joins (~roberto@70.pool90-171-81.dynamic.orange.es)
2021-08-06 15:06:04 <viluon> janus: interesting, could you please point me to some resources? I'm sceptical about using Nix, but it may be a viable option
2021-08-06 15:07:59 <janus> viluon: gabriella has some docs. havn't tried them, but always loved all that she did : https://github.com/Gabriel439/haskell-nix
2021-08-06 15:12:10 <janus> hmm now i don't know if that is their name any more, thought i saw it somewhere.
2021-08-06 15:13:02 × azeem quits (~azeem@176.201.8.137) (Ping timeout: 245 seconds)
2021-08-06 15:14:28 <viluon> janus: thanks for the link, I'm reading it now
2021-08-06 15:15:28 × enoq quits (~enoq@194-208-179-35.lampert.tv) (Read error: Connection reset by peer)
2021-08-06 15:15:28 timex joins (~timex@202.14.120.238)
2021-08-06 15:16:06 azeem joins (~azeem@176.201.8.137)
2021-08-06 15:16:07 × timex quits (~timex@202.14.120.238) (Client Quit)
2021-08-06 15:16:08 enoq joins (~enoq@194-208-179-35.lampert.tv)
2021-08-06 15:16:58 notzmv joins (~zmv@user/notzmv)
2021-08-06 15:17:06 × dispater quits (~dispater@user/brprice) (Quit: ZNC 1.8.1 - https://znc.in)
2021-08-06 15:17:51 <absence> is it possible to implement something like (MonadIO m1, MonadIO m2) => m1 a -> ExceptT e m2 a?
2021-08-06 15:18:54 dispater joins (~dispater@user/brprice)
2021-08-06 15:20:20 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
2021-08-06 15:21:01 <davean> of course not
2021-08-06 15:21:22 × Obo quits (~roberto@70.pool90-171-81.dynamic.orange.es) (Ping timeout: 268 seconds)
2021-08-06 15:21:33 <Rembane> absence: Do you need it for something in particular?
2021-08-06 15:23:08 zebrag joins (~chris@user/zebrag)
2021-08-06 15:24:01 <absence> davean: why "of course"? i realise that m1 is not the same as m2, but at the same time m1 "needs" IO, which m2 "has"...
2021-08-06 15:24:47 <davean> absence: So? I have something you need, can I be you?
2021-08-06 15:24:55 × dajoer quits (~david@user/gvx) (Quit: leaving)
2021-08-06 15:25:32 <davean> Its that level of absurdity
2021-08-06 15:25:55 <davean> I have lungs, you need lungs - what does this mean for us being the same person?
2021-08-06 15:26:27 Core8888 joins (~agua_pesa@191.177.175.57)
2021-08-06 15:26:37 <davean> We also know you have lungs
2021-08-06 15:26:52 <absence> davean: right, so i guess what i want would have to be expressed in a different way?
2021-08-06 15:27:03 <davean> You haven't given any indication of what you want
2021-08-06 15:27:08 <geekosaur> more to the point, m1 would just be IO if that were enough; the fact that it has a MonbadIo constraint means it needs more. what guarantee is there that m2 provides that more?
2021-08-06 15:27:12 × neceve quits (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 258 seconds)
2021-08-06 15:28:25 <absence> geekosaur: ah, so it's about the "unused" parts of the transformer stacks
2021-08-06 15:28:26 <maerwald[m]> I want your lungs
2021-08-06 15:28:26 <maerwald[m]> xD
2021-08-06 15:28:47 <geekosaur> nor can you "extract" the IO from a MonadIO m => m and use it elsewhere, for the same reason you can't extract the a from an IO a
2021-08-06 15:28:55 <davean> absence: you've given us no idea how to dissasseble an m1 and look at its parts for example
2021-08-06 15:29:02 <davean> or to build an m2 for that matter
2021-08-06 15:29:05 <davean> other than liftIO
2021-08-06 15:29:44 <davean> Some things allow you to extract the IO, for example ReaderT r IO a does, just runReaderT
2021-08-06 15:31:03 × agua_pesada quits (~agua_pesa@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Ping timeout: 276 seconds)
2021-08-06 15:35:20 <absence> hmm, i think i expected mtl style stacks to magically sort that out, but that only works when they're related
2021-08-06 15:35:30 × rmoe quits (~rmoe@c-71-236-207-44.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
2021-08-06 15:36:27 <geekosaur> in general stuff like this works only because you can build a chain of related monadic expressions. otherwise you couldn't for example have conditionals
2021-08-06 15:36:36 <davean> absence: I mean even if that could work - you haven't given any constraints that give such a knowlege!
2021-08-06 15:36:42 <davean> absence: ALL you have given is MonadIO
2021-08-06 15:37:35 <davean> And you didn't say something like "m1 is some abstract monad that is allowed to do up to X things" and then have m2 have said capabilities
2021-08-06 15:37:43 <davean> you just said "MonadIO"
2021-08-06 15:37:50 <davean> if you'd said "forall m1" that might be different
2021-08-06 15:38:27 <davean> Perhaps you were thinking something like (forall m1 . MonadIO m1 => m1 a) -> ExceptT e m2 a?
2021-08-06 15:38:42 × Pickchea quits (~private@user/pickchea) (Ping timeout: 258 seconds)
2021-08-06 15:40:06 <davean> absence: I want to make the point you didn't say m1 was abstract, you said it was exactly something. So theres really nothing for MTL to sort out
2021-08-06 15:40:16 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-06 15:40:21 <davean> the forall case though might leave some sorting to happen, under the right conditions
2021-08-06 15:42:38 <absence> davean: i knew that my signature as written doesn't work, the compiler already told me that ;) i wanted to explore related ideas, so the forall m1 one looks interesting. thanks!
2021-08-06 15:43:49 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
2021-08-06 15:45:14 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2021-08-06 15:46:22 × charukiewicz quits (~quassel@irouteinc255.i.subnet.rcn.com) (Ping timeout: 258 seconds)
2021-08-06 15:46:31 charukiewicz_ joins (~quassel@irouteince04.i.subnet.rcn.com)
2021-08-06 15:46:56 zmt00 joins (~zmt00@user/zmt00)
2021-08-06 15:48:11 <janus> absence: did you see that mtl already has lift for ExceptT?
2021-08-06 15:49:36 jeetelongname joins (~jeet@host-89-241-98-229.as13285.net)
2021-08-06 15:49:39 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
2021-08-06 15:49:57 zebrag joins (~chris@user/zebrag)
2021-08-06 15:50:13 <janus> you have lift, you have "except" (in transformers for taking an Either to ExceptT). it's hard for me to imagine other functions that put things in ExceptT
2021-08-06 15:50:13 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-08-06 15:50:18 <janus> but maybe my imagination is limited :P
2021-08-06 15:50:42 <jeetelongname> :t (***)
2021-08-06 15:50:43 <lambdabot> Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
2021-08-06 15:52:07 <janus> ok , throwError, may need that also if you have an unconditional failure
2021-08-06 15:52:30 × charukiewicz_ quits (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 258 seconds)
2021-08-06 15:52:41 charukiewicz joins (~quassel@irouteinc02.i.subnet.rcn.com)
2021-08-06 15:53:27 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-08-06 15:53:45 × chele quits (~chele@user/chele) (Remote host closed the connection)
2021-08-06 15:54:53 pschorf joins (~user@c-73-77-28-188.hsd1.tx.comcast.net)
2021-08-06 15:55:05 shapr joins (~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-08-06 15:55:54 × curiousgay quits (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 268 seconds)
2021-08-06 15:56:08 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
2021-08-06 15:56:26 × oso quits (~oso@2601:58c:c080:a950:f275:2530:b398:680b) (Quit: Client closed)
2021-08-06 15:57:40 berberman joins (~berberman@user/berberman)
2021-08-06 15:58:15 × berberman_ quits (~berberman@user/berberman) (Ping timeout: 258 seconds)
2021-08-06 15:58:48 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-08-06 15:58:54 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
2021-08-06 15:59:38 ukari joins (~ukari@user/ukari)
2021-08-06 16:00:16 <absence> janus: thanks, but the problem was the mismatch between m1 and m2
2021-08-06 16:00:48 <janus> aah right , ok. so actually not really related to ExceptT
2021-08-06 16:01:44 euandreh joins (~euandreh@2804:14c:33:9fe5:4cf:cdfb:eec8:75c0)
2021-08-06 16:02:55 neceve joins (~quassel@2a02:c7f:607e:d600:d2c9:6317:8847:51b6)
2021-08-06 16:05:09 × azeem quits (~azeem@176.201.8.137) (Ping timeout: 258 seconds)
2021-08-06 16:06:47 azeem joins (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it)
2021-08-06 16:09:32 curiousgay joins (~curiousga@77-120-186-48.kha.volia.net)
2021-08-06 16:11:00 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-08-06 16:12:29 rmoe joins (~rmoe@c-71-236-207-44.hsd1.wa.comcast.net)
2021-08-06 16:14:21 <lechner> Hi, why does connectPostgreSQL in postgresql-simple expect a ByteString and not a String, please?
2021-08-06 16:15:12 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2021-08-06 16:15:18 <dsal> String is bad in general. They'd have to pack it in to a bytestring to send it over the wire anyway, so might as well take it.
2021-08-06 16:15:45 <dsal> With overloaded strings and optparse-applicative or similar for taking parameters, you might generally not notice the difference.
2021-08-06 16:16:37 <maerwald[m]> with optparse-applicative you will notice something: https://github.com/pcapriotti/optparse-applicative/issues/368
2021-08-06 16:17:19 <maerwald[m]> and https://github.com/haskell/bytestring/issues/140
2021-08-06 16:17:42 <maerwald[m]> (which is used by OverloadedStrings)

All times are in UTC.