   Puts the given value into the set if it does not already contain it.
   """
   def put(set, member) do
-    { set, _ } = set_put(set, { :put, member })
+    { set, _ } = set_put(set, member)
     set
   end
 

    set_put(set, member)
  end

  defp set_put(trie(root: root, size: size, depth: depth) = set,  { :put, member }) do
    pos = bucket_hash(member)
    { root, count } = node_put(root, depth, pos, {:put, member})
    { trie(set, size: size + count, root: root), count }
  end



  defp set_delete(ordered(bucket: bucket, size: size) = set, member) do
    case bucket_delete(bucket, member) do
      { _, 0 } ->
        { set, 0 }
      { new_bucket, -1 } ->
        { ordered(set, size: size - 1, bucket: new_bucket), -1 }
    end
  end

  defp set_delete(trie(root: root, size: size, depth: depth) = set, member) do
    pos = bucket_hash(member)
    case node_delete(root, depth, pos, member) do
      { _, 0 } ->
        { set, 0 }
      { root, -1 } ->
        { if depth > 0 and trie(set, :contract_on) == size do
          root = node_contract(root, depth)
          trie(set,
