   end
 
   defp dict_fold(trie(root: root, depth: depth), acc, fun) do
-    node_fold(root, depth, acc, fun, @node_size)
-  end
-
-  defp dict_put(ordered(size: @ordered_threshold, bucket: bucket), key, value) do
+    node_fold(root, depth, acc, fun, unquote(node_size))
+  end
+
+  defp dict_put(ordered(size: unquote(ordered_threshold), bucket: bucket), key, value) do
     root = node_relocate(bucket, 0)
-    dict_put(trie(size: @ordered_threshold, root: root), key, value)
+    dict_put(trie(size: unquote(ordered_threshold), root: root), key, value)
   end
 
   defp dict_put(ordered(size: size, bucket: bucket) = dict, key, value) do

  end

  defp node_fold(node, depth, acc, fun, count) when count >= 1 do
    acc = node_fold(:erlang.element(count, node), depth - 1, acc, fun, @node_size)
    node_fold(node, depth, acc, fun, count - 1)
  end


            root: root,
            size: size - 1,
            depth: depth - 1,
            contract_on: div(size, unquote(node_size)),
            expand_on: div(trie(dict, :expand_on), unquote(node_size)))
        else
          trie(dict, size: size - 1, root: root)
        end
