type t = | Unit| Bool| Float| Char| String| Int| Tuple of t list| Dict of (string * [ `RW | `RO ] * t) list| Sum of (string * t list) list| Var of string| Poly of string| Arrow of t * t| Apply of string * t| Option of t| List of t| TTODO of string
val add_new_type : string -> t -> unitval get_type : string -> ttype v = | VUnit| VBool of bool| VFloat of float| VInt of int| VChar of char| VString of string| VTuple of v list| VDict of (string * v) list| VSum of string * v list| VVar of string * int64| VArrow of string| VNone| VSome of v| VList of v list| VRef of v| VTODO of string
val vof_float : float -> vval vof_string : string -> vval vof_list : ('a -> v) -> 'a list -> vval vof_option : ('a -> v) -> 'a option -> vval vof_ref : ('a -> v) -> 'a ref -> vval float_ofv : v -> floatval string_ofv : v -> stringval list_ofv : (v -> 'a) -> v -> 'a listval option_ofv : (v -> 'a) -> v -> 'a optionval string_of_v : v -> stringval map_v : f:(k:(v -> v) -> v -> v) -> v -> vval map_of_unit : unit -> unitval map_of_bool : bool -> boolval map_of_int : int -> intval map_of_float : float -> floatval map_of_char : char -> charval map_of_string : string -> stringval map_of_ref : 'a -> 'b -> 'bval map_of_option : ('a -> 'b) -> 'a option -> 'b optionval map_of_list : ('a -> 'a) -> 'a list -> 'a listval v_unit : unit -> unitval v_bool : bool -> unitval v_float : float -> unitval v_string : string -> unitval v_option : ('a -> unit) -> 'a option -> unitval v_list : ('a -> unit) -> 'a list -> unitval v_ref : ('a -> unit) -> 'a ref -> unitval v_either : ('a -> unit) -> ('b -> unit) -> ('a, 'b) Common.either -> unitval v_either3 :
('a -> unit) ->
('b -> unit) ->
('c -> unit) ->
('a, 'b, 'c) Common.either3 ->
unit