


The compiler Type_Junk api defines access to functionality in support of compiler handling of type information.
The Type_Junk api is implemented by the type_junk package.
The Type_Junk api source code is in src/lib/compiler/front/typer-stuff/types/type-junk.api.
The above information is manually maintained and may contain errors.
api { equality_property_to_string : types::eq_type::Info -> String;
make_incomplete_record_type_variable : (List(((symbol::Symbol , types::Type)) ) , Int)
-> types::Type_Variable;
make_user_type_variable : symbol::Symbol -> types::Type_Variable;
make_overloaded_literal_type_variable : (types::Literal_Kind , line_number_db::Source_Code_Region
, List(String ))
-> types::Type;
make_overloaded_type_variable_and_type : List(String ) -> types::Type;
make_meta_type_variable_and_type : (Int , List(String )) -> types::Type;
typ_name : types::Typ -> symbol::Symbol;
typ_stamp : types::Typ -> stamp::Stamp;
typ_path : types::Typ -> ?.inverse_path::Inverse_Path;
typ_stamppath : types::Typ -> ?.stamppath::Stamppath;
typ_arity : types::Typ -> Int;
set_typ_path : (types::Typ , ?.inverse_path::Inverse_Path)
-> types::Typ;
typs_are_equal : (types::Typ , types::Typ) -> Bool;
make_constructor_type : (types::Typ , List(types::Type )) -> types::Type;
prune : types::Type -> types::Type;
typevar_refs_are_equal : (types::Typevar_Ref , types::Typevar_Ref) -> Bool;
resolve_type_variables_to_typescheme_slots : List(types::Typevar_Ref ) -> Void;
resolve_type_variables_to_typescheme_slots_1 : List(types::Typevar_Ref )
-> types::Type_Scheme_Arg_Eq_Properties;
exception BAD_TYPE_REDUCTION;
map_constructor_type_dot_typ : (types::Typ -> types::Typ)
-> types::Type -> types::Type;
apply_type_scheme : (types::Type_Scheme , List(types::Type ))
-> types::Type;
reduce_type : types::Type -> types::Type;
head_reduce_type : types::Type -> types::Type;
types_are_equal : (types::Type , types::Type) -> Bool;
typ_equality : (types::Typ , types::Typ) -> Bool;
make_typeagnostic_api : Int -> types::Type_Scheme_Arg_Eq_Properties;
datatyp_to_typ : types::Valcon -> types::Typ;
datatyp_to_type : (types::Typ , Null_Or(types::Type )) -> types::Type;
match_scheme : (types::Type_Scheme , types::Type) -> types::Type;
drop_macro_expanded_indirections_from_type : types::Type -> Void;
instantiate_if_type_scheme : types::Type -> (types::Type , List(types::Type ));
pkg_type_matches_api_type : {type_per_api:types::Type, type_per_pkg:types::Type}
-> Bool;
type_variable_of_type : types::Type -> types::Typevar_Ref;
get_recursive_type_variable_map : (Int , types::Type) -> Int -> Bool;
label_is_greater_than : (symbol::Symbol , symbol::Symbol) -> Bool;
is_value : {inlining_info_says_it_is_pure:inlining_information::Inlining_Information -> Bool}
-> deep_syntax::Deep_Expression -> Bool;
is_variable_type : types::Type -> Bool;
sort_fields : List(((deep_syntax::Numbered_Label , X)) )
-> List(((deep_syntax::Numbered_Label , X)) );
map_unzip : (X -> (Y , Z)) -> List(X ) -> (List(Y ) , List(Z ));
Typ_Set ;
make_typ_set : Void -> Typ_Set;
insert_typ_into_set : (types::Typ , Typ_Set) -> Typ_Set;
filter_typ_set : (types::Type , Typ_Set) -> List(types::Typ );
datatype_sibling : (Int , types::Typ) -> types::Typ;
extract_datatyp : types::Typ -> List(types::Valcon );
wrap_definition : (types::Typ , stamp::Stamp) -> types::Typ;
unwrap_definition_1 : types::Typ -> Null_Or(types::Typ );
unwrap_definition_star : types::Typ -> types::Typ;
};


