Safe Haskell | None |
---|---|

Language | Haskell2010 |

- type family Dom (f :: * -> *) a :: Constraint
- class DomCartesian f where
- class DomCartesian f => DomClosed f where
- class CFunctor f where
- (<$>:) :: (CFunctor f, Dom f a, Dom f b) => (a -> b) -> f a -> f b
- class CFunctor f => CApply f where
- (<*>:) :: (CApply f, DomClosed f, Dom f a, Dom f b) => f (a -> b) -> f a -> f b
- class CApply f => CApplicative f where
- class CApplicative f => CMonad f where
- (>>=:) :: (CMonad f, Dom f a, Dom f b) => f a -> (a -> f b) -> f b
- (=<<:) :: (CMonad f, Dom f a, Dom f b) => (a -> f b) -> f a -> f b
- class CApplicative f => CAlt f where
- (<|>:) :: (CAlt f, Dom f a) => f a -> f a -> f a
- class CAlt f => CAlternative f where
- class CFoldable f where
- class (CFunctor t, CFoldable t) => CTraversable t where
- type family CKey (f :: * -> *)
- class CLookup f where
- (!?) :: (CLookup f, Dom f a) => CKey f -> f a -> Maybe a
- class CLookup f => CIndexable f where
- (!) :: (CIndexable f, Dom f a) => f a -> CKey f -> a
- class CFunctor f => CKeyed f where
- class CFunctor f => CZip f where
- class (CKeyed f, CZip f) => CZipWithKey f where
- class CFoldable f => CFoldableWithKey f where
- class (CKeyed t, CFoldableWithKey t, CTraversable t) => CTraversableWithKey t where
- class CFunctor f => CAdjustable f where

# Constraint

type family Dom (f :: * -> *) a :: Constraint Source #

The `Dom`

type family gives the domain of a given type constructor of kind
`* -> *`

. This is meant to represent that `f`

is a function from a subset of
the the objects in `Hask`

to the objects of `Hask`

.

class DomCartesian f where Source #

class DomCartesian f => DomClosed f where Source #

# Base classes

class CFunctor f => CApply f where Source #

Equivalent to the `Applicative`

class.

_zipA :: forall a b. (DomCartesian f, Dom f a, Dom f b) => f a -> f b -> f (a, b) Source #

_liftA2 :: (Dom f a, Dom f b, Dom f c) => (a -> b -> c) -> f a -> f b -> f c Source #

_liftA3 :: (Dom f a, Dom f b, Dom f c, Dom f d) => (a -> b -> c -> d) -> f a -> f b -> f c -> f d Source #

_liftA4 :: (Dom f a, Dom f b, Dom f c, Dom f d, Dom f e) => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e Source #

_ap :: (DomClosed f, Dom f a, Dom f b) => f (a -> b) -> f a -> f b Source #

class CApplicative f => CMonad f where Source #

Equivalent to the @Monad$ class.

_concatMap :: (Dom f a, Dom f b) => (a -> f b) -> f a -> f b Source #

class CApplicative f => CAlt f where Source #

Equivalent to the `Applicative`

class.

class CFoldable f where Source #

Equivalent to the `Foldable`

class.

_foldr :: Dom f a => (a -> b -> b) -> b -> f a -> b Source #

_foldr' :: Dom f a => (a -> b -> b) -> b -> f a -> b Source #

_foldl :: Dom f b => (a -> b -> a) -> a -> f b -> a Source #

_foldl' :: Dom f b => (a -> b -> a) -> a -> f b -> a Source #

_fold :: (Dom f m, Monoid m) => f m -> m Source #

_foldMap :: (Dom f a, Monoid m) => (a -> m) -> f a -> m Source #

_toList :: Dom f a => f a -> [a] Source #

_length :: Dom f a => f a -> Int Source #

_mapM_ :: (Monad m, Dom f a) => (a -> m b) -> f a -> m () Source #

_forM_ :: (Monad m, Dom f a) => f a -> (a -> m b) -> m () Source #

class (CFunctor t, CFoldable t) => CTraversable t where Source #

Equivalent to the `Traversable`

class.

# Key classes

class CLookup f => CIndexable f where Source #

Equivalent to the `Indexable`

class.

class CFunctor f => CZip f where Source #

Equivalent to the `Zip`

class.

_zip :: (DomCartesian f, Dom f a, Dom f b) => f a -> f b -> f (a, b) Source #

_zipWith :: (Dom f a, Dom f b, Dom f c) => (a -> b -> c) -> f a -> f b -> f c Source #

_zipWith3 :: (Dom f a, Dom f b, Dom f c, Dom f d) => (a -> b -> c -> d) -> f a -> f b -> f c -> f d Source #

_zipWith4 :: (Dom f a, Dom f b, Dom f c, Dom f d, Dom f e) => (a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e Source #

_zipAp :: (DomClosed f, Dom f a, Dom f b) => f (a -> b) -> f a -> f b Source #

class (CKeyed f, CZip f) => CZipWithKey f where Source #

Equivalent to the `Zip`

class.

_izipWith :: (Dom f a, Dom f b, Dom f c) => (CKey f -> a -> b -> c) -> f a -> f b -> f c Source #

_izipWith3 :: (Dom f a, Dom f b, Dom f c, Dom f d) => (CKey f -> a -> b -> c -> d) -> f a -> f b -> f c -> f d Source #

_izipWith4 :: (Dom f a, Dom f b, Dom f c, Dom f d, Dom f e) => (CKey f -> a -> b -> c -> d -> e) -> f a -> f b -> f c -> f d -> f e Source #

class CFoldable f => CFoldableWithKey f where Source #

Equivalent to the `FoldableWithKey`

class.

_itoList :: Dom f a => f a -> [(CKey f, a)] Source #

_ifoldMap :: (Monoid m, Dom f a) => (CKey f -> a -> m) -> f a -> m Source #

_ifoldr :: Dom f a => (CKey f -> a -> b -> b) -> b -> f a -> b Source #

_ifoldr' :: Dom f a => (CKey f -> a -> b -> b) -> b -> f a -> b Source #

_ifoldl :: Dom f b => (a -> CKey f -> b -> a) -> a -> f b -> a Source #

_ifoldl' :: Dom f b => (a -> CKey f -> b -> a) -> a -> f b -> a Source #

class (CKeyed t, CFoldableWithKey t, CTraversable t) => CTraversableWithKey t where Source #

Equivalent to the `Traversable`

class.