 
 extension AAA: ExpressibleByDictionaryLiteral {
 
-    public init(dictionaryLiteral elements: (AnyHashable, Any)...) {
-        var d = [AnyHashable: Any]()
+    public typealias Key = AnyHashable
+    public typealias Value = Any
+
+    public init(dictionaryLiteral elements: (Key, Value)...) {
+        var d = [Key: Value]()
         for (k, v) in elements {
             d[k] = v
         }

        self.init(value)
    }
}

        }
        return o
    }

    /// Return collection if type of `Any` is a collection.
    fileprivate var collection: AnyCollection<Any>? {
        guard o is Collection else {
            return nil
        }
        return AnyCollection<Any>(o as! [Any])
    }

    /// Return array if type of `Any` is an array.
    fileprivate var array: [Any]? {
        return o as? [Any]
    }

    /// Return dictionary if type of `Any` is a dictionary.
    fileprivate var dictionary: [AnyHashable: Any]? {
        return o as? [AnyHashable: Any]
    }
}

extension AAA: ExpressibleByArrayLiteral {

    public typealias Element = Any

    public init(arrayLiteral elements: Element...) {
        self.init(elements)
    }
}
