Module Perk.Type_symbol_table

Utils for the type symbol table

val builtin_types : (string * (Ast.perktype * 'a option)) list
val builtin_types_unlabeled : Ast.perktype list
val rem_ptr : string -> string
val is_builtin_type : string -> (Ast.perktype * 'a option) -> bool
val is_builtin_type_unlabeled : Ast.perktype -> bool
val type_symbol_table : (Ast.perkident, Ast.perktype * string option) Stdlib.Hashtbl.t
val lookup_type : Ast.perkident -> Ast.perktype option
val resolve_count : int Stdlib.ref
val resolve_hit : int Stdlib.ref
val resolve_miss : int Stdlib.ref
val resolve_type : Ast.perktype -> Ast.perktype
val c_type_of_base_type : Ast.perktype -> string
val type_descriptor_of_perktype : ?erase_env:bool -> Ast.perktype -> string
val c_type_of_perktype : ?erase_env:bool -> Ast.perktype -> string
val type_descriptor_of_environment : ?erase_env:bool -> Ast.perkvardesc list -> string
val print_type_symbol_table : unit -> unit
val bind_type : Ast.perktype -> unit
val rebind_type : Ast.perkident -> Ast.perktype -> unit
val used_counter : int Stdlib.ref
val unused_counter : int Stdlib.ref
val called_counter : int Stdlib.ref
val dependencies_of_type : Ast.perktype -> Ast.perkident list
val bind_type_if_needed : Ast.perktype -> unit
val add_code_to_type_binding : Ast.perktype -> string -> unit