RepLib-0.5.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 # 

Methods

showsPrec :: Int -> R1 c a -> ShowS #

show :: R1 c a -> String #

showList :: [R1 c a] -> ShowS #

class Sat a where Source #

Minimal complete definition

dict

Methods

dict :: a Source #

Instances

Show a => Sat (ShowD a) Source # 

Methods

dict :: ShowD a Source #

Bounded a => Sat (BoundedD a) Source # 

Methods

dict :: BoundedD a Source #

Ord a => Sat (OrdD a) Source # 

Methods

dict :: OrdD a Source #

Eq a => Sat (EqD a) Source # 

Methods

dict :: EqD a Source #

Shrink a => Sat (ShrinkD a) Source # 

Methods

dict :: ShrinkD a Source #

Enumerate a => Sat (EnumerateD a) Source # 

Methods

dict :: EnumerateD a Source #

Generate a => Sat (GenerateD a) Source # 

Methods

dict :: GenerateD a Source #

Zero a => Sat (ZeroD a) Source # 

Methods

dict :: ZeroD a Source #

GSum a => Sat (GSumD a) Source # 

Methods

dict :: GSumD a Source #

Lreduce b a => Sat (LreduceD b a) Source # 

Methods

dict :: LreduceD b a Source #

Rreduce b a => Sat (RreduceD b a) Source # 

Methods

dict :: RreduceD b a Source #

(Unify n a b, Subst n a b, Occurs n a b) => Sat (UnifySubD n a b) Source # 

Methods

dict :: UnifySubD n a b Source #

class Rep a => Rep1 ctx a where Source #

Minimal complete definition

rep1

Methods

rep1 :: R1 ctx a Source #

Instances

Rep1 ctx () Source # 

Methods

rep1 :: R1 ctx () Source #

Rep1 ctx Rational Source # 

Methods

rep1 :: R1 ctx Rational Source #

Rep1 ctx IOError Source # 

Methods

rep1 :: R1 ctx IOError Source #

Rep1 ctx Double Source # 

Methods

rep1 :: R1 ctx Double Source #

Rep1 ctx Float Source # 

Methods

rep1 :: R1 ctx Float Source #

Rep1 ctx Integer Source # 

Methods

rep1 :: R1 ctx Integer Source #

Rep1 ctx Char Source # 

Methods

rep1 :: R1 ctx Char Source #

Rep1 ctx Int Source # 

Methods

rep1 :: R1 ctx Int Source #

(Rep a, Sat (ctx a), Sat (ctx [a])) => Rep1 ctx [a] Source # 

Methods

rep1 :: R1 ctx [a] Source #

(Rep a, Sat (ctx a)) => Rep1 ctx (IO a) Source # 

Methods

rep1 :: R1 ctx (IO a) Source #

(Rep a, Sat (ctx a), Rep b, Sat (ctx b)) => Rep1 ctx (a, b) Source # 

Methods

rep1 :: R1 ctx (a, b) Source #

(Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx (a -> b) Source # 

Methods

rep1 :: R1 ctx (a -> b) Source #

(Rep a, Rep b, Sat (ctx a), Sat (ctx b)) => Rep1 ctx ((:~:) * a b) Source # 

Methods

rep1 :: R1 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 #