 }
 
 public func =<|<T: JSONStaticCreatable>(inout lhs: T?, value: T.JSONType?) {
+    lhs = <|value
+}
+    
+public func =<|<T: JSONCreatable>(inout lhs: [T], value: [T.JSONType]) {
+    lhs = <|value
+}
+
+public func =<|<T: JSONStaticCreatable>(inout lhs: [T], value: [T.JSONType]) {
+    if let val: [T] = <|value { lhs = val }
+}
+
+public func =<|<T: JSONCreatable>(inout lhs: [T]?, value: [T.JSONType]?) {
+    lhs = <|value
+}
+
+public func =<|<T: JSONStaticCreatable>(inout lhs: [T]?, value: [T.JSONType]?) {
     lhs = <|value
 }
 #endif

        output =<| value
    }
    
    public static func map<T>(value: JSONObject?, to output: inout T) where T: JSONCreatable {
        output =<| value
    }
    
    public static func map<T>(value: JSONObject?, to output: inout T) where T: JSONStaticCreatable {
        output =<| value
    }
    
    public static func map<T>(value: JSONObject?, to output: inout T?) where T: JSONCreatable {
        output =<| value
    }
    
    public static func map<T>(value: JSONObject?, to output: inout T?) where T: JSONStaticCreatable {
        output =<| value
    }
    
    public static func map<T>(value: T.JSONType, to output: inout T) where T: JSONCreatable {
        output =<| value
    }
    
    public static func map<T>(value: T.JSONType, to output: inout T) where T: JSONStaticCreatable {
        output =<| value
    }
    
    public static func map<T>(value: T.JSONType?, to output: inout T?) where T: JSONCreatable {
        output =<| value
    }
    
    public static func map<T>(value: T.JSONType?, to output: inout T?) where T: JSONStaticCreatable {
        output =<| value
    }
    #else
    public static func convert<T where T: JSONCreatable>(value: JSONDictionary.Value?) -> T? {
        return <|value
    }
    
    public static func convert<T where T: JSONStaticCreatable>(value: JSONDictionary.Value?) -> T? {
        return <|value
    }
    
    public static func convert<T where T: JSONCreatable>(value: T.JSONType) -> T {
        return <|value
    }
    
    public static func convert<T where T: JSONStaticCreatable>(value: T.JSONType) -> T? {
        return <|value
    }
    

        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: JSONDictionary.Value?, inout to output: T) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: JSONDictionary.Value?, inout to output: T) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: JSONDictionary.Value?, inout to output: T?) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: JSONDictionary.Value?, inout to output: T?) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: JSONObject?, inout to output: [T]) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: JSONObject?, inout to output: [T]) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: JSONObject?, inout to output: [T]?) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: JSONObject?, inout to output: [T]?) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: T.JSONType, inout to output: T) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: T.JSONType, inout to output: T) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: T.JSONType?, inout to output: T?) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: T.JSONType?, inout to output: T?) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: [T.JSONType], inout to output: [T]) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: [T.JSONType], inout to output: [T]) {
        output =<| value
    }
    
    public static func map<T: JSONCreatable>(value: [T.JSONType]?, inout to output: [T]?) {
        output =<| value
    }
    
    public static func map<T: JSONStaticCreatable>(value: [T.JSONType]?, inout to output: [T]?) {
        output =<| value
    }
    #endif
