         self.root = self.put(self.root, assignedKeys, 0, value)
     }
 
-    private func put(_ node: Node<KeyType, Value>?, _ keySet: KeySet, _ index: Int, _ value: Value) -> Node<KeyType, Value>
+    private mutating func put(_ node: Node<KeyType, Value>?, _ keySet: KeySet, _ index: Int, _ value: Value) -> Node<KeyType, Value>
     {
         assert(keySet.count == self.keys)
         

 *  This file defines a multi-key dictionary data structure. 
 *
 *  Author: Philip Erickson
 *  Creation Date: 14 Aug 2016
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 *  in compliance with the License. You may obtain a copy of the License at

 *  Copyright 2016 Philip Erickson
 **************************************************************************************************/

// Adapted from the section on "Ternary Search Tries" in: Sedgewick, R., Wayne, K. (2011). 
// Algorithms, 4th Edition. Addison-Wesley. ISBN: 978-0-321-57351-3 

public struct MultikeyDictionary<KeyType: Comparable, Value>
