bifunctors-5.2: Bifunctors

Copyright(C) 2008-2016 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Data.Bifunctor.Tannen

Description

 

Synopsis

Documentation

newtype Tannen f p a b Source

Compose a Functor on the outside of a Bifunctor.

Constructors

Tannen 

Fields

Instances

Functor f => BifunctorFunctor k k k k (Tannen * k k f) Source 

Methods

bifmap :: (k :-> k) p q -> (k :-> k) (Tannen * k k f p) (Tannen * k k f q) Source

Comonad f => BifunctorComonad k k (Tannen * k k f) Source 

Methods

biextract :: Tannen * k k f p a b -> p a b Source

biextend :: (k :-> k) (Tannen * k k f p) q -> (k :-> k) (Tannen * k k f p) (Tannen * k k f q) Source

biduplicate :: Tannen * k k f p a b -> Tannen * k k f (Tannen * k k f p) a b Source

(Functor f, Monad f) => BifunctorMonad k k (Tannen * k k f) Source 

Methods

bireturn :: p a b -> Tannen * k k f p a b Source

bibind :: (k :-> k) p (Tannen * k k f q) -> (k :-> k) (Tannen * k k f p) (Tannen * k k f q) Source

bijoin :: Tannen * k k f (Tannen * k k f p) a b -> Tannen * k k f p a b Source

(Applicative f, Category k p) => Category k (Tannen * k k f p) Source 

Methods

id :: Tannen * k k f p a a

(.) :: Tannen * k k f p b c -> Tannen * k k f p a b -> Tannen * k k f p a c

(Functor f, Bifunctor p) => Bifunctor (Tannen * * * f p) Source 

Methods

bimap :: (a -> b) -> (c -> d) -> Tannen * * * f p a c -> Tannen * * * f p b d

first :: (a -> b) -> Tannen * * * f p a c -> Tannen * * * f p b c

second :: (b -> c) -> Tannen * * * f p a b -> Tannen * * * f p a c

(Applicative f, Arrow p) => Arrow (Tannen * * * f p) Source 

Methods

arr :: (b -> c) -> Tannen * * * f p b c

first :: Tannen * * * f p b c -> Tannen * * * f p (b, d) (c, d)

second :: Tannen * * * f p b c -> Tannen * * * f p (d, b) (d, c)

(***) :: Tannen * * * f p b c -> Tannen * * * f p b' c' -> Tannen * * * f p (b, b') (c, c')

(&&&) :: Tannen * * * f p b c -> Tannen * * * f p b c' -> Tannen * * * f p b (c, c')

(Applicative f, ArrowZero p) => ArrowZero (Tannen * * * f p) Source 

Methods

zeroArrow :: Tannen * * * f p b c

(Applicative f, ArrowPlus p) => ArrowPlus (Tannen * * * f p) Source 

Methods

(<+>) :: Tannen * * * f p b c -> Tannen * * * f p b c -> Tannen * * * f p b c

(Applicative f, ArrowChoice p) => ArrowChoice (Tannen * * * f p) Source 

Methods

left :: Tannen * * * f p b c -> Tannen * * * f p (Either b d) (Either c d)

right :: Tannen * * * f p b c -> Tannen * * * f p (Either d b) (Either d c)

(+++) :: Tannen * * * f p b c -> Tannen * * * f p b' c' -> Tannen * * * f p (Either b b') (Either c c')

(|||) :: Tannen * * * f p b d -> Tannen * * * f p c d -> Tannen * * * f p (Either b c) d

(Applicative f, ArrowLoop p) => ArrowLoop (Tannen * * * f p) Source 

Methods

loop :: Tannen * * * f p (b, d) (c, d) -> Tannen * * * f p b c

(Foldable f, Bifoldable p) => Bifoldable (Tannen * * * f p) Source 

Methods

bifold :: Monoid m => Tannen * * * f p m m -> m Source

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Tannen * * * f p a b -> m Source

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Tannen * * * f p a b -> c Source

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Tannen * * * f p a b -> c Source

(Traversable f, Bitraversable p) => Bitraversable (Tannen * * * f p) Source 

Methods

bitraverse :: Applicative b => (a -> b c) -> (d -> b e) -> Tannen * * * f p a d -> b (Tannen * * * f p c e) Source

(Applicative f, Biapplicative p) => Biapplicative (Tannen * * * f p) Source 

Methods

bipure :: a -> b -> Tannen * * * f p a b Source

(<<*>>) :: Tannen * * * f p (a -> b) (c -> d) -> Tannen * * * f p a c -> Tannen * * * f p b d Source

(*>>) :: Tannen * * * f p a b -> Tannen * * * f p c d -> Tannen * * * f p c d Source

(<<*) :: Tannen * * * f p a b -> Tannen * * * f p c d -> Tannen * * * f p a b Source

(Functor f, Bifunctor p) => Functor (Tannen * * * f p a) Source 

Methods

fmap :: (b -> c) -> Tannen * * * f p a b -> Tannen * * * f p a c

(<$) :: b -> Tannen * * * f p a c -> Tannen * * * f p a b

(Foldable f, Bifoldable p) => Foldable (Tannen * * * f p a) Source 

Methods

fold :: Monoid m => Tannen * * * f p a m -> m

foldMap :: Monoid m => (b -> m) -> Tannen * * * f p a b -> m

foldr :: (b -> c -> c) -> c -> Tannen * * * f p a b -> c

foldr' :: (b -> c -> c) -> c -> Tannen * * * f p a b -> c

foldl :: (b -> c -> b) -> b -> Tannen * * * f p a c -> b

foldl' :: (b -> c -> b) -> b -> Tannen * * * f p a c -> b

foldr1 :: (b -> b -> b) -> Tannen * * * f p a b -> b

foldl1 :: (b -> b -> b) -> Tannen * * * f p a b -> b

toList :: Tannen * * * f p a b -> [b]

null :: Tannen * * * f p a b -> Bool

length :: Tannen * * * f p a b -> Int

elem :: Eq b => b -> Tannen * * * f p a b -> Bool

maximum :: Ord b => Tannen * * * f p a b -> b

minimum :: Ord b => Tannen * * * f p a b -> b

sum :: Num b => Tannen * * * f p a b -> b

product :: Num b => Tannen * * * f p a b -> b

(Traversable f, Bitraversable p) => Traversable (Tannen * * * f p a) Source 

Methods

traverse :: Applicative c => (b -> c d) -> Tannen * * * f p a b -> c (Tannen * * * f p a d)

sequenceA :: Applicative b => Tannen * * * f p a (b c) -> b (Tannen * * * f p a c)

mapM :: Monad m => (b -> m c) -> Tannen * * * f p a b -> m (Tannen * * * f p a c)

sequence :: Monad m => Tannen * * * f p a (m b) -> m (Tannen * * * f p a b)

Functor f => Generic1 (Tannen * k * f p a) Source 

Associated Types

type Rep1 (Tannen * k * f p a :: * -> *) :: * -> *

Methods

from1 :: Tannen * k * f p a b -> Rep1 (Tannen * k * f p a) b

to1 :: Rep1 (Tannen * k * f p a) b -> Tannen * k * f p a b

Eq (f (p a b)) => Eq (Tannen k k k f p a b) Source 

Methods

(==) :: Tannen k k k f p a b -> Tannen k k k f p a b -> Bool

(/=) :: Tannen k k k f p a b -> Tannen k k k f p a b -> Bool

Ord (f (p a b)) => Ord (Tannen k k k f p a b) Source 

Methods

compare :: Tannen k k k f p a b -> Tannen k k k f p a b -> Ordering

(<) :: Tannen k k k f p a b -> Tannen k k k f p a b -> Bool

(<=) :: Tannen k k k f p a b -> Tannen k k k f p a b -> Bool

(>) :: Tannen k k k f p a b -> Tannen k k k f p a b -> Bool

(>=) :: Tannen k k k f p a b -> Tannen k k k f p a b -> Bool

max :: Tannen k k k f p a b -> Tannen k k k f p a b -> Tannen k k k f p a b

min :: Tannen k k k f p a b -> Tannen k k k f p a b -> Tannen k k k f p a b

Read (f (p a b)) => Read (Tannen k k k f p a b) Source 

Methods

readsPrec :: Int -> ReadS (Tannen k k k f p a b)

readList :: ReadS [Tannen k k k f p a b]

readPrec :: ReadPrec (Tannen k k k f p a b)

readListPrec :: ReadPrec [Tannen k k k f p a b]

Show (f (p a b)) => Show (Tannen k k k f p a b) Source 

Methods

showsPrec :: Int -> Tannen k k k f p a b -> ShowS

show :: Tannen k k k f p a b -> String

showList :: [Tannen k k k f p a b] -> ShowS

Generic (Tannen k k k f p a b) Source 

Associated Types

type Rep (Tannen k k k f p a b) :: * -> *

Methods

from :: Tannen k k k f p a b -> Rep (Tannen k k k f p a b) x

to :: Rep (Tannen k k k f p a b) x -> Tannen k k k f p a b

type Rep1 (Tannen k k1 k2 f p a) Source 
type Rep (Tannen k k1 k2 f p a b) Source