# File lib/ruby_parser_extras.rb, line 153
  def args arg, optarg, rest_arg, block_arg
    arg ||= s(:args)

    result = arg
    if optarg then
      optarg[1..-1].each do |lasgn| # FIX clean sexp iter
        raise "wtf? #{lasgn.inspect}" unless lasgn[0] == :lasgn
        result << lasgn[1]
      end
    end

    result << rest_arg  if rest_arg
    result << "&#{block_arg.last}""&#{block_arg.last}" if block_arg
    result << optarg    if optarg # TODO? huh - processed above as well

    result
  end