class Array def to_construct map { |x| x.to_construct }.reverse. inject(:nil) { |cdr, car| Construct.new(car, cdr) } end end