transformations-0.1.1.0: Generic representation of tree transformations

Safe HaskellSafe-Inferred

Generics.MultiRec.LR

Synopsis

Documentation

class LRBase a whereSource

The LRBase class defines two functions, leftb and rightb, which should produce different values.

Methods

leftb :: aSource

rightb :: aSource

class LR phi f whereSource

The LR class defines two functions, leftf and rightf, which should produce different functorial values.

Methods

leftf :: phi ix -> (forall ix'. El phi ix' => phi ix' -> r ix') -> [f r ix]Source

rightf :: phi ix -> (forall ix'. El phi ix' => phi ix' -> r ix') -> [f r ix]Source

Instances

LR phi U 
LRBase a => LR phi (K a) 
El phi xi => LR phi (I xi) 
LR phi f => LR phi (:.: [] f) 
(El phi ix, LR phi f, EqS phi) => LR phi (:>: f ix) 
LR phi f => LR phi (C c f) 
(LR phi f, LR phi g) => LR phi (:*: f g) 
(LR phi f, LR phi g) => LR phi (:+: f g) 

left :: (Fam phi, LR phi (PF phi)) => phi ix -> ixSource

right :: (Fam phi, LR phi (PF phi)) => phi ix -> ixSource

safeHead :: [t] -> tSource