         end
       else
         macros = mod.__info__(:macros) |> Enum.map(fn {f, a} -> {f, a, :macro, nil, nil} end)
-        functions = (mod.__info__(:functions) -- [__info__: 1]) |> Enum.map(fn {f, a} -> {f, a, :function, nil, nil} end)
+        functions = mod.__info__(:functions) |> Enum.map(fn {f, a} -> {f, a, :function, nil, nil} end)
         macros ++ functions
       end
+      funs ++ (@added_functions |> Enum.map(fn {f,a} -> {f, a, :function, nil, nil } end))
     else
       for {f, a} <- mod.module_info(:exports) do
         case f |> Atom.to_string do


  defp get_module_funs(mod) do
    if function_exported?(mod, :__info__, 1) do
      if docs = Code.get_docs(mod, :docs) do
        specs = Introspection.get_module_specs(mod)
        for {{f, a}, _line, func_kind, _sign, doc} = func_doc <- docs, doc != false do
          spec = Map.get(specs, {f,a}, "")


defmodule Alchemist.Helpers.Complete do

  @added_functions [{:__info__, 1}, {:module_info, 0}, {:module_info, 1}]

  alias Alchemist.Helpers.ModuleInfo

