@ ProgramNode (location: (0...39))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...39))
    └── body: (length: 2)
        ├── @ ModuleNode (location: (0...17))
        │   ├── locals: []
        │   ├── module_keyword_loc: (0...6) = "module"
        │   ├── constant_path:
        │   │   @ ConstantPathNode (location: (7...12))
        │   │   ├── parent: ∅
        │   │   ├── child:
        │   │   │   @ ConstantReadNode (location: (9...12))
        │   │   │   └── name: :Foo
        │   │   └── delimiter_loc: (7...9) = "::"
        │   ├── body: ∅
        │   ├── end_keyword_loc: (14...17) = "end"
        │   └── name: :Foo
        └── @ ModuleNode (location: (19...39))
            ├── locals: []
            ├── module_keyword_loc: (19...25) = "module"
            ├── constant_path:
            │   @ ConstantPathNode (location: (26...34))
            │   ├── parent:
            │   │   @ ConstantReadNode (location: (26...29))
            │   │   └── name: :Bar
            │   ├── child:
            │   │   @ ConstantReadNode (location: (31...34))
            │   │   └── name: :Foo
            │   └── delimiter_loc: (29...31) = "::"
            ├── body: ∅
            ├── end_keyword_loc: (36...39) = "end"
            └── name: :Foo
