Module TypeChecker

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