PreviousUpNext

15.3.285  src/lib/compiler/front/typer/types/more-type-types.api

## more-type-types.api 
#
# Types for core predefined stuff: void, bools, chars, ints, strings, lists, tuples, records,
# plus somewhat more exotic stuff like exceptions, fates, suspensions and spinlocks.
 
# Compiled by:
#     src/lib/compiler/front/typer/typer.sublib

stipulate
    package sta =  stamp;                                                       # stamp                         is from   src/lib/compiler/front/typer-stuff/basics/stamp.pkg
    package tdt =  type_declaration_types;                                      # type_declaration_types        is from   src/lib/compiler/front/typer-stuff/types/type-declaration-types.pkg
    package vh  =  varhome;                                                     # varhome                       is from   src/lib/compiler/front/typer-stuff/basics/varhome.pkg
herein

    api More_Type_Types {
        #
        arrow_stamp:  sta::Stamp;
        arrow_type:    tdt::Type; 

        --> : (tdt::Typoid, tdt::Typoid) -> tdt::Typoid;

        is_arrow_type:      tdt::Typoid -> Bool;
        domain:             tdt::Typoid -> tdt::Typoid;
        range:              tdt::Typoid -> tdt::Typoid;

        int_type:           tdt::Type;     int_typoid:          tdt::Typoid;
        int1_type:          tdt::Type;     int1_typoid:         tdt::Typoid;
        int2_type:          tdt::Type;     int2_typoid:         tdt::Typoid;
        multiword_int_type: tdt::Type;     multiword_int_typoid:tdt::Typoid;
        float64_type:       tdt::Type;     float64_typoid:      tdt::Typoid;
        unt_type:           tdt::Type;     unt_typoid:          tdt::Typoid;
        unt8_type:          tdt::Type;     unt8_typoid:         tdt::Typoid;
        unt1_type:          tdt::Type;     unt1_typoid:         tdt::Typoid;
        unt2_type:          tdt::Type;     unt2_typoid:         tdt::Typoid;
        string_type:        tdt::Type;     string_typoid:       tdt::Typoid;
        char_type:          tdt::Type;     char_typoid:         tdt::Typoid;
        exception_type:     tdt::Type;     exception_typoid:    tdt::Typoid;

        fate_type:                      tdt::Type; 
        control_fate_type:              tdt::Type; 
        rw_vector_type:                 tdt::Type; 
        ro_vector_type:                 tdt::Type;

        chunk_type:                     tdt::Type;
        c_function_type:                tdt::Type;
        un8_rw_vector_type:             tdt::Type;
        float64_rw_vector_type:         tdt::Type;
        spinlock_type:                  tdt::Type;

        void_type:                      tdt::Type; 
        void_typoid:                    tdt::Typoid;

        record_typoid:   List( (tdt::Label, tdt::Typoid) ) -> tdt::Typoid;
        tuple_typoid:    List( tdt::Typoid ) -> tdt::Typoid;

        # Get the types of a tuple-type's fields 

        get_fields:  tdt::Typoid -> Null_Or( List( tdt::Typoid ) );

        bool_signature:    vh::Valcon_Signature;

        bool_type:      tdt::Type; 
        bool_typoid:    tdt::Typoid;

        false_valcon:   tdt::Valcon;
        true_valcon:    tdt::Valcon;

        #  Unnecessary; removed by appel
        #
        #  my optionTyp:  tdt::Type 
        #  my NONEDcon:      tdt::Valcon
        #  my SOMEDcon:      tdt::Valcon


        ref_type:                       tdt::Type; 
        ref_pattern_typoid:             tdt::Typoid;
        ref_valcon:                     tdt::Valcon;

        list_type:                      tdt::Type; 
        nil_valcon:                     tdt::Valcon;
        cons_valcon:                    tdt::Valcon;

        unrolled_list_type:             tdt::Type; 
        unrolled_list_nil_valcon:       tdt::Valcon;
        unrolled_list_cons_valcon:      tdt::Valcon;

        antiquote_fragment_type:        tdt::Type;                                      # These three support a nonstandard undocumented antiquote language extension
        antiquote_valcon:               tdt::Valcon;
        quote_valcon:                   tdt::Valcon;

        suspension_type:                tdt::Type;
        suspension_pattern_typoid:      tdt::Typoid;        
        dollar_valcon:                  tdt::Valcon;    

    }; #  Api More_Type_Types 
end;

## Copyright 1996 by AT&T Bell Laboratories 
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext