def first(n=nil)
      if n.nil?
        return @first
      else
        n = length if n > length
        node = @first
        ret = ::Array.new(n) do
          r = node
          node = node.instance_variable_get(:@next)
          r
        end
        return ret
      end
    end
def first(n=nil)
      if n.nil?
        return @first
      else
        n = length if n > length
        node = @first
        ret = ::Array.new(n) do
          r = node
          node = node.instance_variable_get(:@next)
          r
        end
        return ret
      end
    end
const methods