             return nrObject.description
         case .String(let strObject):
             return strObject.description
-        case .Null:
-            return "NSNull"
         default:
             return "Nil"
         }

/// - `Dictionary` - this case have an associated value, a dictionary with `NSString` type for keys and `LBJSON` objects for values.
/// - `Number` - this case have an associated value, an `NSNumber` object.
/// - `String` - this case have an associated value, an `NSString` object.
/// - `Null` - this case doesn't have an associated value and is used where `NSNull` if found in the parsed `JSON` object.
/// - `Nil` - this case doesn't have an associated value and is used in the failable initializer when the `JSON` param is `nil` and as a default case.
public enum LBJSON {
    
    case Array([LBJSON])
    case Dictionary([NSString:LBJSON])
    case Number(NSNumber)
    case String(NSString)
    case Null
    case Nil
    
    

        return leftObject.isEqualToNumber(rightObject)
    case (.String(let leftObject), .String(let rightObject)):
        return leftObject.isEqualToString(rightObject as String)
    case (.Nil, .Nil):
        return true
    default:
