Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- class Covariant t => Traversable t where
Documentation
class Covariant t => Traversable t where Source #
Let f :: (Applicative t, Applicative g) => t a -> u a Let p :: (Pointable t, Pointable g) => t a -> u a
When providing a new instance, you should ensure it satisfies the four laws: * Naturality of traversing: g . traverse f ≡ traverse (g . f) * Naturality of sequencing: f . sequence = sequence . comap f * Preserving point: p (point x) ≡ point x * Preserving apply: f (x <*> y) ≡ f x <*> f y
(->>) :: (Pointable u, Applicative u) => t a -> (a -> u b) -> (u :.: t) b Source #
Infix version of traverse
traverse :: (Pointable u, Applicative u) => (a -> u b) -> t a -> (u :.: t) b Source #
Prefix version of ->>
sequence :: (Pointable u, Applicative u) => (t :.: u) a -> (u :.: t) a Source #
The dual of distribute
Instances
Traversable Identity Source # | |
Defined in Data.Functor.Identity | |
Traversable t => Traversable (Yoneda t) Source # | |
Defined in Data.Functor.Yoneda | |
Traversable (Constant a :: * -> *) Source # | |
Defined in Data.Functor.Constant (->>) :: (Pointable u, Applicative u) => Constant a a0 -> (a0 -> u b) -> (u :.: Constant a) b Source # traverse :: (Pointable u, Applicative u) => (a0 -> u b) -> Constant a a0 -> (u :.: Constant a) b Source # sequence :: (Pointable u, Applicative u) => (Constant a :.: u) a0 -> (u :.: Constant a) a0 Source # |