sig
  val default : '-> 'a option -> 'a
  val get : 'a option -> 'a
  val map : ('-> 'b) -> 'a option -> 'b option
end