sig type 'a t = 'a option val default : 'a -> 'a option -> 'a end