sig
  val map : ('-> 'b) -> 'a option -> 'b option
  val do_option : ('-> 'b) -> 'a option -> 'b option
  val iter : ('-> unit) -> 'a option -> unit
end