sig   exception No_value of string   val value : 'a option -> default:'-> 'a   val value_exn : 'a option -> msg:string -> 'a   val map : 'a option -> f:('-> 'b) -> 'b option   val iter : 'a option -> f:('-> unit) -> unit   val value_map : 'a option -> default:'-> f:('-> 'b) -> 'b   val return : '-> 'a option   val bind : 'a option -> f:('-> 'b option) -> 'b option   val ( >>= ) : 'a option -> ('-> 'b option) -> 'b option end