Option.Smart
val map : ('a -> 'a) -> 'a option -> 'a option
Smart.map f x does the same as map f x except that it tries to share some memory.
Smart.map f x
map f x