Let's say a type is defined like
Z10009 -> { Z1K1: 'Z7', Z7K1: 'Z881', Z881K1: 'Z6' }
Because type expansion is no longer persistent, canonicalization can no longer see that Z10009 is a list type, and so an output list returned to the UI looks something like
{ Z1K1: 'Z10009', K1: 'first elem', K2: { Z1K1: 'Z10009', K1: 'second elem', K2: { Z1K1: 'Z10009' } } }
instead of its former representation, which was
['Z6', 'first elem', 'second elem']
One issue here is that the current status supports nominal (as opposed to structural) equivalence, which may be a desirable trait. However, the system does not rigorously insist on nominal equivalence elsewhere, so that may be a separate discussion.