      - parameter element: Single element in the resulting observable sequence.
      - returns: An observable sequence containing the single specified element.
      */
-    public static func just(_ element: Element) -> PrimitiveSequence<Proof, ElementType> {
+    public static func just(_ element: Element) -> PrimitiveSequence<Trait, ElementType> {
         return PrimitiveSequence(raw: Observable.just(element))
     }
 

     - returns: An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully.
     */
    public func retry(_ maxAttemptCount: Int)
        -> PrimitiveSequence<Proof, Element> {
        return PrimitiveSequence(raw: source.retry(maxAttemptCount))
    }


    case completed
}

public extension PrimitiveSequenceType where TraitType == CompleteableTrait, ElementType == Swift.Never {
    public typealias CompleteableObserver = (CompleteableEvent) -> ()

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