RepLib-0.3: Generic programming library with representation types

Portabilitynon-portable
Stabilityexperimental
Maintainersweirich@cis.upenn.edu

Generics.RepLib.R1

Description

 

Synopsis

Documentation

data R1 ctx a whereSource

Constructors

Int1 :: R1 ctx Int 
Char1 :: R1 ctx Char 
Integer1 :: R1 ctx Integer 
Float1 :: R1 ctx Float 
Double1 :: R1 ctx Double 
Rational1 :: R1 ctx Rational 
IOError1 :: R1 ctx IOError 
IO1 :: Rep a => ctx a -> R1 ctx (IO a) 
Arrow1 :: (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a -> b) 
Data1 :: DT -> [Con ctx a] -> R1 ctx a 
Abstract1 :: DT -> R1 ctx a 

Instances

Show (R1 c a) 

class Sat a whereSource

Methods

dict :: aSource

Instances

Shrink a => Sat (ShrinkD a) 
Enumerate a => Sat (EnumerateD a) 
Generate a => Sat (GenerateD a) 
Zero a => Sat (ZeroD a) 
GSum a => Sat (GSumD a) 
Show a => Sat (ShowD a) 
Bounded a => Sat (BoundedD a) 
Ord a => Sat (OrdD a) 
Eq a => Sat (EqD a) 
Alpha a => Sat (AlphaD a) 
Alpha a => Sat (AlphaD a) 
Lreduce b a => Sat (LreduceD b a) 
Rreduce b a => Sat (RreduceD b a) 
Subst b a => Sat (SubstD b a) 
Subst b a => Sat (SubstD b a) 
(Unify n a b, Subst n a b, Occurs n a b) => Sat (UnifySubD n a b) 

class Rep a => Rep1 ctx a whereSource

Methods

rep1 :: R1 ctx aSource

Instances

Rep1 ctx () 
Rep1 ctx Rational 
Rep1 ctx IOError 
Rep1 ctx Double 
Rep1 ctx Float 
Rep1 ctx Integer 
Rep1 ctx Char 
Rep1 ctx Int 
Rep1 ctx[aaHE] Bool 
Rep1 ctx[aaGY] Ordering 
Rep1 ctx[aqvK] AnyName 
(Sat (ctx[arvn] (Name Exp)), Sat (ctx[arvn] Exp), Sat (ctx[arvn] (Bind (Name Exp) Exp))) => Rep1 ctx[arvn] Exp 
Rep1 ctx[aKum] AnyName 
(Sat (ctx[aLzp] (Name Exp)), Sat (ctx[aLzp] Exp), Sat (ctx[aLzp] (Bind (Name Exp) Exp))) => Rep1 ctx[aLzp] Exp 
(Rep a, Sat (ctx a), Sat (ctx [a])) => Rep1 ctx [a] 
(Rep a, Sat (ctx a)) => Rep1 ctx (IO a) 
(Rep a[a1IU], Sat (ctx[aaHu] a[a1IU])) => Rep1 ctx[aaHu] (Maybe a[a1IU]) 
Rep a[a2Jp] => Rep1 ctx[aqdM] (R a[a2Jp]) 
(Rep a[aqf1], Sat (ctx[aqpi] (R a[aqf1])), Sat (ctx[aqpi] (String, Integer))) => Rep1 ctx[aqpi] (Name a[aqf1]) 
(Rep a[aqeX], Sat (ctx[aqpa] a[aqeX])) => Rep1 ctx[aqpa] (Annot a[aqeX]) 
Rep a[a2Jp] => Rep1 ctx[aKfo] (R a[a2Jp]) 
(Rep a[aKgL], Sat (ctx[aKnq] (R a[aKgL])), Sat (ctx[aKnq] (String, Integer)), Sat (ctx[aKnq] Integer)) => Rep1 ctx[aKnq] (Name a[aKgL]) 
(Rep a[aKgF], Sat (ctx[aKni] a[aKgF])) => Rep1 ctx[aKni] (Annot a[aKgF]) 
(Rep a, Sat (ctx a), Rep b, Sat (ctx b)) => Rep1 ctx (a, b) 
(Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx (a -> b) 
(Rep a[aaH6], Rep b[aaH5], Sat (ctx[aaHf] a[aaH6]), Sat (ctx[aaHf] b[aaH5])) => Rep1 ctx[aaHf] (Either a[aaH6] b[aaH5]) 
(Rep a[aqeZ], Rep b[aqf0], Sat (ctx[aqpv] a[aqeZ]), Sat (ctx[aqpv] b[aqf0])) => Rep1 ctx[aqpv] (Bind a[aqeZ] b[aqf0]) 
(Rep a[aqeV], Rep b[aqeW], Sat (ctx[aqoX] a[aqeV]), Sat (ctx[aqoX] (Bind [AnyName] b[aqeW]))) => Rep1 ctx[aqoX] (Rebind a[aqeV] b[aqeW]) 
(Rep a[aKgI], Rep b[aKgJ], Sat (ctx[aKnS] a[aKgI]), Sat (ctx[aKnS] b[aKgJ])) => Rep1 ctx[aKnS] (Bind a[aKgI] b[aKgJ]) 
(Rep a[aKgD], Rep b[aKgE], Sat (ctx[aKn5] a[aKgD]), Sat (ctx[aKn5] b[aKgE])) => Rep1 ctx[aKn5] (Rebind a[aKgD] b[aKgE]) 
(Rep a[12], Rep b[13], Rep c[14], Sat (ctx[aaGG] a[12]), Sat (ctx[aaGG] b[13]), Sat (ctx[aaGG] c[14])) => Rep1 ctx[aaGG] (a[12], b[13], c[14]) 
(Rep a[12], Rep b[13], Rep c[14], Rep d[15], Sat (ctx[aaGj] a[12]), Sat (ctx[aaGj] b[13]), Sat (ctx[aaGj] c[14]), Sat (ctx[aaGj] d[15])) => Rep1 ctx[aaGj] (a[12], b[13], c[14], d[15]) 
(Rep a[12], Rep b[13], Rep c[14], Rep d[15], Rep e[16], Sat (ctx[aaFR] a[12]), Sat (ctx[aaFR] b[13]), Sat (ctx[aaFR] c[14]), Sat (ctx[aaFR] d[15]), Sat (ctx[aaFR] e[16])) => Rep1 ctx[aaFR] (a[12], b[13], c[14], d[15], e[16]) 
(Rep a[12], Rep b[13], Rep c[14], Rep d[15], Rep e[16], Rep f[17], Sat (ctx[aaFk] a[12]), Sat (ctx[aaFk] b[13]), Sat (ctx[aaFk] c[14]), Sat (ctx[aaFk] d[15]), Sat (ctx[aaFk] e[16]), Sat (ctx[aaFk] f[17])) => Rep1 ctx[aaFk] (a[12], b[13], c[14], d[15], e[16], f[17]) 
(Rep a[12], Rep b[13], Rep c[14], Rep d[15], Rep e[16], Rep f[17], Rep g[18], Sat (ctx[aaEI] a[12]), Sat (ctx[aaEI] b[13]), Sat (ctx[aaEI] c[14]), Sat (ctx[aaEI] d[15]), Sat (ctx[aaEI] e[16]), Sat (ctx[aaEI] f[17]), Sat (ctx[aaEI] g[18])) => Rep1 ctx[aaEI] (a[12], b[13], c[14], d[15], e[16], f[17], g[18]) 

getRepC :: Rep b => c b -> R bSource

Access a representation, given a proxy

toR :: R1 c a -> R aSource

Transform a parameterized rep to a vanilla rep

rTup2_1 :: forall a b ctx. (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a, b)Source

rList1 :: forall a ctx. Rep a => ctx a -> ctx [a] -> R1 ctx [a]Source