   defp expand_dot(expr) do
     case Code.string_to_quoted expr do
       {:ok, atom} when is_atom(atom) ->
-        expand_call atom, ''
+        expand_call atom, ""
       {:ok, {:__aliases__, _, list}} ->
         expand_elixir_modules list
       _ ->
-        no_match
+        no()
     end
   end
 
   defp expand_expr(expr) do
     case Code.string_to_quoted expr do
       {:ok, atom} when is_atom(atom) ->
-        expand_erlang_modules atom_to_list(atom)
+        expand_erlang_modules atom_to_binary(atom)
       {:ok, { atom, _, nil }} when is_atom(atom) ->
-        expand_call Kernel, atom_to_list(atom)
+        expand_call Kernel, atom_to_binary(atom)
       {:ok, {:__aliases__, _, [root]}} ->
-        expand_elixir_modules [], atom_to_list(root)
+        expand_elixir_modules [], atom_to_binary(root)
       {:ok, {:__aliases__, _, [h|_] = list}} when is_atom(h) ->
-        hint = atom_to_list(List.last(list))
+        hint = atom_to_binary(List.last(list))
         list = Enum.take(list, length(list) - 1)
         expand_elixir_modules list, hint
       {:ok, {{:., _, [mod, fun]}, _, []}} when is_atom(fun) ->
-        expand_call mod, atom_to_list(fun)
-      _ -> no_match
+        expand_call mod, atom_to_binary(fun)
+      _ ->
+        no()
     end
   end
 

      h in '(+[' ->
        expand ''
      true ->
        no_match
    end
  end


    end

    def to_hint(Mod[name: name], hint) do
      String.slice(name, size(hint), size(name)) <> "."
    end
  end

