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

     - 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> {
        return PrimitiveSequence(raw: Observable.just(element))
    }


    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 {
