  */
 
 
-public struct OrderedDictionary<T>: Swift.Collection {
+public class OrderedDictionary<T>: Swift.Collection {
     public typealias Index = Array<T>.Index
     public typealias _Element = [T]
     

        add(values)
    }
    
    public mutating func add(_ values:[(String, T)]) {
        for (key, value) in values {
            self[key] = [value]
        }
    }
    
    public mutating func add(_ values:[(String, _Element)]) {
        for (key, value) in values {
            self[key] = value
        }
    }
    
    public mutating func add(_ key:String, values:[T]) {
        self[key] = values
    }
    
    mutating func setValue(_ key:String, _ value:T) {
        if values[key] == nil {
            // if key is new, insert it into our indices
            keys.append(key)

        values[key] = [value]
    }
    
    func setValue(_ key:String, _ value:_Element) {
        if values[key] == nil {
            // if key is new, insert it into our indices
            keys.append(key)
