   """
   @spec inspect(device, item, keyword) :: item when item: var
   def inspect(device, item, opts) when is_list(opts) do
-    label = if (label = opts[:label]), do: [to_chardata(label), ": "], else: []
-    opts  = struct(Inspect.Opts, opts)
+    label = if label = opts[:label], do: [to_chardata(label), ": "], else: []
+    opts = struct(Inspect.Opts, opts)
     doc = Inspect.Algebra.group(Inspect.Algebra.to_doc(item, opts))
     chardata = Inspect.Algebra.format(doc, opts.width)
-    puts device, [label, chardata]
+    puts(device, [label, chardata])
     item
   end
 

      #=>   my_app.ex:4: MyApp.main/1

  """
  @spec warn(chardata | String.Chars.t, Exception.stacktrace) :: :ok
  def warn(message, []) do
    :elixir_errors.warn([to_chardata(message), ?\n])
  end
  def warn(message, stacktrace) when is_list(stacktrace) do
    formatted = Enum.map_join(stacktrace, "\n  ", &Exception.format_stacktrace_entry(&1))
    :elixir_errors.warn([to_chardata(message), ?\n, "  ", formatted, ?\n])

  mode as it will return the wrong result.

  """
  @spec binstream(device, :line | pos_integer) :: Enumerable.t()
  def binstream(device, line_or_bytes)
      when line_or_bytes == :line
      when is_integer(line_or_bytes) and line_or_bytes > 0 do
