sig
type 'a t = {
parse : ctxt:OASISContext.t -> string -> 'a;
update : 'a -> 'a -> 'a;
print : 'a -> string;
}
exception Not_printable
exception Not_combinable
val update_fail : 'a -> 'b -> 'c
val blackbox : 'a OASISValues.t
val string : string OASISValues.t
val string_not_empty : string OASISValues.t
val boolean : bool OASISValues.t
val expandable : string OASISValues.t -> string OASISValues.t
val dot_separated : 'a OASISValues.t -> 'a list OASISValues.t
val comma_separated : 'a OASISValues.t -> 'a list OASISValues.t
val space_separated : string list OASISValues.t
val with_optional_parentheses :
'a OASISValues.t -> 'b OASISValues.t -> ('a * 'b option) OASISValues.t
val opt : 'a OASISValues.t -> 'a option OASISValues.t
val choices : (unit -> string) -> (string * 'a) list -> 'a OASISValues.t
val regexp : Pcre.regexp -> (unit -> string) -> string OASISValues.t
val url : string OASISValues.t
val copyright : string OASISValues.t
val file : string OASISValues.t
val files : string list OASISValues.t
val file_glob : string OASISValues.t
val directory : string OASISValues.t
val modules : string list OASISValues.t
val categories : string list OASISValues.t
val findlib_name : string OASISValues.t
val findlib_full : string OASISValues.t
val internal_library : string OASISValues.t
val command_line : (string * string list) OASISValues.t
end