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