   end
 
   defp reduce(expr) do
-    Enum.reverse Enum.reduce [' ', '(', '[', '{'], expr, fn token, acc ->
-      hd(:string.tokens(acc, token))
+    Enum.reverse Enum.reduce ' ([{', expr, fn token, acc ->
+      hd(:string.tokens(acc, [token]))
     end
   end
 

  end

  defp to_hint(%{kind: :module, name: name}, hint) do
    :binary.part(name, byte_size(hint), byte_size(name) - byte_size(hint)) <> "."
  end

  defp to_hint(%{kind: :function, name: name}, hint) do
    :binary.part(name, byte_size(hint), byte_size(name) - byte_size(hint))
  end
end

  end

  defp format_expansion([uniq], hint) do
    case to_hint(uniq, hint) do
      ""   -> yes("", to_uniq_entries(uniq))
      hint -> yes(hint, [])
    end
  end

  defp format_expansion([first|_]=entries, hint) do
