let bind x f =
    match x with
    | `Ok x -> f x
    | `Error e -> fail e