Trying to understand how nested types are resolved
Hello

I'm trying to understand how nested types and `::` it used to resolves types. Here is an example that confuses me:

```yaml
meta:
  id: nested_types
  endian: le
seq:
  - id: s0
    type: t0
instances:
  e0_hello_0:
    value: t0::e0::hello
  e0_hello_1:
    value: ::t0::e0::hello
  e0_hello_2:
    value: t0::t0::e0::hello
  e0_hello_3:
    value: t0::t0::t0::e0::hello
types:
  t0:
    seq:
      - id: t0s0
        type: u1
    enums:
      e0:
        1: hello
    types:
      t0:
        seq:
          - id: t0t0s0
            type: u2
        enums:
          e0:
            2: hello
```
Using https://ide.kaitai.io/ results in: (using the default zip input)
```json
{
  "s0": {
    "t0t0s0": 19280
  },
  "e0Hello0": { "name": "HELLO", "value": 2 },
  "e0Hello1": { "name": "HELLO", "value": 2 },
  "e0Hello2": { "name": "HELLO", "value": 2 },
  "e0Hello3": { "name": "HELLO", "value": 2 }
}
```
`type: t0` seems to resolve to the nested "`t0::t0`", if i rename it to "`t0::t1`" the result is:
```json
{
  "s0": {
    "t0s0": 80
  },
  "e0Hello0": { "name": "HELLO", "value": 1 },
  "e0Hello1": { "name": "HELLO", "value": 1 },
  "e0Hello2": { "name": "HELLO", "value": 1 },
  "e0Hello3": { "name": "HELLO", "value": 1 }
}
```
now `type: t0` resolves to the "top" `t0`.

I get a feeling type name are global somehow even when using `::`?
