sig
val map : ('a -> 'b) -> 'a option -> 'b option
val map_none : 'a -> 'a option -> 'a
val unit_bool : unit option -> bool
val extract : 'a option -> 'a
val iter : ('a -> unit) -> 'a option -> unit
val bind : 'a option -> ('a -> 'b option) -> 'b option
val is_some : 'a option -> bool
val flatten : 'a option option -> 'a option
val to_list : 'a option -> 'a list
end