# File lib/sexp.rb, line 249 def structure result = self.class.new if Array === self.first then raise "When does this happen? #{self.inspect}" # TODO: remove >= 4.2.0 result = self.first.structure else result << self.first self.grep(Sexp).each do |subexp| result << subexp.structure end end result end