module TypeChecker: sig
.. end
This is the top of the pyramid: the module that actually performs
type-checking.
val check_declaration_group : TypeCore.env ->
ExpressionsCore.definitions ->
ExpressionsCore.toplevel_item list ->
TypeCore.env * ExpressionsCore.toplevel_item list *
(Variable.name * TypeCore.var) list
check_declaration_group env declarations items
type-checks a set of
top-level declarations
; in order to do that, it will end up opening certain
binders, which is why it takes a list of items
which will be correctly
transformed so as to refer to the variables that have been opened. It returns
an environment, the transformed items
, and the list of opened variables.
val check_function_call : TypeCore.env ->
?annot:TypeCore.typ ->
TypeCore.var -> TypeCore.var -> TypeCore.env * TypeCore.typ