         case let value as V:
             self.resolve(value: value)
         default:
-            self.onFulfilled(some! as V)
+            self.onFulfilled(some! as V) // TODO: Type Error
         }
     }
     

        
        return subPromise
    }

    public func then<N>(
        #onFulfilled: (value: V) -> Promise<N>,
        onRejected: (reason: NSError) -> Promise<N>

{
    // MARK: - Type

    public typealias NextType = Promise<Any?>
    public typealias ValueType = V
    public typealias ReasonType = NSError

