Module Typing.Type_env

type type_binding = Ast.Ast_types.Var_name.t * Ast.Ast_types.type_expr
type type_env = type_binding list
val get_var_type : Ast.Ast_types.Var_name.t -> type_env -> Ast.Ast_types.loc -> Ast.Ast_types.type_expr Core.Or_error.t
val get_class_field : Ast.Ast_types.Field_name.t -> Parsing.Parsed_ast.class_defn list -> Parsing.Parsed_ast.class_defn -> Ast.Ast_types.type_expr option -> Ast.Ast_types.loc -> Ast.Ast_types.field_defn Core.Or_error.t
val get_class_methods : Parsing.Parsed_ast.class_defn list -> Parsing.Parsed_ast.class_defn -> Ast.Ast_types.type_expr option -> Ast.Ast_types.loc -> Parsing.Parsed_ast.method_defn list Core.Or_error.t
val get_obj_class_defn : Ast.Ast_types.Var_name.t -> type_env -> Parsing.Parsed_ast.class_defn list -> Ast.Ast_types.loc -> (Parsing.Parsed_ast.class_defn * Ast.Ast_types.type_expr option) Core.Or_error.t

returns class, with any type parameters instantiated

val get_class_defn : Ast.Ast_types.Class_name.t -> Parsing.Parsed_ast.class_defn list -> Ast.Ast_types.loc -> Parsing.Parsed_ast.class_defn Core.Or_error.t
val get_instantiated_class_defn : Ast.Ast_types.Class_name.t -> Parsing.Parsed_ast.class_defn list -> Ast.Ast_types.type_expr option -> Ast.Ast_types.loc -> Parsing.Parsed_ast.class_defn Core.Or_error.t
val get_class_capabilities : Ast.Ast_types.Class_name.t -> Parsing.Parsed_ast.class_defn list -> Ast.Ast_types.capability list Core.Or_error.t
val get_method_capability_annotations : Ast.Ast_types.Class_name.t -> Ast.Ast_types.capability list -> Ast.Ast_types.Capability_name.t list -> Ast.Ast_types.capability list Core.Or_error.t
val check_type_valid : Ast.Ast_types.type_expr -> Parsing.Parsed_ast.class_defn Core.sexp_list -> string -> unit Core.Or_error.t
val check_no_duplicate_var_declarations_in_block : Parsing.Parsed_ast.expr list -> Ast.Ast_types.loc -> unit Core.Or_error.t
val check_identifier_assignable : Parsing.Parsed_ast.class_defn list -> Parsing.Parsed_ast.identifier -> type_env -> Ast.Ast_types.loc -> unit Core.Or_error.t
val check_identifier_consumable : Parsing.Parsed_ast.class_defn list -> Parsing.Parsed_ast.identifier -> type_env -> Ast.Ast_types.loc -> unit Core.Or_error.t
val check_variable_declarable : Ast.Ast_types.Var_name.t -> Ast.Ast_types.loc -> unit Core.Or_error.t