ProgramNode(0...41)(
  [],
  StatementsNode(0...41)(
    [IfNode(0...41)(
       (0...2),
       CallNode(3...15)(
         CallNode(7...15)(
           CallNode(7...10)(nil, nil, (7...10), nil, nil, nil, nil, 0, "var"),
           (10...11),
           (11...15),
           nil,
           nil,
           nil,
           nil,
           0,
           "nil?"
         ),
         nil,
         (3...6),
         nil,
         nil,
         nil,
         nil,
         0,
         "!"
       ),
       StatementsNode(21...26)(
         [StringNode(21...26)((21...22), (22...25), (25...26), "foo")]
       ),
       ElseNode(27...41)(
         (27...31),
         StatementsNode(32...37)(
           [StringNode(32...37)((32...33), (33...36), (36...37), "bar")]
         ),
         (38...41)
       ),
       (38...41)
     )]
  )
)
