any success value using the given transformation. func map<NewSuccess>((Success) -> NewSuccess) -> Result<NewSuccess, Failure> // Returns a new result, mapping any failure value using the given transformation. func mapError<NewFailure>((Failure) -> NewFailure) -> Result<Success, NewFailure> // Returns a new result, mapping any success value using the given transformation and unwrapping the produced result. func flatMap<NewSuccess>((Success) -> Result<NewSuccess, Failure>) -> Result<NewSuccess, Failure> // Returns a new result, mapping any failure value using the given transformation and unwrapping the produced result. func flatMapError<NewFailure>((Failure) -> Result<Success, NewFailure>) -> Result<Success, NewFailure>