 }
 
 /// A protocol that can be used to constrain associated types as `Result`.
-public protocol ResultProtocol {
+internal protocol ResultProtocol {
 	associatedtype Success
 	associatedtype Failure: Swift.Error
 	

}

extension Result: ResultProtocol {
	public init(success: Success) {
		self = .success(success)
	}
	
	public init(failure: Failure) {
		self = .failure(failure)
	}
	
	public var result: Result<Success, Failure> {
		return self
	}
}

		return .init(result: self)
	}
	
	internal var value: Success? {
		switch self {
		case let .success(value): return value
		case .failure: return nil
		}
	}
	
	internal var error: Failure? {
		switch self {
		case .success: return nil
		case let .failure(error): return error
