   end
 
   defp info_anon_fun(fun_info) do
-    ["Type": to_string(fun_info[:type]),
-     "Arity": fun_info[:arity],
-     "Description": "This is an anonymous function."]
+    [
+      Type: to_string(fun_info[:type]),
+      Arity: fun_info[:arity],
+      Description: "This is an anonymous function."
+    ]
   end
 
   defp info_named_fun(fun_info) do
-    ["Type": to_string(fun_info[:type]),
-     "Arity": fun_info[:arity]]
+    [Type: to_string(fun_info[:type]), Arity: fun_info[:arity]]
   end
 end
 

  def info(port) do
    connected = :rpc.call(node(port), :erlang, :port_info, [port, :connected])

    ["Data type": "Port",
     "Open": match?({:connected, _}, connected),
     "Reference modules": "Port"]
  end
end


      cond do
        Code.ensure_loaded?(atom) ->
          info_module(atom)

        match?("Elixir." <> _, Atom.to_string(atom)) ->
          info_module_like_atom(atom)

        true ->
          info_atom(atom)
      end

    description =
      if atom == IEx.dont_display_result() do
        description = """
        This atom is returned by IEx when a function that should not print its
        return value on screen is executed.
        """

        [Description: description]
      else
        []
      end

    ["Data type": "Atom"] ++ description ++ specific_info
  end

  defp info_module(mod) do
    extra =
      if Code.get_docs(mod, :moduledoc) do
        "Use h(#{inspect(mod)}) to access its documentation.\n"
      else
        ""
      end

    mod_info = mod.module_info()

    generic_info =
      [
        "Module bytecode": module_object_file(mod),
        Source: module_source_file(mod_info),
        Version: module_version(mod_info),
        "Compile options": module_compile_options(mod_info),
        Description: "#{extra}Call #{inspect(mod)}.module_info() to access metadata."
      ]

    specific_info =
      if function_exported?(mod, :__protocol__, 1) do
