                 return array.debugDescription
             case .Mapping(let dictionary):
                 return dictionary.debugDescription
+            case .Null(let error) where error != nil :
+                return error!.debugDescription
             default:
                 return "null"
             }

    public subscript(index: Int) -> JSON {
        get {
            switch self {
            case .Sequence(let array) where array.count > index:
                return array[index]
            default:
                return .Null(NSError(domain: SwiftyJSONErrorDomain, code: 0, userInfo: nil))
            }
        }
    }

                }
            }
            self = .Mapping(aJSONDictionary)
        case let null as NSNull:
            self = .Null(nil)
        default:
            self = .Null(NSError(domain: ErrorDomain, code: ErrorUnsupportedType, userInfo: [NSLocalizedDescriptionKey: "It is a unsupported type"]))
        }
    }
}

//MARK: - Error
let ErrorDomain: String! = "SwiftyJSONErrorDomain"

var ErrorUnsupportedType: Int { get { return 999 }}
var ErrorIndexOutOfBounds: Int { get { return 900 }}
var ErrorWrongType: Int { get { return 901 }}
var ErrorNotExist: Int { get { return 500 }}

// MARK: - Subscript
extension JSON {
