     }
     
     func unwrap(_ value: Primitive?) throws -> Int? {
-        guard let primitiveValue = value else {
+        guard let primitiveValue = value, !(primitiveValue is NSNull) else {
             return nil
         }
         

    }
    
    func unwrap(_ value: Primitive?) throws -> Bool? {
        guard let primitiveValue = value else {
            return nil
        }
        

        self.codingPath.removeLast()
        return ret
    }
    
    func with<T>(replacedPath path: [CodingKey?], _ work: () throws -> T) rethrows -> T {
        let originalPath = self.codingPath
        self.codingPath = path
        let ret: T = try work()
        self.codingPath = originalPath
        return ret
    }
}

// - MARK: Shared Super Key
