Sourceval string : 'a -> [> `String of 'a ]
Sourceval int : 'a -> [> `Int of 'a ]
Sourceval bool : 'a -> [> `Bool of 'a ]
Sourceval option : ('a -> [> `Null ] as 'b) -> 'a option -> 'b
Sourceval list : ('a -> 'b) -> 'a list -> [> `List of 'b list ]