type 'a t = 'a option
val is_none : 'a t -> boolval is_some : 'a t -> boolval equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> boolval iter : ('a -> unit) -> 'a t -> unitval map : ('a -> 'b) -> 'a t -> 'b tval fold : ('a -> 'b -> 'b) -> 'a t -> 'b -> 'bval value_default : ('a -> 'b) -> default:'b -> 'a t -> 'b