   Prints the type in module with given arity.
   """
   def t(module, type, arity) when is_atom(module) and is_atom(type) and is_integer(arity) do
-    case Kernel.Typespec.beam_types(module) do
+    case Typespec.beam_types(module) do
       nil   -> nobeam(module)
       types ->
         printed =

  end

  defp print_type({:opaque, type}) do
    {:::, _, [ast, _]} = Kernel.Typespec.type_to_ast(type)
    IO.puts IEx.color(:eval_info, "@opaque #{Macro.to_string(ast)}")
    true
  end

  defp print_type({kind, type}) do
    ast = Kernel.Typespec.type_to_ast(type)
    IO.puts IEx.color(:eval_info, "@#{kind} #{Macro.to_string(ast)}")
    true
  end

  defp print_spec({kind, {{name, _arity}, specs}}) do
    Enum.each specs, fn(spec) ->
      binary = Macro.to_string Kernel.Typespec.spec_to_ast(name, spec)
      IO.puts IEx.color(:eval_info, "@#{kind} #{binary}")
    end
    true

  Prints the given type in module with any arity.
  """
  def t(module, type) when is_atom(module) and is_atom(type) do
    case Typespec.beam_types(module) do
      nil   -> nobeam(module)
      types ->
        printed =
