sig
  exception Type_error of string * Location.location
  val equals : Abstract.eva_type -> Abstract.eva_type -> bool
  val type_lterm :
    Symbols.eva_symbol_list -> Abstract.eva_lterm -> Abstract.eva_type
  val type_lterm_laeva :
    Symbols.eva_symbol_list -> Abstract.eva_lterm -> Abstract.eva_type
  val coerce_lterm :
    Symbols.eva_symbol_list -> Abstract.eva_lterm -> Abstract.eva_lterm
  val descend_coerce_lterm :
    Symbols.eva_symbol_list -> Abstract.eva_lterm -> Abstract.eva_lterm
  val cast : Abstract.eva_lterm -> Abstract.eva_type -> Abstract.eva_lterm
  val coerce_spec :
    Symbols.eva_symbol_list -> Abstract.eva_spec -> Abstract.eva_spec
end