         return lhs.rawArray as NSArray == rhs.rawArray as NSArray
     case (.Dictionary, .Dictionary):
         return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary
+    case (.Unknown, .Unknown):
+        return lhs.rawUnknown! === rhs.rawUnknown!
     case (.Null, .Null):
         return true
     default:

                return self.rawNumber
            case .Bool:
                return self.rawNumber
            default:
                return self.rawNull
            }
        }

    private var rawDictionary: [String : AnyObject] = [:]
    private var rawString: String = ""
    private var rawNumber: NSNumber = 0
    private var rawUnknown: AnyObject? = nil
    private var rawNull: NSNull = NSNull()
    /// Private type
    private var _type: Type = .Null
