     associatedtype Failure : Error
 
     /// Returns the value for `.success` or nil if this is a `.failure`
-    var value: Success? { get }
+    var resultValue: Success? { get }
 
     /// Returns the error for `.failure` or nil if this is a `.success`
-    var error: Failure? { get }
+    var resultError: Failure? { get }
 
     /// Must be able to initialize with an error
     init(error: Failure)


    /// Chains one channel to the next only if the result was successful
    @inlinable func successfully<Source2, Pulse2>(_ next: @escaping (Self.Pulse.Success) -> Channel<Source2, Pulse2>) -> Channel<Self.Source, Pulse2> where Self.Pulse : ResultType, Pulse2 : ResultType, Self.Pulse.Failure == Pulse2.Failure {
        return alternate(to: { next($0.value!).anySource() }, unless: { pulse in
            if let error = pulse.error {
                return errorChannel(source: (), error: error)
            } else {
                return .none // continue on to the next channel

    /// Chains one channel to the next only if the result was successful
    @inlinable func then<Source2, Pulse2>(_ next: Channel<Source2, Pulse2>) -> Channel<Self.Source, (Pulse2, Self.Pulse)> where Self.Pulse : ResultType, Pulse2 : ResultType, Self.Pulse.Failure == Pulse2.Failure {
        return alternate(to: { _ in next }, unless: { pulse in
            if let error = pulse.resultError {
                return errorChannel(source: next.source, error: error)
            } else {
                return .none // continue on to the next channel
