hets -- a heterogenous Specification (CASL) tool set
Contents
Index
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