Defining a type in a recursive way in Dotty

No, at compile time we do not know the type.

types are about compile-time knowledge, not runtime knowledge…

But then we are able to define it using and ADT.