| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Railroad
Synopsis
- type family CErr f where ...
- type family CRes f where ...
- class Bifurcate f where
- collapse :: forall e (es :: [Effect]) f. (Error e :> es, Bifurcate f) => (CErr f -> e) -> f -> Eff es (CRes f)
- (??) :: forall a (es :: [Effect]) e. (Error e :> es, Bifurcate a) => Eff es a -> (CErr a -> e) -> Eff es (CRes a)
- (?) :: forall (es :: [Effect]) e a. (Error e :> es, Bifurcate a) => Eff es a -> e -> Eff es (CRes a)
- (?>) :: forall (es :: [Effect]) e a. Error e :> es => Eff es a -> (a -> Bool) -> (a -> e) -> Eff es a
- (??~) :: forall (es :: [Effect]) a. Bifurcate a => Eff es a -> (CErr a -> CRes a) -> Eff es (CRes a)
- (?~) :: forall (es :: [Effect]) a. Bifurcate a => Eff es a -> CRes a -> Eff es (CRes a)
- data CardinalityError ta
- cardinalityErr :: e -> (ta -> e) -> CardinalityError ta -> e
- (?+) :: forall (es :: [Effect]) e t a. (Error e :> es, Foldable t) => Eff es (t a) -> e -> Eff es (t a)
- (?!) :: forall (es :: [Effect]) e t a. (Error e :> es, Foldable t) => Eff es (t a) -> (CardinalityError (t a) -> e) -> Eff es a
- (?∅) :: forall (es :: [Effect]) e t a. (Error e :> es, Foldable t) => Eff es (t a) -> (t a -> e) -> Eff es ()
Documentation
class Bifurcate f where Source #
A catamorphism to Either
Instances
| Bifurcate Bool Source # | |
| Bifurcate (Maybe a) Source # | |
| (Traversable t, CErr (t (Either e a)) ~ e, CRes (t (Either e a)) ~ t a) => Bifurcate (t (Either e a)) Source # | |
| (Traversable t, Semigroup e, CErr (t (Validation e a)) ~ e, CRes (t (Validation e a)) ~ t a) => Bifurcate (t (Validation e a)) Source # | |
Defined in Railroad Methods bifurcate :: t (Validation e a) -> Either (CErr (t (Validation e a))) (CRes (t (Validation e a))) Source # | |
| (Traversable t, CErr (t (Maybe a)) ~ (), CRes (t (Maybe a)) ~ t a) => Bifurcate (t (Maybe a)) Source # | |
| (Traversable t, CErr (t Bool) ~ (), CRes (t Bool) ~ t ()) => Bifurcate (t Bool) Source # | |
| Bifurcate (Either e a) Source # | |
| Bifurcate (Validation e a) Source # | |
Defined in Railroad Methods bifurcate :: Validation e a -> Either (CErr (Validation e a)) (CRes (Validation e a)) Source # | |
collapse :: forall e (es :: [Effect]) f. (Error e :> es, Bifurcate f) => (CErr f -> e) -> f -> Eff es (CRes f) Source #
Collapses a structure into its inner type or an effectful error
(??) :: forall a (es :: [Effect]) e. (Error e :> es, Bifurcate a) => Eff es a -> (CErr a -> e) -> Eff es (CRes a) infixl 0 Source #
Collapses a structure using an error mapper.
(?) :: forall (es :: [Effect]) e a. (Error e :> es, Bifurcate a) => Eff es a -> e -> Eff es (CRes a) infixl 0 Source #
Collapses a structure using a constant error.
(?>) :: forall (es :: [Effect]) e a. Error e :> es => Eff es a -> (a -> Bool) -> (a -> e) -> Eff es a infixl 1 Source #
Collapses any value based on a predicate
(??~) :: forall (es :: [Effect]) a. Bifurcate a => Eff es a -> (CErr a -> CRes a) -> Eff es (CRes a) Source #
Collapses a structure and recovers to a value dependent on the error
(?~) :: forall (es :: [Effect]) a. Bifurcate a => Eff es a -> CRes a -> Eff es (CRes a) infixl 0 Source #
Collapses a structure, and recovers to a constant default value in the error case
data CardinalityError ta Source #
cardinalityErr :: e -> (ta -> e) -> CardinalityError ta -> e Source #
Catamorphism for CardinalityError
(?+) :: forall (es :: [Effect]) e t a. (Error e :> es, Foldable t) => Eff es (t a) -> e -> Eff es (t a) infixl 0 Source #
Non-empty is sucess state. Returns the collection as-is.