Newest at the top
2025-03-30 13:01:24 +0200 | <Rembane> | thirdofmay18081814goya: No worries! :) |
2025-03-30 13:01:16 +0200 | <int-e> | And Control.Monad.Error mimicked that after the MonadFail class was introduced. |
2025-03-30 13:00:33 +0200 | <int-e> | `fail` used to be in `Monad` and the Monad instance for Either used to be instance Error e => Monad (Either e) where `Error` had a function to convert String into an e, which was used to implement `fail`. |
2025-03-30 13:00:31 +0200 | <haskellbridge> | <thirdofmay18081814goya> @Rembane neat! didn't know about it, ty |
2025-03-30 12:59:54 +0200 | hattckory | (~hattckory@70.27.118.207) (Ping timeout: 260 seconds) |
2025-03-30 12:59:26 +0200 | <int-e> | yes |
2025-03-30 12:59:19 +0200 | <Rembane> | int-e: Ah, this has some history. |
2025-03-30 12:59:03 +0200 | sprotte24 | (~sprotte24@p200300d16f1e0e006577a4ba097b8b9e.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-03-30 12:58:05 +0200 | <int-e> | Rembane: Well I used it before it was deprecated because it offered the behavior that Either had before the MonadFail proposal. |
2025-03-30 12:56:57 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-30 12:56:47 +0200 | <Rembane> | Was it a good MonadFail instance? |
2025-03-30 12:56:39 +0200 | <Rembane> | That sounds potentially controversial. I never used ErrorT because of the deprecated message on top of the documentation of the module. |
2025-03-30 12:54:30 +0200 | <int-e> | ExceptT e Foo a uses the MonadFail instance of Foo. ErrorT e Foo a was removed because it was deprecated in favor of ExceptT despite having a different MonadFail instance. |
2025-03-30 12:54:10 +0200 | <Rembane> | Got it. |
2025-03-30 12:53:42 +0200 | <int-e> | Either doesn't have a MonadFail instance |
2025-03-30 12:51:59 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-30 12:49:09 +0200 | <Rembane> | I thought Either did that, what does it do instead? |
2025-03-30 12:48:47 +0200 | <[exa]> | what's annoying on validation and either that neither of these provides the "just shortcircuit with errory error" behavior unless you write the MonadFail yourself |
2025-03-30 12:48:35 +0200 | <Rembane> | [exa]: Yeah, it's usually better for inspiration than a clear definition. :D |
2025-03-30 12:48:15 +0200 | sprotte24 | (~sprotte24@p200300d16f1e0e006577a4ba097b8b9e.dip0.t-ipconnect.de) |
2025-03-30 12:47:40 +0200 | <[exa]> | absolutely not sure, just wanted to point out that the "opposite" is a very free definition :D |
2025-03-30 12:47:11 +0200 | <Rembane> | [exa]: Bah, they don't actually exist. The closest I can get to them is Dual. What would Up and Down do? |
2025-03-30 12:46:43 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-03-30 12:45:44 +0200 | <Rembane> | [exa]: I think we have some of those. They're usually Monoid/Semigroup newtypes. |
2025-03-30 12:44:53 +0200 | <[exa]> | Rembane: so many opposites. Why don't we have a Up Down type? |
2025-03-30 12:41:10 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-30 12:36:13 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-30 12:24:36 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
2025-03-30 12:15:49 +0200 | NewtonTrendy | (~ubuntu@user/bopqod) (Quit: WeeChat 3.5) |
2025-03-30 12:14:23 +0200 | polyphem | (~rod@p4fc2c911.dip0.t-ipconnect.de) polyphem |
2025-03-30 12:11:29 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-03-30 11:59:42 +0200 | vgtw | (~vgtw@user/vgtw) vgtw |
2025-03-30 11:59:24 +0200 | vgtw | (~vgtw@user/vgtw) (Ping timeout: 260 seconds) |
2025-03-30 11:58:23 +0200 | hattckory | (~hattckory@70.27.118.207) |
2025-03-30 11:56:51 +0200 | ash3en | (~Thunderbi@89.56.182.235) ash3en |
2025-03-30 11:54:18 +0200 | vgtw | (~vgtw@user/vgtw) vgtw |
2025-03-30 11:48:44 +0200 | vgtw | (~vgtw@user/vgtw) (Ping timeout: 252 seconds) |
2025-03-30 11:48:32 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2025-03-30 11:48:29 +0200 | <Rembane> | ...for some values of opposite. :D |
2025-03-30 11:48:21 +0200 | <Rembane> | There's an opposite to Either that's very useful for validating e.g. forms. When there can be loads of errors in different places and execution should never stop. Just seeing the definition makes me surprisingly happy: https://hackage.haskell.org/package/validation-1.1.3/docs/Data-Validation.html#t:Validation |
2025-03-30 11:43:45 +0200 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds) |
2025-03-30 11:39:06 +0200 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-30 11:33:11 +0200 | tromp | (~textual@2001:1c00:3487:1b00:9865:6ec1:d353:2dc8) |
2025-03-30 11:25:46 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-03-30 11:18:53 +0200 | XZDX | XZDX_ |
2025-03-30 11:08:27 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f61790abc3a16c69e44.dip0.t-ipconnect.de) acidjnk |
2025-03-30 10:51:18 +0200 | XZDX | (~xzdx@user/XZDX) XZDX |
2025-03-30 10:50:48 +0200 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
2025-03-30 10:39:09 +0200 | Digitteknohippie | Digit |
2025-03-30 10:37:08 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |