ProgramNode(0...44)(
  [],
  StatementsNode(0...44)(
    [DefNode(0...18)(
       (4...5),
       nil,
       ParametersNode(6...13)(
         [],
         [OptionalParameterNode(6...13)(
            :foo,
            (6...9),
            (10...11),
            IntegerNode(12...13)()
          )],
         [],
         nil,
         [],
         nil,
         nil
       ),
       nil,
       [:foo],
       (0...3),
       nil,
       nil,
       nil,
       nil,
       (15...18)
     ),
     DefNode(20...44)(
       (24...25),
       nil,
       ParametersNode(26...38)(
         [],
         [OptionalParameterNode(26...31)(
            :foo,
            (26...29),
            (29...30),
            IntegerNode(30...31)()
          ),
          OptionalParameterNode(33...38)(
            :bar,
            (33...36),
            (36...37),
            IntegerNode(37...38)()
          )],
         [],
         nil,
         [],
         nil,
         nil
       ),
       nil,
       [:foo, :bar],
       (20...23),
       nil,
       (25...26),
       (38...39),
       nil,
       (41...44)
     )]
  )
)
