 }
 
 extension Array: JSONable {
-    public static func fromJSON(_ x: JSONValue) -> Array? {
-        return x.values() as? Array
+    public static func fromJSON(_ json: JSONValue) -> Array? {
+        return json.values() as? Array
     }
     
-    public static func toJSON(_ x: Array) -> JSONValue {
+    public static func toJSON(_ arr: Array) -> JSONValue {
         do {
-            return try JSONValue(array: x)
+            return try JSONValue(array: arr)
         } catch {
             return JSONValue.null
         }

        }
    }
    
    public class func toJSON(_ xs: NSNull) -> JSONValue {
        return JSONValue.null
    }
}

        }
    }
    
    public class func toJSON(_ num: NSNumber) -> JSONValue {
        if num.isBool {
            return JSONValue.bool(num.boolValue)
        }
        else if num.isReal {
            return JSONValue.number(.fraction(num.doubleValue))
        }
        else {
            return JSONValue.number(.int(num.int64Value))
        }
    }
}

extension String: JSONable {
    public static func fromJSON(_ json: JSONValue) -> String? {
        switch json {
        case let .string(n):
            return n
        default:
