yoko-0.2: generic programming with disbanded constructors

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

Type.Yoko.MFun

Description

An enrichment of Type.Yoko.Fun where functions must be of kind * -> * -> *; the first parameter is a mediator and the second is (as expected by Type.Yoko.Fun) the type at which the function is to be instantiated.

Synopsis

Documentation

newtype RMMap u fn m c Source

mediator-functions can be mapped across an RM type/value.

Constructors

RMMap (NT u (fn m)) 

Instances

U ::: (Domain (RMMap u fn m)) 
((Rep t) ::: (Domain (RMMap u fn m)), Generic t) => (N t) ::: (Domain (RMMap u fn m)) 
(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)) 
(D a) ::: (Domain (RMMap u fn m)) 
c ::: (Domain (RMMap u fn m)) => (M i c) ::: (Domain (RMMap u fn m)) 
(Functor f, c ::: (Domain (RMMap u fn m))) => (F f c) ::: (Domain (RMMap u fn m)) 
(c ::: (Domain (RMMap u fn m)), d ::: (Domain (RMMap u fn m)), FunctorTSTSS ff) => (FF ff c d) ::: (Domain (RMMap u fn m)) 

type family MApp fn m Source

mediator-functions can also modify the mediator; e.g.

  type instance Dom (RMMap u fn m) c = RM m c
  type instance Rng (RMMap u fn m) c = RM (MApp fn m) c

newtype FromAt m n a Source

A FromAt function is applicable only at the specified mediator and type; crucially type instance MApp (FromAt m) n = m.

Constructors

FromAt 

Fields

toAt :: Med n a -> Med m a
 

Instances

a ::: (Domain (FromAt m n)) 
Wrapper (FromAt m n)