@ ProgramNode (location: (1,0)-(3,19)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,19)) └── body: (length: 2) ├── @ CallNode (location: (1,0)-(1,20)) │ ├── flags: ignore_visibility │ ├── receiver: ∅ │ ├── call_operator_loc: ∅ │ ├── name: :m │ ├── message_loc: (1,0)-(1,1) = "m" │ ├── opening_loc: ∅ │ ├── arguments: │ │ @ ArgumentsNode (location: (1,2)-(1,20)) │ │ ├── flags: ∅ │ │ └── arguments: (length: 1) │ │ └── @ LambdaNode (location: (1,2)-(1,20)) │ │ ├── locals: [:a] │ │ ├── operator_loc: (1,2)-(1,4) = "->" │ │ ├── opening_loc: (1,17)-(1,18) = "{" │ │ ├── closing_loc: (1,19)-(1,20) = "}" │ │ ├── parameters: │ │ │ @ BlockParametersNode (location: (1,4)-(1,16)) │ │ │ ├── parameters: │ │ │ │ @ ParametersNode (location: (1,5)-(1,15)) │ │ │ │ ├── requireds: (length: 0) │ │ │ │ ├── optionals: (length: 1) │ │ │ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,15)) │ │ │ │ │ ├── flags: ∅ │ │ │ │ │ ├── name: :a │ │ │ │ │ ├── name_loc: (1,5)-(1,6) = "a" │ │ │ │ │ ├── operator_loc: (1,7)-(1,8) = "=" │ │ │ │ │ └── value: │ │ │ │ │ @ LambdaNode (location: (1,9)-(1,15)) │ │ │ │ │ ├── locals: [:_1] │ │ │ │ │ ├── operator_loc: (1,9)-(1,11) = "->" │ │ │ │ │ ├── opening_loc: (1,11)-(1,12) = "{" │ │ │ │ │ ├── closing_loc: (1,14)-(1,15) = "}" │ │ │ │ │ ├── parameters: │ │ │ │ │ │ @ NumberedParametersNode (location: (1,9)-(1,15)) │ │ │ │ │ │ └── maximum: 1 │ │ │ │ │ └── body: │ │ │ │ │ @ StatementsNode (location: (1,12)-(1,14)) │ │ │ │ │ └── body: (length: 1) │ │ │ │ │ └── @ LocalVariableReadNode (location: (1,12)-(1,14)) │ │ │ │ │ ├── name: :_1 │ │ │ │ │ └── depth: 0 │ │ │ │ ├── rest: ∅ │ │ │ │ ├── posts: (length: 0) │ │ │ │ ├── keywords: (length: 0) │ │ │ │ ├── keyword_rest: ∅ │ │ │ │ └── block: ∅ │ │ │ ├── locals: (length: 0) │ │ │ ├── opening_loc: (1,4)-(1,5) = "(" │ │ │ └── closing_loc: (1,15)-(1,16) = ")" │ │ └── body: │ │ @ StatementsNode (location: (1,18)-(1,19)) │ │ └── body: (length: 1) │ │ └── @ LocalVariableReadNode (location: (1,18)-(1,19)) │ │ ├── name: :a │ │ └── depth: 0 │ ├── closing_loc: ∅ │ └── block: ∅ └── @ CallNode (location: (3,0)-(3,19)) ├── flags: ignore_visibility ├── receiver: ∅ ├── call_operator_loc: ∅ ├── name: :m ├── message_loc: (3,0)-(3,1) = "m" ├── opening_loc: ∅ ├── arguments: │ @ ArgumentsNode (location: (3,2)-(3,19)) │ ├── flags: ∅ │ └── arguments: (length: 1) │ └── @ LambdaNode (location: (3,2)-(3,19)) │ ├── locals: [:a] │ ├── operator_loc: (3,2)-(3,4) = "->" │ ├── opening_loc: (3,16)-(3,17) = "{" │ ├── closing_loc: (3,18)-(3,19) = "}" │ ├── parameters: │ │ @ BlockParametersNode (location: (3,4)-(3,15)) │ │ ├── parameters: │ │ │ @ ParametersNode (location: (3,5)-(3,14)) │ │ │ ├── requireds: (length: 0) │ │ │ ├── optionals: (length: 0) │ │ │ ├── rest: ∅ │ │ │ ├── posts: (length: 0) │ │ │ ├── keywords: (length: 1) │ │ │ │ └── @ OptionalKeywordParameterNode (location: (3,5)-(3,14)) │ │ │ │ ├── flags: ∅ │ │ │ │ ├── name: :a │ │ │ │ ├── name_loc: (3,5)-(3,7) = "a:" │ │ │ │ └── value: │ │ │ │ @ LambdaNode (location: (3,8)-(3,14)) │ │ │ │ ├── locals: [:_1] │ │ │ │ ├── operator_loc: (3,8)-(3,10) = "->" │ │ │ │ ├── opening_loc: (3,10)-(3,11) = "{" │ │ │ │ ├── closing_loc: (3,13)-(3,14) = "}" │ │ │ │ ├── parameters: │ │ │ │ │ @ NumberedParametersNode (location: (3,8)-(3,14)) │ │ │ │ │ └── maximum: 1 │ │ │ │ └── body: │ │ │ │ @ StatementsNode (location: (3,11)-(3,13)) │ │ │ │ └── body: (length: 1) │ │ │ │ └── @ LocalVariableReadNode (location: (3,11)-(3,13)) │ │ │ │ ├── name: :_1 │ │ │ │ └── depth: 0 │ │ │ ├── keyword_rest: ∅ │ │ │ └── block: ∅ │ │ ├── locals: (length: 0) │ │ ├── opening_loc: (3,4)-(3,5) = "(" │ │ └── closing_loc: (3,14)-(3,15) = ")" │ └── body: │ @ StatementsNode (location: (3,17)-(3,18)) │ └── body: (length: 1) │ └── @ LocalVariableReadNode (location: (3,17)-(3,18)) │ ├── name: :a │ └── depth: 0 ├── closing_loc: ∅ └── block: ∅