Copyright | (c) Edward Kmett 2014 |
---|---|
License | BSD3 |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
The definitions here are loosely based on Conor McBride's "Kleisli Arrows of Outrageous Fortune".
Documentation
class (Category hom, hom ~ Hom) => HasAt hom where Source
at :: forall a i. a ~> At a i i Source
ibind :: forall m a bk i j. Monad m => (a ~> m bk j) -> m (At a j) i ~> m bk i Source
ireturn :: (Monoidal m, Strength m) => hom a (m (At a i) i) Source
atFunctor :: Dict (Functor (At :: y -> x -> x -> y)) Source
coat :: forall a i. hom (Coat a i i) a Source
coatMonoidal :: Dict (Monoidal (Coat :: y -> x -> x -> y)) Source
iextend :: forall w ak i j b. Comonad w => (w ak j ~> b) -> w ak i ~> w (Coat b j) i Source
iextract :: Comonad w => hom (w (Coat a i) i) a Source
atAdj :: forall a b a' b' i j i' j'. Iso (At a i j ~> b) (At a' i' j' ~> b') (a ~> Coat b i j) (a' ~> Coat b' i' j') Source
HasAt * (->) | |
HasAt Constraint (:-) |
Comonoidal * (k -> k -> *) (At0 k) | |
Cosemimonoidal * (k -> k -> *) (At0 k) | |
Functor * (k -> k -> *) (At0 k) | |
Comonoid * m => Comonoid (k -> k -> *) (At0 k m) | |
Cosemigroup * m => Cosemigroup (k -> k -> *) (At0 k m) |
class (i ~ j) |- a => CoatC a i j Source
(|-) ((~) k i j) a => CoatC k a i j | |
Monoidal Constraint (k -> k -> Constraint) (CoatC k) | |
Functor Constraint (k -> k -> Constraint) (CoatC k) | |
Semimonoidal (k -> k -> Constraint) Constraint (CoatC k) | |
Monoid Constraint m => Monoid (k -> k -> Constraint) (CoatC k m) | |
Semigroup Constraint m => Semigroup (k -> k -> Constraint) (CoatC k m) | |
Class ((|-) ((~) k i j) a) (CoatC k a i j) | |
((|-) ((~) k i j) a) :=> (CoatC k a i j) |