hets -- a heterogenous Specification (CASL) tool setContentsIndex
Haskell.Hatchet.Representation
Synopsis
data Type
= TVar Tyvar
| TCon Tycon
| TAp Type Type
| TGen Int
| TArrow Type Type
| TTuple [Type]
data Tyvar = Tyvar AHsName Kind
data Tycon = Tycon AHsName Kind
prettyPrintTypeM :: Type -> VarName Doc
data Kind
= Star
| Kfun Kind Kind
| KVar Kindvar
newtype Kindvar = Kindvar String
unfoldKind :: Kind -> [Kind]
data Pred = IsIn Class Type
prettyPrintPredM :: Pred -> VarName Doc
data Qual t = (:=>) [Pred] t
prettyPrintQualPredM :: Qual Pred -> VarName Doc
prettyPrintInst :: Inst -> Doc
prettyPrintQualTypeM :: Qual Type -> VarName Doc
type Class = AHsName
type Inst = Qual Pred
type Subst = FiniteMap Tyvar Type
data Scheme = Forall [Kind] (Qual Type)
prettyPrintSchemeM :: Scheme -> VarName Doc
data Assump = (:>:) AHsName Scheme
newtype VarName a = VarName (State -> (a, State))
type VMap = [(Type, String)]
type NameSupply = [String]
data State = State {
vmap :: VMap
names :: NameSupply
}
runVarName :: VMap -> NameSupply -> VarName a -> (a, State)
select :: (State -> a) -> VarName a
getVMap :: VarName VMap
updateVMap :: (Type, String) -> VarName ()
nextName :: VarName String
lookupInMap :: Type -> VarName (Maybe String)
Produced by Haddock version 0.6