      - returns: The source sequence with the side-effecting behavior applied.
      */
     public func `do`(onNext: ((E) throws -> Void)? = nil, onError: ((Swift.Error) throws -> Void)? = nil, onCompleted: (() throws -> Void)? = nil, onSubscribe: (() -> ())? = nil, onSubscribed: (() -> ())? = nil, onDispose: (() -> ())? = nil)
-        -> PrimitiveSequence<Proof, Element> {
+        -> PrimitiveSequence<Trait, Element> {
             return PrimitiveSequence(raw: source.do(
                 onNext: onNext,
                 onError: onError,

    case error(Swift.Error)
}

extension PrimitiveSequenceType where ProofType == SingleProof {
    public typealias SingleObserver = (SingleEvent<ElementType>) -> ()

    public static func create(subscribe: @escaping (@escaping SingleObserver) -> Disposable) -> PrimitiveSequence<ProofType, ElementType> {
        let source = Observable<ElementType>.create { observer in
            return subscribe { event in
                switch event {


     - returns: An observable sequence whose observers will never get called.
     */
    public static func never() -> PrimitiveSequence<Trait, Element> {
        return PrimitiveSequence(raw: Observable.never())
    }

