PreviousUpNext

15.3.275  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 =  type_variable_set;                   # type_variable_set             is from   src/lib/compiler/front/typer/main/type-variable-set.pkg
    package ty  =  types;                               # types                         is from   src/lib/compiler/front/typer-stuff/types/types.pkg
    package xtc =  expand_typ;                  # expand_typ                    is from   src/lib/compiler/front/typer/modules/expand-typ.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
                        )
                        ->
                        ( ty::Type,
                          tvs::Type_Variable_Set
                        );



        type_typevar_list: ( List( raw::Type_Variable ),
                                        err::Error_Function,
                                        lnd::Source_Code_Region
                                      ) 
                                      ->
                                      List( ty::Typevar_Ref );



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



        type_datatype_declaration: ( {   datatyps:   List( raw::Named_Datatype ),
                                              with_typs:  List( raw::Named_Type )
                                          },
                                          syx::Symbolmapstack,
                                          xtc::Api_Context,
                                          typerstore::Typerstore, 
                                          (ty::Typ -> Bool),
                                          ip::Inverse_Path, 
                                          lnd::Source_Code_Region,
                                          trs::Per_Compile_Info
                                        )
                                        ->
                                        ( List( ty::Typ ),
                                          List( ty::Typ ),
                                          List( ty::Valcon ),
                                          syx::Symbolmapstack
                                        );

        debugging:  Ref( Bool );

    }; #  Api Type_Type 
end;

## COPYRIGHT (c) 1998 Bell Laboratories 
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2013,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext