Functor f => BifunctorFunctor k k k k (Tannen * k k f) Source | |
Comonad f => BifunctorComonad k k (Tannen * k k f) Source | |
(Functor f, Monad f) => BifunctorMonad k k (Tannen * k k f) Source | |
(Applicative f, Category k p) => Category k (Tannen * k k f p) Source | |
(Functor f, Bifunctor p) => Bifunctor (Tannen * * * f p) Source | |
(Applicative f, Arrow p) => Arrow (Tannen * * * f p) Source | |
(Applicative f, ArrowZero p) => ArrowZero (Tannen * * * f p) Source | |
(Applicative f, ArrowPlus p) => ArrowPlus (Tannen * * * f p) Source | |
(Applicative f, ArrowChoice p) => ArrowChoice (Tannen * * * f p) Source | |
(Applicative f, ArrowLoop p) => ArrowLoop (Tannen * * * f p) Source | |
(Foldable f, Bifoldable p) => Bifoldable (Tannen * * * f p) Source | |
(Traversable f, Bitraversable p) => Bitraversable (Tannen * * * f p) Source | |
(Applicative f, Biapplicative p) => Biapplicative (Tannen * * * f p) Source | |
(Functor f, Bifunctor p) => Functor (Tannen * * * f p a) Source | |
(Foldable f, Bifoldable p) => Foldable (Tannen * * * f p a) Source | |
(Traversable f, Bitraversable p) => Traversable (Tannen * * * f p a) Source | |
Functor f => Generic1 (Tannen * k * f p a) Source | |
Eq (f (p a b)) => Eq (Tannen k k k f p a b) Source | |
Ord (f (p a b)) => Ord (Tannen k k k f p a b) Source | |
Read (f (p a b)) => Read (Tannen k k k f p a b) Source | |
Show (f (p a b)) => Show (Tannen k k k f p a b) Source | |
Generic (Tannen k k k f p a b) Source | |
type Rep1 (Tannen k k1 k2 f p a) Source | |
type Rep (Tannen k k1 k2 f p a b) Source | |