?prevdifflink? - Blame
{-# OPTIONS_GHC -Wall #-} ------------------------------------------------------------------------------- {- | Module : Language.Type.Pretty Description : Pretty-printer of the type representation. Copyright : (c) Paulo Silva License : LGPL Maintainer : paufil@di.uminho.pt Stability : experimental Portability : portable -} ------------------------------------------------------------------------------- module Language.Type.Pretty ( showType ) where import {-# SOURCE #-} Language.Type.Syntax showType :: Type t -> ShowS showType (TVar a) = parens $ showString "TVar " . showString a showType One = showString "One" showType Bool = showString "Bool" showType Char = showString "Char" showType String = showString "String" showType Int = showString "Int" showType Float = showString "Float" showType (Prod a b) = parens $ showString "Prod " . showType a . space . showType b showType (Either a b) = parens $ showString "Either " . showType a . space . showType b showType (Maybe a) = parens $ showString "Maybe " . showType a showType (List a) = parens $ showString "List " . showType a showType (Set a) = parens $ showString "Set " . showType a showType (Map a b) = parens $ showString "Map " . showType a . space . showType b showType (Fun a b) = parens $ showString "Fun " . showType a . space . showType b showType (Rel a b) = parens $ showString "Rel " . showType a . space . showType b showType (Ord a) = parens $ showString "Ord " . showType a showType (GC a b) = parens $ showString "GC " . showType a . space . showType b ------------------------------------------------------------------------------- parens :: ShowS -> String -> String parens = showParen True ------------------------------------------------------------------------------- space :: ShowS space = showChar ' ' ------------------------------------------------------------------------------- |