-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Lightweight Implementation of Generics and Dynamics -- -- This is the basic representation types for the LIGD library. It is -- currently incomplete with respect to the paper. We hope to rectify -- that in the future. -- -- See the following publication for details. -- -- J. Cheney and R. Hinze. A lightweight implementation of generics -- and dynamics. In Haskell 2002. pp. 90-104. @package ligd @version 0.2 module Generics.LIGD.Base data Unit Unit :: Unit data (:+:) a b L :: a -> :+: a b R :: b -> :+: a b data (:*:) a b (:*:) :: a -> b -> :*: a b data EP a b EP :: (a -> b) -> (b -> a) -> EP a b from :: EP a b -> (a -> b) to :: EP a b -> (b -> a) data Rep :: * -> * RChar :: Rep Char RInt :: Rep Int RString :: Rep String RUnit :: Rep Unit RSum :: Rep a -> Rep b -> Rep (a :+: b) RProd :: Rep a -> Rep b -> Rep (a :*: b) RCon :: String -> Rep a -> Rep a RType :: EP b a -> Rep a -> Rep b data Rep1 :: (* -> *) -> * -> * RChar1 :: Rep1 g Char RInt1 :: Rep1 g Int RUnit1 :: Rep1 g Unit RSum1 :: Rep1 g a -> Rep1 g b -> Rep1 g (a :+: b) RProd1 :: Rep1 g a -> Rep1 g b -> Rep1 g (a :*: b) RCon1 :: String -> Rep1 g a -> Rep1 g a RType1 :: EP b a -> Rep1 g a -> Rep1 g b RVar1 :: g a -> Rep1 g a data Rep2 :: (* -> * -> *) -> * -> * -> * RChar2 :: Rep2 g Char Char RInt2 :: Rep2 g Int Int RUnit2 :: Rep2 g Unit Unit RSum2 :: Rep2 g a b -> Rep2 g c d -> Rep2 g (a :+: c) (b :+: d) RProd2 :: Rep2 g a b -> Rep2 g c d -> Rep2 g (a :*: c) (b :*: d) RCon2 :: String -> Rep2 g a b -> Rep2 g a b RType2 :: EP a c -> EP b d -> Rep2 g c d -> Rep2 g a b RVar2 :: g a b -> Rep2 g a b instance Show Unit instance (Show a, Show b) => Show (a :+: b) instance (Show a, Show b) => Show (a :*: b) module Generics.LIGD