ProgramNode(0...620)(
  [:x],
  StatementsNode(0...620)(
    [ModuleNode(0...68)(
       [],
       (0...6),
       ConstantReadNode(7...8)(),
       StatementsNode(11...64)(
         [CallNode(11...64)(
            nil,
            nil,
            (11...14),
            nil,
            nil,
            nil,
            BlockNode(15...64)(
              [:bar, :foo],
              BlockParametersNode(17...22)(
                ParametersNode(18...21)(
                  [RequiredParameterNode(18...21)(:bar)],
                  [],
                  [],
                  nil,
                  [],
                  nil,
                  nil
                ),
                [],
                (17...18),
                (21...22)
              ),
              StatementsNode(27...60)(
                [WhileNode(27...60)(
                   (27...32),
                   CallNode(33...36)(
                     nil,
                     nil,
                     (33...36),
                     nil,
                     nil,
                     nil,
                     nil,
                     0,
                     "foo"
                   ),
                   StatementsNode(43...52)(
                     [LocalVariableWriteNode(43...52)(
                        :foo,
                        0,
                        LocalVariableReadNode(49...52)(:bar, 0),
                        (43...46),
                        (47...48)
                      )]
                   )
                 )]
              ),
              (15...16),
              (63...64)
            ),
            0,
            "foo"
          )]
       ),
       (65...68)
     ),
     DefNode(70...110)(
       (74...77),
       nil,
       nil,
       StatementsNode(80...106)(
         [WhileNode(80...106)(
            (90...95),
            CallNode(96...106)(
              LocalVariableReadNode(96...99)(:foo, 0),
              nil,
              (100...102),
              nil,
              ArgumentsNode(103...106)(
                [CallNode(103...106)(
                   nil,
                   nil,
                   (103...106),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "baz"
                 )]
              ),
              nil,
              nil,
              0,
              "!="
            ),
            StatementsNode(80...89)(
              [LocalVariableWriteNode(80...89)(
                 :foo,
                 0,
                 CallNode(86...89)(
                   nil,
                   nil,
                   (86...89),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "bar"
                 ),
                 (80...83),
                 (84...85)
               )]
            )
          )]
       ),
       [:foo],
       (70...73),
       nil,
       nil,
       nil,
       nil,
       (107...110)
     ),
     ModuleNode(112...146)(
       [:foo],
       (112...118),
       ConstantReadNode(119...120)(),
       StatementsNode(123...142)(
         [WhileNode(123...142)(
            (133...138),
            LocalVariableReadNode(139...142)(:foo, 0),
            StatementsNode(123...132)(
              [LocalVariableWriteNode(123...132)(
                 :foo,
                 0,
                 CallNode(129...132)(
                   nil,
                   nil,
                   (129...132),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "bar"
                 ),
                 (123...126),
                 (127...128)
               )]
            )
          )]
       ),
       (143...146)
     ),
     ModuleNode(148...182)(
       [:foo],
       (148...154),
       ConstantReadNode(155...156)(),
       StatementsNode(159...178)(
         [UntilNode(159...178)(
            (169...174),
            LocalVariableReadNode(175...178)(:foo, 0),
            StatementsNode(159...168)(
              [LocalVariableWriteNode(159...168)(
                 :foo,
                 0,
                 CallNode(165...168)(
                   nil,
                   nil,
                   (165...168),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "bar"
                 ),
                 (159...162),
                 (163...164)
               )]
            )
          )]
       ),
       (179...182)
     ),
     ModuleNode(184...228)(
       [:foo],
       (184...190),
       ConstantReadNode(191...192)(),
       StatementsNode(195...224)(
         [WhileNode(195...224)(
            (195...200),
            CallNode(201...204)(
              nil,
              nil,
              (201...204),
              nil,
              nil,
              nil,
              nil,
              0,
              "foo"
            ),
            StatementsNode(209...218)(
              [LocalVariableWriteNode(209...218)(
                 :foo,
                 0,
                 CallNode(215...218)(
                   nil,
                   nil,
                   (215...218),
                   nil,
                   nil,
                   nil,
                   nil,
                   0,
                   "bar"
                 ),
                 (209...212),
                 (213...214)
               )]
            )
          )]
       ),
       (225...228)
     ),
     ModuleNode(230...299)(
       [],
       (230...236),
       ConstantReadNode(237...238)(),
       StatementsNode(241...295)(
         [CallNode(241...295)(
            nil,
            nil,
            (241...245),
            nil,
            nil,
            nil,
            BlockNode(246...295)(
              [:baz, :foo],
              BlockParametersNode(248...253)(
                ParametersNode(249...252)(
                  [RequiredParameterNode(249...252)(:baz)],
                  [],
                  [],
                  nil,
                  [],
                  nil,
                  nil
                ),
                [],
                (248...249),
                (252...253)
              ),
              StatementsNode(258...291)(
                [WhileNode(258...291)(
                   (258...263),
                   CallNode(264...267)(
                     nil,
                     nil,
                     (264...267),
                     nil,
                     nil,
                     nil,
                     nil,
                     0,
                     "foo"
                   ),
                   StatementsNode(274...283)(
                     [LocalVariableWriteNode(274...283)(
                        :foo,
                        0,
                        CallNode(280...283)(
                          nil,
                          nil,
                          (280...283),
                          nil,
                          nil,
                          nil,
                          nil,
                          0,
                          "bar"
                        ),
                        (274...277),
                        (278...279)
                      )]
                   )
                 )]
              ),
              (246...247),
              (294...295)
            ),
            0,
            "each"
          )]
       ),
       (296...299)
     ),
     ModuleNode(301...370)(
       [],
       (301...307),
       ConstantReadNode(308...309)(),
       StatementsNode(312...366)(
         [CallNode(312...366)(
            nil,
            nil,
            (312...316),
            nil,
            nil,
            nil,
            BlockNode(317...366)(
              [:foo],
              BlockParametersNode(319...324)(
                ParametersNode(320...323)(
                  [RequiredParameterNode(320...323)(:foo)],
                  [],
                  [],
                  nil,
                  [],
                  nil,
                  nil
                ),
                [],
                (319...320),
                (323...324)
              ),
              StatementsNode(329...362)(
                [WhileNode(329...362)(
                   (329...334),
                   LocalVariableReadNode(335...338)(:foo, 0),
                   StatementsNode(345...354)(
                     [LocalVariableWriteNode(345...354)(
                        :foo,
                        0,
                        CallNode(351...354)(
                          nil,
                          nil,
                          (351...354),
                          nil,
                          nil,
                          nil,
                          nil,
                          0,
                          "bar"
                        ),
                        (345...348),
                        (349...350)
                      )]
                   )
                 )]
              ),
              (317...318),
              (365...366)
            ),
            0,
            "each"
          )]
       ),
       (367...370)
     ),
     LocalVariableWriteNode(371...402)(
       :x,
       0,
       ParenthesesNode(375...402)(
         StatementsNode(376...401)(
           [WhileNode(376...401)(
              (392...397),
              CallNode(398...401)(
                nil,
                nil,
                (398...401),
                nil,
                nil,
                nil,
                nil,
                0,
                "baz"
              ),
              StatementsNode(376...391)(
                [BeginNode(376...391)(
                   (376...381),
                   StatementsNode(384...387)(
                     [CallNode(384...387)(
                        nil,
                        nil,
                        (384...387),
                        nil,
                        nil,
                        nil,
                        nil,
                        0,
                        "foo"
                      )]
                   ),
                   nil,
                   nil,
                   nil,
                   (388...391)
                 )]
              )
            )]
         ),
         (375...376),
         (401...402)
       ),
       (371...372),
       (373...374)
     ),
     WhileNode(403...428)(
       (419...424),
       CallNode(425...428)(
         nil,
         nil,
         (425...428),
         nil,
         nil,
         nil,
         nil,
         0,
         "baz"
       ),
       StatementsNode(403...418)(
         [BeginNode(403...418)(
            (403...408),
            StatementsNode(411...414)(
              [CallNode(411...414)(
                 nil,
                 nil,
                 (411...414),
                 nil,
                 nil,
                 nil,
                 nil,
                 0,
                 "foo"
               )]
            ),
            nil,
            nil,
            nil,
            (415...418)
          )]
       )
     ),
     UntilNode(429...460)(
       (451...456),
       CallNode(457...460)(
         nil,
         nil,
         (457...460),
         nil,
         nil,
         nil,
         nil,
         0,
         "baz"
       ),
       StatementsNode(429...450)(
         [BeginNode(429...450)(
            (429...434),
            StatementsNode(437...446)(
              [CallNode(437...440)(
                 nil,
                 nil,
                 (437...440),
                 nil,
                 nil,
                 nil,
                 nil,
                 0,
                 "foo"
               ),
               CallNode(443...446)(
                 nil,
                 nil,
                 (443...446),
                 nil,
                 nil,
                 nil,
                 nil,
                 0,
                 "bar"
               )]
            ),
            nil,
            nil,
            nil,
            (447...450)
          )]
       )
     ),
     WhileNode(461...492)(
       (483...488),
       CallNode(489...492)(
         nil,
         nil,
         (489...492),
         nil,
         nil,
         nil,
         nil,
         0,
         "baz"
       ),
       StatementsNode(461...482)(
         [BeginNode(461...482)(
            (461...466),
            StatementsNode(469...478)(
              [CallNode(469...472)(
                 nil,
                 nil,
                 (469...472),
                 nil,
                 nil,
                 nil,
                 nil,
                 0,
                 "foo"
               ),
               CallNode(475...478)(
                 nil,
                 nil,
                 (475...478),
                 nil,
                 nil,
                 nil,
                 nil,
                 0,
                 "bar"
               )]
            ),
            nil,
            nil,
            nil,
            (479...482)
          )]
       )
     ),
     WhileNode(493...508)((493...498), FalseNode(499...504)(), nil),
     WhileNode(509...528)(
       (509...514),
       FalseNode(515...520)(),
       StatementsNode(523...524)([IntegerNode(523...524)()])
     ),
     WhileNode(529...556)(
       (529...534),
       ParenthesesNode(535...544)(
         StatementsNode(536...543)(
           [CallNode(536...543)(
              nil,
              nil,
              (536...539),
              nil,
              nil,
              nil,
              BlockNode(540...543)([], nil, nil, (540...541), (542...543)),
              0,
              "foo"
            )]
         ),
         (535...536),
         (543...544)
       ),
       StatementsNode(547...552)(
         [SymbolNode(547...552)((547...548), (548...552), nil, "body")]
       )
     ),
     UntilNode(557...572)((557...562), FalseNode(563...568)(), nil),
     UntilNode(573...592)(
       (573...578),
       FalseNode(579...584)(),
       StatementsNode(587...588)([IntegerNode(587...588)()])
     ),
     UntilNode(593...620)(
       (593...598),
       ParenthesesNode(599...608)(
         StatementsNode(600...607)(
           [CallNode(600...607)(
              nil,
              nil,
              (600...603),
              nil,
              nil,
              nil,
              BlockNode(604...607)([], nil, nil, (604...605), (606...607)),
              0,
              "foo"
            )]
         ),
         (599...600),
         (607...608)
       ),
       StatementsNode(611...616)(
         [SymbolNode(611...616)((611...612), (612...616), nil, "body")]
       )
     )]
  )
)
