Safe Haskell | None |
---|---|
Language | GHC2021 |
Control.Comonad.Travel
Contents
Description
Implementation of "Directed Containers as Categories," D. Ahman and T. Uustalu, EPTCS 207, 2016, pp. 89-98
Travel: Comonad from a Category
data Travel (cat :: k -> k -> Type) r where Source #
Make Polynomial
Comonad
from Category
.
Travel cat
is a polynomial functor for any type constructor
cat
.
Travel cat r ~ ∑a. ((∑b. cat a b) -> r)
Travel cat
is a Comonad
if cat
is a Category
.
Constructors
MkTravel :: forall k (cat :: k -> k -> Type) r (a :: k). Sing a -> (Sigma k (TyCon (cat a)) -> r) -> Travel cat r |
data TravelTag (cat :: k -> k -> Type) x where Source #
Constructors
TravelFrom :: forall k (cat :: k -> k -> Type) (a :: k). Sing a -> TravelTag cat (Sigma k (TyCon (cat a))) |