-- 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.1 module Generics.LIGD.Base data Unit Unit :: Unit data (:+:) a b Inl :: a -> :+: a b Inr :: b -> :+: a b data (:*:) a b (:*:) :: a -> b -> :*: a b data EP b c EP :: (b -> c) -> (c -> b) -> EP b c from :: EP b c -> (b -> c) to :: EP b c -> (c -> b) data Rep t 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 g a 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 g a b 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)