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.