let bind o ~f = 
    match o with
    | None -> None
    | Some s -> f s