RepLib-0.5.3.2: Generic programming library with representation types

LicenseBSD
Maintainersweirich@cis.upenn.edu
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Generics.RepLib.R1

Description

 

Synopsis

Documentation

data R1 ctx a where Source

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 where Source

Methods

dict :: a Source

Instances

Show a => Sat (ShowD a) 
Bounded a => Sat (BoundedD a) 
Ord a => Sat (OrdD a) 
Eq a => Sat (EqD a) 
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) 
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 where Source

Methods

rep1 :: R1 ctx a Source

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 Ordering 
Rep1 ctx Bool 
(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 ctx (Maybe a) 
Rep a0 => Rep1 ctx (Set a) 
(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 a0, Rep b0, Sat (ctx0 a0), Sat (ctx0 b0)) => Rep1 ctx (Either a b) 
(Rep k0, Rep a0) => Rep1 ctx (Map k a) 
(Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx ((:~:) * a b) 
(Rep a0, Rep b0, Rep c0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0)) => Rep1 ctx (a, b, c) 
(Rep a0, Rep b0, Rep c0, Rep d0, Sat (ctx0 a0), Sat (ctx0 b0), Sat (ctx0 c0), Sat (ctx0 d0)) => Rep1 ctx (a, b, c, d) 
(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 ctx (a, b, c, d, e) 
(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 ctx (a, b, c, d, e, f) 
(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 ctx (a, b, c, d, e, f, g) 

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

Access a representation, given a proxy

toR :: R1 c a -> R a Source

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