val string : 'a -> [> `String of 'a ]val int : 'a -> [> `Int of 'a ]val bool : 'a -> [> `Bool of 'a ]val option : ('a -> [> `Null ] as 'b) -> 'a option -> 'bval list : ('a -> 'b) -> 'a list -> [> `List of 'b list ]val pretty_to_string : (t -> string) ref