RepLib-0.5.1: 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 
Equal1 :: (Rep a, Rep b) => ctx a -> ctx b -> R1 ctx (a :=: b) 

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) 
Lreduce b a => Sat (LreduceD b a) 
Rreduce b a => Sat (RreduceD 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 ctx0 Bool 
Rep1 ctx0 Ordering 
(Rep a, Sat (ctx a), Sat (ctx [a])) => Rep1 ctx [a] 
(Rep a, Sat (ctx a)) => Rep1 ctx (IO a) 
(Rep a0, Sat (ctx0 a0)) => Rep1 ctx0 (Maybe a0) 
(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, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx (a -> b) 
(Rep a0, Rep b0, Sat (ctx0 a0), Sat (ctx0 b0)) => Rep1 ctx0 (Either a0 b0) 
(Rep a0, Rep b0, Rep c0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0)) => Rep1 ctx0 (a0, b0, c0) 
(Rep a0, Rep b0, Rep c0, Rep d0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0)) => Rep1 ctx0 (a0, b0, c0, d0) 
(Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0), Sat (ctx0 e0)) => Rep1 ctx0 (a0, b0, c0, d0, e0) 
(Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Rep f0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0), Sat (ctx0 e0), Sat (ctx0 f0)) => Rep1 ctx0 (a0, b0, c0, d0, e0, f0) 
(Rep a0, Rep b0, Rep c0, Rep d0, Rep e0, Rep f0, Rep g0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0), Sat (ctx0 e0), Sat (ctx0 f0), Sat (ctx0 g0)) => Rep1 ctx0 (a0, b0, c0, d0, e0, f0, g0) 

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