Module Basic.Util

exception Type_error of string * t
exception Undefined of string * t
val keys : t -> string list
val values : t -> t list
val combine : t -> t -> t
val member : string -> t -> t
val path : string list -> t -> t option
val index : int -> t -> t
val map : (t -> t) -> t -> t
val to_assoc : t -> (string * t) list
val to_option : (t -> 'a) -> t -> 'a option
val to_bool : t -> bool
val to_bool_option : t -> bool option
val to_number : t -> float
val to_number_option : t -> float option
val to_float : t -> float
val to_float_option : t -> float option
val to_int : t -> int
val to_int_option : t -> int option
val to_list : t -> t list
val to_string : t -> string
val to_string_option : t -> string option
val convert_each : (t -> 'a) -> t -> 'a list
val filter_map : ('a -> 'b option) -> 'a list -> 'b list
val flatten : t list -> t list
val filter_index : int -> t list -> t list
val filter_list : t list -> t list list
val filter_member : string -> t list -> t list
val filter_assoc : t list -> (string * t) list list
val filter_bool : t list -> bool list
val filter_int : t list -> int list
val filter_float : t list -> float list
val filter_number : t list -> float list
val filter_string : t list -> string list