dl (dl A) is no more considered as an invalid (looping) type.
A typeabbrev can be created only if all of the constants in it have already been declared before it.
Recursive typeabbrev (like typeabbrev dl dl are still forbidden)
Can't we detect statically that the typeabbrev is not silly, as in the LHS does not occur in the RHS (and the RHS is only made of known symbols)? The last part may require some cleanup (planned but not done).
dl (dl A)
is no more considered as an invalid (looping) type.A typeabbrev can be created only if all of the constants in it have already been declared before it. Recursive typeabbrev (like
typeabbrev dl dl
are still forbidden)