-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Make presentations for data types.
--   
--   Make presentations for data types.
@package present
@version 4.1.0


-- | Generate presentations for types.
module Present

-- | Present whatever in scope is called <tt>it</tt>
presentIt :: Q Exp

-- | Make a presenter for the name
presentName :: Name -> Q Exp

-- | Present the value with the given type.
presentType :: Q Type -> Q Exp

-- | To a familiar Show-like string.
toShow :: Bool -> Value -> String

-- | Produce a presentation of the value to WHNF.
toWHNF :: [Integer] -> Value -> WHNF

-- | Make JSON from WNHF.
whnfJson :: WHNF -> String
presentShow :: Q Type -> Q Exp
data Value
DataValue :: String -> String -> [Value] -> Value
TypeVariableValue :: String -> Value
PrimitiveValue :: String -> Value
FunctionValue :: String -> Value
CharValue :: String -> String -> Value
IntegerValue :: String -> String -> Value
ChoiceValue :: String -> [(String, Value)] -> Value
RecordValue :: String -> String -> [(String, Value)] -> Value
ListValue :: String -> [Value] -> Value
StringValue :: String -> String -> Value
TupleValue :: String -> [Value] -> Value
ExceptionValue :: String -> String -> Value

-- | A presentation of a value up to WHNF.
data WHNF
DataWHNF :: String -> String -> [(String, [Integer])] -> WHNF
TypeVariableWHNF :: String -> WHNF
PrimitiveWHNF :: String -> WHNF
FunctionWHNF :: String -> WHNF
CharWHNF :: String -> String -> WHNF
IntegerWHNF :: String -> String -> WHNF
ChoiceWHNF :: String -> [(String, [Integer])] -> WHNF
RecordWHNF :: String -> String -> [(String, String, [Integer])] -> WHNF
ListConsWHNF :: String -> [Integer] -> [Integer] -> WHNF
ListEndWHNF :: String -> WHNF
StringWHNF :: String -> String -> WHNF
TupleWHNF :: String -> [(String, [Integer])] -> WHNF
ExceptionWHNF :: String -> String -> WHNF
class Present0 a
present0 :: Present0 a => (String, a -> Value)
class Present1 a
present1 :: Present1 a => (String, x -> Value) -> (String, a x -> Value)
class Present2 a
present2 :: Present2 a => (String, x -> Value) -> (String, y -> Value) -> (String, a x y -> Value)
class Present3 a
present3 :: Present3 a => (String, x -> Value) -> (String, y -> Value) -> (String, z -> Value) -> (String, a x y z -> Value)
class Present4 a
present4 :: Present4 a => (String, x -> Value) -> (String, y -> Value) -> (String, z -> Value) -> (String, z0 -> Value) -> (String, a x y z z0 -> Value)
class Present5 a
present5 :: Present5 a => (String, x -> Value) -> (String, y -> Value) -> (String, z -> Value) -> (String, z0 -> Value) -> (String, z1 -> Value) -> (String, a x y z z0 z1 -> Value)
class Present6 a
present6 :: Present6 a => (String, x -> Value) -> (String, y -> Value) -> (String, z -> Value) -> (String, z0 -> Value) -> (String, z1 -> Value) -> (String, z2 -> Value) -> (String, a x y z z0 z1 z2 -> Value)
instance GHC.Show.Show Present.WHNF
instance GHC.Show.Show Present.Value
instance GHC.Classes.Eq Present.TypeConstructor
instance GHC.Classes.Eq Present.TypeVariable
