@ ProgramNode (location: (0...139))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...139))
    └── body: (length: 10)
        ├── @ ReturnNode (location: (0...6))
        │   ├── keyword_loc: (0...6) = "return"
        │   └── arguments: ∅
        ├── @ ReturnNode (location: (8...28))
        │   ├── keyword_loc: (8...14) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (15...28))
        │       └── arguments: (length: 3)
        │           ├── @ ParenthesesNode (location: (15...18))
        │           │   ├── body:
        │           │   │   @ StatementsNode (location: (16...17))
        │           │   │   └── body: (length: 1)
        │           │   │       └── @ IntegerNode (location: (16...17))
        │           │   │           └── flags: decimal
        │           │   ├── opening_loc: (15...16) = "("
        │           │   └── closing_loc: (17...18) = ")"
        │           ├── @ ParenthesesNode (location: (20...23))
        │           │   ├── body:
        │           │   │   @ StatementsNode (location: (21...22))
        │           │   │   └── body: (length: 1)
        │           │   │       └── @ IntegerNode (location: (21...22))
        │           │   │           └── flags: decimal
        │           │   ├── opening_loc: (20...21) = "("
        │           │   └── closing_loc: (22...23) = ")"
        │           └── @ ParenthesesNode (location: (25...28))
        │               ├── body:
        │               │   @ StatementsNode (location: (26...27))
        │               │   └── body: (length: 1)
        │               │       └── @ IntegerNode (location: (26...27))
        │               │           └── flags: decimal
        │               ├── opening_loc: (25...26) = "("
        │               └── closing_loc: (27...28) = ")"
        ├── @ ReturnNode (location: (30...39))
        │   ├── keyword_loc: (30...36) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (37...39))
        │       └── arguments: (length: 1)
        │           └── @ SplatNode (location: (37...39))
        │               ├── operator_loc: (37...38) = "*"
        │               └── expression:
        │                   @ IntegerNode (location: (38...39))
        │                   └── flags: decimal
        ├── @ ReturnNode (location: (41...49))
        │   ├── keyword_loc: (41...47) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (48...49))
        │       └── arguments: (length: 1)
        │           └── @ IntegerNode (location: (48...49))
        │               └── flags: decimal
        ├── @ ReturnNode (location: (51...65))
        │   ├── keyword_loc: (51...57) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (58...65))
        │       └── arguments: (length: 3)
        │           ├── @ IntegerNode (location: (58...59))
        │           │   └── flags: decimal
        │           ├── @ IntegerNode (location: (61...62))
        │           │   └── flags: decimal
        │           └── @ IntegerNode (location: (64...65))
        │               └── flags: decimal
        ├── @ ReturnNode (location: (67...81))
        │   ├── keyword_loc: (67...73) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (74...81))
        │       └── arguments: (length: 3)
        │           ├── @ IntegerNode (location: (74...75))
        │           │   └── flags: decimal
        │           ├── @ IntegerNode (location: (77...78))
        │           │   └── flags: decimal
        │           └── @ IntegerNode (location: (80...81))
        │               └── flags: decimal
        ├── @ ReturnNode (location: (83...99))
        │   ├── keyword_loc: (83...89) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (90...99))
        │       └── arguments: (length: 1)
        │           └── @ ArrayNode (location: (90...99))
        │               ├── elements: (length: 3)
        │               │   ├── @ IntegerNode (location: (91...92))
        │               │   │   └── flags: decimal
        │               │   ├── @ IntegerNode (location: (94...95))
        │               │   │   └── flags: decimal
        │               │   └── @ IntegerNode (location: (97...98))
        │               │       └── flags: decimal
        │               ├── opening_loc: (90...91) = "["
        │               └── closing_loc: (98...99) = "]"
        ├── @ ReturnNode (location: (101...118))
        │   ├── keyword_loc: (101...107) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (107...118))
        │       └── arguments: (length: 1)
        │           └── @ ParenthesesNode (location: (107...118))
        │               ├── body:
        │               │   @ StatementsNode (location: (111...116))
        │               │   └── body: (length: 2)
        │               │       ├── @ IntegerNode (location: (111...112))
        │               │       │   └── flags: decimal
        │               │       └── @ IntegerNode (location: (115...116))
        │               │           └── flags: decimal
        │               ├── opening_loc: (107...108) = "("
        │               └── closing_loc: (117...118) = ")"
        ├── @ ReturnNode (location: (120...128))
        │   ├── keyword_loc: (120...126) = "return"
        │   └── arguments:
        │       @ ArgumentsNode (location: (126...128))
        │       └── arguments: (length: 1)
        │           └── @ ParenthesesNode (location: (126...128))
        │               ├── body: ∅
        │               ├── opening_loc: (126...127) = "("
        │               └── closing_loc: (127...128) = ")"
        └── @ ReturnNode (location: (130...139))
            ├── keyword_loc: (130...136) = "return"
            └── arguments:
                @ ArgumentsNode (location: (136...139))
                └── arguments: (length: 1)
                    └── @ ParenthesesNode (location: (136...139))
                        ├── body:
                        │   @ StatementsNode (location: (137...138))
                        │   └── body: (length: 1)
                        │       └── @ IntegerNode (location: (137...138))
                        │           └── flags: decimal
                        ├── opening_loc: (136...137) = "("
                        └── closing_loc: (138...139) = ")"
