let map x f =
    match x with
    | `Ok x -> return (f x)
    | `Error e -> fail e