def pretty_print(pp)
      if improper?
        pp.group(1, 'Erlang::List[', '] + ') do
          pp.breakable ''
          pp.seplist(to_proper_list) { |obj| obj.pretty_print(pp) }
        end
        last(true).pretty_print(pp)
      else
        pp.group(1, '[', ']') do
          pp.breakable ''
          pp.seplist(self) { |obj| obj.pretty_print(pp) }
        end
      end
    end
def pretty_print(pp)
      if improper?
        pp.group(1, 'Erlang::List[', '] + ') do
          pp.breakable ''
          pp.seplist(to_proper_list) { |obj| obj.pretty_print(pp) }
        end
        last(true).pretty_print(pp)
      else
        pp.group(1, '[', ']') do
          pp.breakable ''
          pp.seplist(self) { |obj| obj.pretty_print(pp) }
        end
      end
    end
Allows this `List` to be printed at the `pry` console, or using `pp` (from the
 Ruby standard library), in a way which takes the amount of horizontal space on
 the screen into account, and which indents nested structures to make them easier
 to read.

 @private