Typing.Typecheckingval typecheck :
?event_env:Ast.Syntax.event' Ast.Syntax.annotated Common.Env.env ->
Ast.Syntax.program ->
(Ast.Syntax.type_expr' Common.Env.env
* Ast.Syntax.event' Ast.Syntax.annotated Common.Env.env
* Helper.event_type_value Stdlib.Hashtbl.Make(Stdlib.String).t,
Ast.Error.detailed_error list)
Stdlib.resulttypecheck ?event_env program typechecks the program by ensuring that:
event_env.event_env and expr_env.event_env.val typecheck_expr :
?ty_env:Ast.Syntax.type_expr' Common.Env.env ->
?label_types:Helper.event_type_value Stdlib.Hashtbl.Make(Stdlib.String).t ->
Ast.Syntax.expr ->
(Ast.Syntax.type_expr', Ast.Error.detailed_error list) Stdlib.resulttypecheck_expr ?ty_env ?label_types expr typechecks the expr by ensuring that:
ty_env.label_types.val equal_types : Ast.Syntax.type_expr' -> Ast.Syntax.type_expr' -> bool(tail recursive) equal_types type_1 type_2 indicates whether type expressions type_1 and type_2 are structurally equal .
Returns true if the type_1 and type_2 are structurally equal, and false otherwise.