sig
  type value_exports = (Variable.name * TypeCore.var) list
  type datacon_exports =
      (TypeCore.var * Datacon.name * SurfaceSyntax.datacon_info) list
  val bind_implementation_values :
    TypeCore.env -> Exports.value_exports -> TypeCore.env
  val bind_implementation_types :
    TypeCore.env ->
    TypeCore.data_type_group ->
    TypeCore.var list -> Exports.datacon_exports -> TypeCore.env
  val bind_interface_value :
    TypeCore.env ->
    Module.name -> Variable.name -> TypeCore.var -> TypeCore.env
  val bind_interface_types :
    TypeCore.env ->
    Module.name ->
    TypeCore.data_type_group ->
    TypeCore.var list -> Exports.datacon_exports -> TypeCore.env
  val find_qualified_var :
    TypeCore.env -> Module.name -> Variable.name -> TypeCore.var
  val find_unqualified_var : TypeCore.env -> Variable.name -> TypeCore.var
end