hask-0: Categories

Copyright(c) Edward Kmett 2014
LicenseBSD3
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Hask.At

Description

The definitions here are loosely based on Conor McBride's "Kleisli Arrows of Outrageous Fortune".

Documentation

ifmap :: (Functor f, Functor at) => (a ~> b) -> f (at a i) ~> f (at b i) Source

class (Category hom, hom ~ Hom) => HasAt hom where Source

Minimal complete definition

at, ibind, ireturn, coat, iextend, atAdj

Associated Types

type At :: y -> x -> x -> y Source

type Coat :: y -> x -> x -> y Source

Methods

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

Instances

data At0 a i j where Source

Constructors

At :: a -> At0 a i i 

Instances

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) 

newtype Coat0 a i j Source

Constructors

Coat 

Fields

runCoat :: (i ~ j) => a
 

Instances

Monoidal * (k -> k -> *) (Coat0 k) 
Functor * (k -> k -> *) (Coat0 k) 
Semimonoidal (k -> k -> *) * (Coat0 k) 
Monoid * m => Monoid (k -> k -> *) (Coat0 k m) 
Semigroup * m => Semigroup (k -> k -> *) (Coat0 k m) 

class a & (i ~ j) => AtC a i j Source

Instances

(&) a ((~) k i j) => AtC k a i j 
Functor Constraint (k -> k -> Constraint) (AtC k) 
Class ((&) a ((~) k i j)) (AtC k a i j) 
((&) a ((~) k i j)) :=> (AtC k a i j) 

class (i ~ j) |- a => CoatC a i j Source

Instances

(|-) ((~) 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)