Maybe we should move away from the alias/match divide and to a non-recursive/recursive one ?
That way the compiler could also be reckless with non-recursive match types, as those are safe
It would also force us to have a really strong cycle detection, which doesn’t seem to be the case currently
Or a special modifier like rec type
or nonrec type
so that users manually do the cycle detection