RepLib-0.5.3.4: 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) Source 

class Sat a where Source

Methods

dict :: a Source

Instances

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

class Rep a => Rep1 ctx a where Source

Methods

rep1 :: R1 ctx a Source

Instances

Rep1 ctx () Source 
Rep1 ctx Rational Source 
Rep1 ctx IOError Source 
Rep1 ctx Double Source 
Rep1 ctx Float Source 
Rep1 ctx Integer Source 
Rep1 ctx Char Source 
Rep1 ctx Int Source 
(Rep a, Sat (ctx a), Sat (ctx [a])) => Rep1 ctx [a] Source 
(Rep a, Sat (ctx a)) => Rep1 ctx (IO a) Source 
(Rep a, Sat (ctx a), Rep b, Sat (ctx b)) => Rep1 ctx (a, b) Source 
(Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx (a -> b) Source 
(Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx ((:~:) * a b) Source 

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