   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
 

    end

    def to_hint(Fun[name: name], hint) do
      :lists.nthtail(length(hint), name)
    end
  end

  def expand([]) do
    funs = module_funs(IEx.Helpers) ++ module_funs(Kernel)
    mods = [Mod[name: 'Elixir', type: :elixir]]
    format_expansion mods ++ funs
  end


    end
  end

  defp ensure_loaded(Elixir), do: { :error, :nofile }
  defp ensure_loaded(mod),    do: Code.ensure_compiled(mod)
end
