star-to-star-1.0: the * -> * types, operators, and covariant instances.

Portabilitysee LANGUAGE pragmas
Stabilityexperimental
Maintainernicolas.frisby@gmail.com

Data.StarToStar

Description

Fundamental * -> * types and (covariant) instances for the common classes: Functor, Foldable, and Traversable.

Documentation

data V a Source

data U a Source

Constructors

U 

data C x a Source

Constructors

C x 

Instances

Functor (C x) 
Foldable (C x) 
Traversable (C x) 

onC :: (x -> b) -> C x a -> bSource

underC :: (x -> y) -> C x a -> C y bSource

toC :: x -> C x aSource

fromC :: C x a -> xSource

data I a Source

Constructors

I a 

onI :: (a -> b) -> I a -> bSource

underI :: (a -> b) -> I a -> I bSource

toI :: a -> I aSource

fromI :: I a -> aSource

newtype E e a Source

Constructors

E (e -> a) 

Instances

Functor (E e) 

onE :: ((e -> a) -> b) -> E e a -> bSource

underE :: ((e -> a) -> f -> b) -> E e a -> E f bSource

toE :: (e -> a) -> E e aSource

fromE :: E e a -> e -> aSource

type :-> = ESource

newtype K r a Source

Constructors

K (a -> r) 

onK :: ((a -> r) -> b) -> K r a -> bSource

underK :: ((a -> r) -> b -> s) -> K r a -> K s bSource

toK :: (a -> r) -> K r aSource

fromK :: K r a -> a -> rSource

type :<- = KSource

newtype O f g a Source

Constructors

O (f (g a)) 

Instances

(Functor f, Functor g) => Functor (O f g) 
(Foldable f, Foldable g) => Foldable (O f g) 
(Traversable f, Traversable g) => Traversable (O f g) 

onO :: (f (g a) -> b) -> O f g a -> bSource

underO :: (f (g a) -> h (i b)) -> O f g a -> O h i bSource

toO :: f (g a) -> O f g aSource

fromO :: O f g a -> f (g a)Source

type :. = OSource

data S f g a Source

Constructors

L (f a) 
R (g a) 

Instances

(Functor f, Functor g) => Functor (S f g) 
(Foldable f, Foldable g) => Foldable (S f g) 
(Traversable f, Traversable g) => Traversable (S f g) 

onS :: (Either (f a) (g a) -> b) -> S f g a -> bSource

onS' :: (f a -> b) -> (g a -> b) -> S f g a -> bSource

underS :: (Either (f a) (g a) -> Either (h b) (i b)) -> S f g a -> S h i bSource

toS :: Either (f a) (g a) -> S f g aSource

fromS :: S f g a -> Either (f a) (g a)Source

type :+ = SSource

data P f g a Source

Constructors

P (f a) (g a) 

Instances

(Functor f, Functor g) => Functor (P f g) 
(Foldable f, Foldable g) => Foldable (P f g) 
(Traversable f, Traversable g) => Traversable (P f g) 

onP :: ((f a, g a) -> b) -> P f g a -> bSource

underP :: ((f a, g a) -> (h b, i b)) -> P f g a -> P h i bSource

toP :: (f a, g a) -> P f g aSource

fromP :: P f g a -> (f a, g a)Source

type :* = PSource

newtype F f g a Source

Constructors

F (f a -> g a) 

onF :: ((f a -> g a) -> b) -> F f g a -> bSource

underF :: ((f a -> g a) -> h b -> i b) -> F f g a -> F h i bSource

toF :: (f a -> g a) -> F f g aSource

fromF :: F f g a -> f a -> g aSource

newtype Fix ff a Source

Constructors

In (ff (Fix ff) a) 

Instances

Functor (ff (Fix ff)) => Functor (Fix ff) 
Foldable (ff (Fix ff)) => Foldable (Fix ff) 
Traversable (ff (Fix ff)) => Traversable (Fix ff) 

underFix :: (ff (Fix ff) a -> gg (Fix gg) b) -> Fix ff a -> Fix gg bSource

toFix :: ff (Fix ff) a -> Fix ff aSource

fromFix :: Fix ff a -> ff (Fix ff) aSource

newtype Flip op f g a Source

Constructors

Flip (op g f a) 

Instances

Functor (op g f) => Functor (Flip op f g) 
Foldable (op g f) => Foldable (Flip op f g) 
Traversable (op g f) => Traversable (Flip op f g) 

onFlip :: (op g f a -> b) -> Flip op f g a -> bSource

underFlip :: (op g f a -> op' g' f' a') -> Flip op f g a -> Flip op' f' g' a'Source

toFlip :: op g f a -> Flip op f g aSource

fromFlip :: Flip op f g a -> op g f aSource