I don't understand how to do self-referencial parametric typing

This is indeed not possible:

There are workarounds (e.g. abstract types and mutable structs) which you probably won’t like even though they are likely cheap from a runtime perspective.