I tried that and it looks like it type-checks fine (will add it as a test). When a `Struct-Type` is parsed, it will resolve the struct name anyway, so no user-written types should contain unresolved aliases. Internally constructed types (e.g., from the base type environment) should also not contain unresolved aliases.

(though maybe adding implicit recursive aliases will complicate this?)