PreviousUpNext

15.3.277  src/lib/compiler/front/typer/main/type-type.api

## type-type.api -- typecheck a type.

# Compiled by:
#     src/lib/compiler/front/typer/typer.sublib

###                   "The perplexing subject of polymorphism."
###
###                                    -- Charles Darwin
###                                       Life & Letters, 1887



stipulate
    package ds  =  deep_syntax;                         # deep_syntax                   is from   src/lib/compiler/front/typer-stuff/deep-syntax/deep-syntax.pkg
    package err =  error_message;                       # error_message                 is from   src/lib/compiler/front/basics/errormsg/error-message.pkg
    package ip  =  inverse_path;                        # inverse_path                  is from   src/lib/compiler/front/typer-stuff/basics/symbol-path.pkg
    package lnd =  line_number_db;                      # line_number_db                is from   src/lib/compiler/front/basics/source/line-number-db.pkg
    package raw =  raw_syntax;                          # raw_syntax                    is from   src/lib/compiler/front/parser/raw-syntax/raw-syntax.pkg
    package syx =  symbolmapstack;                      # symbolmapstack                is from   src/lib/compiler/front/typer-stuff/symbolmapstack/symbolmapstack.pkg
    package trs =  typer_junk;                          # typer_junk                    is from   src/lib/compiler/front/typer/main/typer-junk.pkg
    package tvs =  typevar_set;                 # typevar_set           is from   src/lib/compiler/front/typer/main/type-variable-set.pkg
    package tdt =  type_declaration_types;              # type_declaration_types        is from   src/lib/compiler/front/typer-stuff/types/type-declaration-types.pkg
    package xtc =  expand_type;                         # expand_type                   is from   src/lib/compiler/front/typer/modules/expand-type.pkg
#    package vac =  variables_and_constructors;         # variables_and_constructors    is from   src/lib/compiler/front/typer-stuff/deep-syntax/variables-and-constructors.pkg
herein

    api Type_Type {
        #
        type_type: ( raw::Any_Type,
                     syx::Symbolmapstack,
                     err::Error_Function,
                     lnd::Source_Code_Region
                   )
                   ->
                   ( tdt::Typoid,
                     tvs::Typevar_Set
                   );



        type_typevar_list: ( List( raw::Typevar ),
                             err::Error_Function,
                             lnd::Source_Code_Region
                           ) 
                           ->
                           List( tdt::Typevar_Ref );



        type_type_declaration: ( List( raw::Named_Type ),
                                 syx::Symbolmapstack,
                                 ip::Inverse_Path,
                                 lnd::Source_Code_Region,
                                 trs::Per_Compile_Stuff
                               )
                               ->
                               ( ds::Declaration,
                                 syx::Symbolmapstack
                               );



        type_sumtype_declaration: ( {   sumtypes:   List( raw::Sumtype ),
                                         with_types:  List( raw::Named_Type )
                                     },
                                     syx::Symbolmapstack,
                                     xtc::Api_Context,
                                     typerstore::Typerstore, 
                                     (tdt::Type -> Bool),
                                     ip::Inverse_Path, 
                                     lnd::Source_Code_Region,
                                     trs::Per_Compile_Stuff
                                   )
                                   ->
                                   ( List( tdt::Type ),
                                     List( tdt::Type ),
                                     List( tdt::Valcon ),
                                     syx::Symbolmapstack
                                   );

        debugging:  Ref( Bool );

    }; #  Api Type_Type 
end;

## COPYRIGHT (c) 1998 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