module TransSurface: sig .. end
Translating the surface syntax down into the core language syntax.
Translating the surface syntax down into the core language syntax.
val translate_type : KindCheck.env -> SurfaceSyntax.typ -> TypeCore.typ
translate_type translates a type.
val translate_data_type_group : (KindCheck.env -> Variable.name * Kind.kind -> KindCheck.env) ->
KindCheck.env ->
SurfaceSyntax.data_type_group -> KindCheck.env * TypeCore.data_type_group
translate_data_type_group bind env group translates a data type group.
The bind function is passed a pair of a data type name and its kind,
and must extend the environment in a suitable way (i.e., this name could
be mapped to a fresh variable, or to an existing point; see KindCheck).
The function returns a pair of an environment that has been extended with
new types and new data constructors, and a translated data type group.
val translate_implementation : TypeCore.env ->
SurfaceSyntax.toplevel_item list -> Expressions.implementation
translate_implementation translates a compilation unit.
val translate_interface : TypeCore.env -> SurfaceSyntax.toplevel_item list -> Expressions.interface
translate_interface translates an interface.