PreviousUpNext

14.5.45  Type_Junk

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;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext