@ ProgramNode (location: (0...14))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...14))
    └── body: (length: 1)
        └── @ StringConcatNode (location: (0...14))
            ├── left:
            │   @ InterpolatedStringNode (location: (0...8))
            │   ├── opening_loc: (0...1) = "\""
            │   ├── parts: (length: 2)
            │   │   ├── @ StringNode (location: (1...4))
            │   │   │   ├── opening_loc: ∅
            │   │   │   ├── content_loc: (1...4) = "foo"
            │   │   │   ├── closing_loc: ∅
            │   │   │   └── unescaped: "foo"
            │   │   └── @ EmbeddedVariableNode (location: (4...7))
            │   │       ├── operator_loc: (4...5) = "#"
            │   │       └── variable:
            │   │           @ InstanceVariableReadNode (location: (5...7))
            │   │           └── name: :@a
            │   └── closing_loc: (7...8) = "\""
            └── right:
                @ StringNode (location: (9...14))
                ├── opening_loc: (9...10) = "\""
                ├── content_loc: (10...13) = "bar"
                ├── closing_loc: (13...14) = "\""
                └── unescaped: "bar"
