 		return .init(result: self)
 	}
 	
-	public var value: Success? {
+	internal var value: Success? {
 		switch self {
 		case let .success(value): return value
 		case .failure: return nil
 		}
 	}
 	
-	public var error: Failure? {
+	internal var error: Failure? {
 		switch self {
 		case .success: return nil
 		case let .failure(error): return 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
	}
}

}

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