sig
  val translate_type : KindCheck.env -> SurfaceSyntax.typ -> TypeCore.typ
  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
  val translate_implementation :
    TypeCore.env ->
    SurfaceSyntax.toplevel_item list -> Expressions.implementation
  val translate_interface :
    TypeCore.env -> SurfaceSyntax.toplevel_item list -> Expressions.interface
end