let map_opt f = function
    None -> None
  | Some v -> Some (f v)