let map o ~f =
    match o with
    | None -> None
    | Some s -> Some (f s)