We need to implement validation for recursive types in the Verifier. However, recursion through indirection using pointers should be allowed.
Example (indirection recursion that should be allowed):
type public @Node = { *@Node };
In this example, the recursion occurs via the next pointer, which does not require validation.
Example (direct recursion that shouldn't be allowed):
type public @X = { @Y };
type public @Y = { @X };