yoko-0.1: generic programming with disbanded constructors

Portabilitysee LANGUAGE pragmas (... GHC)
Stabilityexperimental
Maintainernicolas.frisby@gmail.com

Data.Yoko.CoreTypes

Description

Just the Data.Yoko.Core types -- doesn't export the constructors.

Synopsis

Documentation

type family Rep a Source

Structural representations (e.g. Data.Yoko.Generic's RM) of a * type can be derived as a data family indexed by the core representation (Rep) of that type.

data V Source

void

Instances

V ::: (All u) 
V ::: (Domain (CMap fn m)) 
Applicative (Idiom (fn m)) => V ::: (DomainA (CMap fn m)) 
Eq (RM m V) 
Show (RM m V) 

data U Source

unit

Instances

U ::: (Domain (RMMap u fn m)) 
U ::: (Domain (CMap fn m)) 
Applicative (Idiom (fn m)) => U ::: (DomainA (CMap fn m)) 

data D a Source

a dependency

Instances

(D a) ::: (Domain (RMMap u fn m)) 
Applicative (Idiom (fn m)) => (D a) ::: (DomainA (CMap fn m)) 
(D a) ::: (Domain (CMap fn m)) 

data R t Source

a recursive occurrence

Instances

(Dom (fn m) t ~ Med m t, Rng (fn m) t ~ Med (MApp fn m) t, t ::: u, t ::: (Domain (fn m)), Wrapper (fn m)) => (R t) ::: (Domain (RMMap u fn m)) 
(Dom (fn m) t ~ Med m t, Rng (fn m) t ~ Med m (TApp (fn m) t), t ::: (DomainA (fn m)), Functor (Idiom (fn m)), Wrapper (fn m)) => (R t) ::: (DomainA (CMap fn m)) 
(Dom (fn m) t ~ Med m t, Rng (fn m) t ~ Med m (TApp (fn m) t), t ::: (Domain (fn m)), Wrapper (fn m)) => (R t) ::: (Domain (CMap fn m)) 
Eq (Med m t) => Eq (RM m (R t)) 
Show (Med m t) => Show (RM m (R t)) 

data F f c Source

argument to a * -> *

Instances

(Functor f, c ::: (Domain (RMMap u fn m))) => (F f c) ::: (Domain (RMMap u fn m)) 
(c ::: (DomainA (CMap fn m)), Applicative (Idiom (fn m)), Traversable f) => (F f c) ::: (DomainA (CMap fn m)) 
(c ::: (Domain (CMap fn m)), Traversable f) => (F f c) ::: (Domain (CMap fn m)) 

data FF ff c d Source

arguments to a * -> * -> *

Instances

Eq (ff (RM m c) (RM m d)) => Eq (RM m (FF ff c d)) 
Show (ff (RM m c) (RM m d)) => Show (RM m (FF ff c d)) 
(c ::: (Domain (RMMap u fn m)), d ::: (Domain (RMMap u fn m)), FunctorTSTSS ff) => (FF ff c d) ::: (Domain (RMMap u fn m)) 
(c ::: (DomainA (CMap fn m)), d ::: (DomainA (CMap fn m)), Applicative (Idiom (fn m)), TraversableTSTSS ff) => (FF ff c d) ::: (DomainA (CMap fn m)) 
(c ::: (Domain (CMap fn m)), d ::: (Domain (CMap fn m)), FunctorTSTSS ff) => (FF ff c d) ::: (Domain (CMap fn m)) 

data M i c Source

meta information

Instances

c ::: (Domain (RMMap u fn m)) => (M i c) ::: (Domain (RMMap u fn m)) 
(c ::: (DomainA (CMap fn m)), Functor (Idiom (fn m))) => (M i c) ::: (DomainA (CMap fn m)) 
c ::: (Domain (CMap fn m)) => (M i c) ::: (Domain (CMap fn m)) 

data N t Source

a named intermediate (user hook); crucially: type instance Rep (N t) = Rep t.

Instances

ReduceDC m dc => Reduce m (N dc) 
t ::: u => (N t) ::: (All u) 
((Rep t) ::: (Domain (RMMap u fn m)), Generic t) => (N t) ::: (Domain (RMMap u fn m)) 
t ::: p => (N t) ::: (:? (Exists p) Here) 

type :* = FF (,)Source