## adl-type-junk.api
#
# Utilities for manipulating types
# Compiled by:
#
src/lib/compiler/back/low/tools/arch/make-sourcecode-for-backend-packages.libstipulate
package raw = adl_raw_syntax_form; # adl_raw_syntax_form is from
src/lib/compiler/back/low/tools/adl-syntax/adl-raw-syntax-form.pkgherein
# This api is implemented in:
#
src/lib/compiler/back/low/tools/arch/adl-type-junk.pkg #
api Adl_Type_Junk {
#
Level = Int;
#
init: Void -> Void;
make_variable: Level -> raw::Type;
make_ivar: Level -> raw::Type;
unify: ((Void -> String), raw::Type, raw::Type) -> Void;
instantiate: Level -> (raw::Expression, raw::Type) -> (raw::Expression, raw::Type);
generalize: Level -> (raw::Expression, raw::Type) -> (raw::Expression, raw::Type);
lambda: Level -> raw::Type -> raw::Type;
apply: (String, raw::Type, List(raw::Type)) -> raw::Type;
poly: (List(raw::Type), raw::Type) -> raw::Type;
make_type: raw::Sumtype -> (List(raw::Type), raw::Type);
deref: raw::Type -> raw::Type;
};
end;