def first(n = nil)
      return list_head unless n
      raise ArgumentError, 'n cannot be negative' if n.negative?

      return [] if n.zero? || empty?

      list_head.take n
    end
def first(n = nil)
      return list_head unless n
      raise ArgumentError, 'n cannot be negative' if n.negative?

      return [] if n.zero? || empty?

      list_head.take n
    end
Access the first n item(s) in the list.

 @param  n [Integer] the number of items to return.
 @return [Listable] if n = nil.
 @return [Array<Listable>] if n >= 0.