Safe Haskell | Trustworthy |
---|---|
Language | Haskell2010 |
Synopsis
- class (Functor t, Foldable t) => Crosswalk (t :: Type -> Type) where
- class (Bifunctor t, Bifoldable t) => Bicrosswalk (t :: Type -> Type -> Type) where
- bicrosswalk :: Align f => (a -> f c) -> (b -> f d) -> t a b -> f (t c d)
- bisequenceL :: Align f => t (f a) (f b) -> f (t a b)
Crosswalk
class (Functor t, Foldable t) => Crosswalk (t :: Type -> Type) where Source #
Foldable functors supporting traversal through an alignable functor.
Minimal definition: crosswalk
or sequenceL
.
Laws:
crosswalk (const nil) = const nil crosswalk f = sequenceL . fmap f
Bicrosswalk
class (Bifunctor t, Bifoldable t) => Bicrosswalk (t :: Type -> Type -> Type) where Source #
Bifoldable bifunctors supporting traversal through an alignable functor.
Minimal definition: bicrosswalk
or bisequenceL
.
Laws:
bicrosswalk (const empty) (const empty) = const empty bicrosswalk f g = bisequenceL . bimap f g
bicrosswalk :: Align f => (a -> f c) -> (b -> f d) -> t a b -> f (t c d) Source #
bisequenceL :: Align f => t (f a) (f b) -> f (t a b) Source #
Instances
Bicrosswalk Either Source # | |
Defined in Data.Crosswalk | |
Bicrosswalk These Source # | |
Defined in Data.Crosswalk |