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

 */


public struct OrderedDictionary<T>: Swift.Collection {
    public typealias Index = Array<T>.Index
    public typealias _Element = [T]
    

        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)
