sig
type t =
Unit
| Int of int64
| Bool of bool
| Float of float
| String of string
| Enum of Value.t list
| Tuple of Value.t list
| Dict of (string * Value.t) list
| Sum of string * Value.t list
| Null
| Value of Value.t
| Arrow of string
| Rec of (string * int64) * Value.t
| Var of (string * int64)
| Ext of (string * int64) * Value.t
val free_vars : Value.t -> (string * int64) list
val equal : Value.t -> Value.t -> bool
val to_string : Value.t -> string
exception Parse_error of string
val of_string : string -> Value.t
end