         self.init(value)
     }
 }
+
+extension AAA: Collection {
+
+    public typealias Index = AnyIndex
+
+    public var startIndex: Index {
+        return collection?.startIndex ?? Index(0)
+    }
+
+    public var endIndex: Index {
+        return collection?.endIndex ?? Index(0)
+    }
+
+    public func index(after i: Index) -> Index {
+        return collection?.index(after: i) ?? Index(0)
+    }
+
+    public subscript(i: Index) -> Element {
+        return collection?[i] ?? ()
+    }
+}

        }
        return o
    }
}

extension AAA: ExpressibleByArrayLiteral {

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


extension AAA: ExpressibleByDictionaryLiteral {

    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
        }
