Infinite recursion in Array subclasses caused by method overloading & super

I have no idea how to fix this one other than to get rid of the overloading entirely. There's not much point to it, is there?

``` ruby
class Sexp < Array
  def shift
    raise if self.empty?
    super
  end
end

s = Sexp.new
s << 42
p s.shift
```