anytime you do instanceOf?() + cast is better served by a match, again, which does both - even one with a single case is worth it.

In that particular part of the code 1) we have two cases and 2) please don't re-use 'node' for something else. So ideally the code would more like:

```ooc
match (node := trail peek()) {
  case addon: Addon =>
    if (!addon base) {
      // wholeagain + return OK
    }
  case td: TypeDecl =>
    // nothing to do
  case =>
    // throw error, needs to be inside a TypeDecl
}
```