Newest at the top
2025-04-26 21:39:22 +0200 | michalz | (~michalz@185.246.207.205) |
2025-04-26 21:37:11 +0200 | tromp | (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-26 21:33:40 +0200 | roaccess | (~roaccess@user/roaccess) roaccess |
2025-04-26 21:27:00 +0200 | Square2 | (~Square@user/square) Square |
2025-04-26 21:23:15 +0200 | pointlessslippe1 | (~pointless@62.106.85.17) pointlessslippe1 |
2025-04-26 21:22:41 +0200 | <EvanR> | i.e. return a simplified or abstract set of errors instead, then you don't need to merge them |
2025-04-26 21:22:26 +0200 | pointlessslippe1 | (~pointless@62.106.85.17) (Ping timeout: 252 seconds) |
2025-04-26 21:22:23 +0200 | tromp | (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) |
2025-04-26 21:22:20 +0200 | <EvanR> | if the user shouldn't care what you used to interface with postgres, then it would seem they shouldn't get those errors either |
2025-04-26 21:20:02 +0200 | <haskellbridge> | <Liamzee> MonadIO: people who love classy monads are now happy |
2025-04-26 21:19:31 +0200 | <haskellbridge> | <Liamzee> bleh, maybe i'll just finish the early iteration of the library, post to github, post a "please halp" thread somewhere, and then go from there |
2025-04-26 21:18:17 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) |
2025-04-26 21:18:16 +0200 | <EvanR> | not sure what MonadIO gets you |
2025-04-26 21:18:01 +0200 | euleritian | (~euleritia@ip4d17f82f.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
2025-04-26 21:17:34 +0200 | <haskellbridge> | <Liamzee> well, not really |
2025-04-26 21:17:26 +0200 | <haskellbridge> | <Liamzee> although I was thinking of moving it to MonadIO, which would make things way more complicated |
2025-04-26 21:17:09 +0200 | <EvanR> | Left |
2025-04-26 21:17:05 +0200 | <EvanR> | and return Either if it's your exceptions |
2025-04-26 21:16:55 +0200 | <EvanR> | you could also use Exception internally if you have IO |
2025-04-26 21:16:51 +0200 | <haskellbridge> | <Liamzee> then catch before the do block |
2025-04-26 21:16:43 +0200 | <haskellbridge> | <Liamzee> to get rid of the pyramid of doom i could just do throwIO for the exceptions should they emerge |
2025-04-26 21:16:30 +0200 | <haskellbridge> | <Liamzee> yeah i know |
2025-04-26 21:16:18 +0200 | <EvanR> | another way is to embrace Exception and throw those in IO instead of trying to do everything with Either |
2025-04-26 21:15:31 +0200 | <EvanR> | probably infeasible and overengineered without language support |
2025-04-26 21:15:02 +0200 | <EvanR> | there was an extensible variant paper which has this as a possible application, "merging" errors |
2025-04-26 21:14:47 +0200 | <haskellbridge> | <Liamzee> https://paste.tomsmeding.com/iChs4zTJ |
2025-04-26 21:14:43 +0200 | LainIwakura | (~LainIwaku@user/LainIwakura) LainIwakura |
2025-04-26 21:13:54 +0200 | <EvanR> | keep wrapping stuff in more Lefts? |
2025-04-26 21:13:47 +0200 | <EvanR> | what is your solution |
2025-04-26 21:13:43 +0200 | <haskellbridge> | <Liamzee> because i end up with a pyramid of doom pattern |
2025-04-26 21:13:37 +0200 | <haskellbridge> | <Liamzee> i mean i already have a solution, it's just ugly |
2025-04-26 21:13:37 +0200 | <EvanR> | because I'm still not clear what the problem is |
2025-04-26 21:13:26 +0200 | <EvanR> | if that's supposed to be a solution I don't know exactly what is being proposed |
2025-04-26 21:13:19 +0200 | <davean> | EvanR: No I think this is actually critical to program design |
2025-04-26 21:13:04 +0200 | <EvanR> | all you're doing now is obstructing the problem description from being stated |
2025-04-26 21:12:58 +0200 | <haskellbridge> | <Liamzee> btw thanks for the work on xkcd |
2025-04-26 21:12:37 +0200 | <davean> | Sure they are, they're your API now |
2025-04-26 21:12:29 +0200 | sprotte24 | (~sprotte24@p200300d16f0edb008da0b43d58ccc511.dip0.t-ipconnect.de) |
2025-04-26 21:12:25 +0200 | <EvanR> | well passing them through unchanged would then be "not your errors" |
2025-04-26 21:12:07 +0200 | <davean> | At the end of the day, one way or antoher. They might just be someone else's passed through |
2025-04-26 21:11:51 +0200 | <EvanR> | if only have your own errors if you handle all the possible errors from the wrapped library and do a masking or conversion |
2025-04-26 21:11:35 +0200 | rvalue- | rvalue |
2025-04-26 21:11:28 +0200 | <davean> | You only have your own errors |
2025-04-26 21:11:27 +0200 | <EvanR> | if at all |
2025-04-26 21:11:09 +0200 | <EvanR> | so basically how to "properly" bubble the inner libraries detailed errors to the user of your wrapper, when you also have your own errors on top of that |
2025-04-26 21:10:58 +0200 | Goodbye_Vincent1 | (cyvahl@freakshells.net) |
2025-04-26 21:10:40 +0200 | tromp | (~textual@2001:1c00:3487:1b00:ac80:9bb1:e5dc:c7d3) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-04-26 21:10:10 +0200 | Goodbye_Vincent1 | (cyvahl@freakshells.net) (Remote host closed the connection) |
2025-04-26 21:10:07 +0200 | <haskellbridge> | <Liamzee> so either I wrap everything in monad transformers, or I throwIO the exceptions up to a handler which packages it back into IO (Either MyExceptionType PromisedResultType) |
2025-04-26 21:09:55 +0200 | xkuru | (~xkuru@user/xkuru) xkuru |