     
 }
 
-class HNTaskContext<TResult> {
-    let result: TResult?
+class HNTaskContext {
+    let result: Any?
     var error: Any?
     
-    init(result: TResult?) {
+    init(result: Any?) {
         self.result = result
     }
 }


import Foundation

class HNTask<TResult> {

    struct Privates {
        let lock = NSObject()
        var completed: Bool = false
        var result: TResult?
        var error: Any?
        var following: (() -> Void)[] = []
        

        
    }

    var result: Any? {
        get {
            var value: Any?
            locked {
                value = self.privates.result
            }
