discard """ disabled: true """ # Compiles: type TA[T] = object PA[T] = ref TA[T] var a: PA[string] # Compiles unless you use var a: PA[string] type PA = ref TA TA[T] = object # Cannot instantiate: type TA[T] = object a: PA[T] PA[T] = ref TA[T] type PA[T] = ref TA[T] TA[T] = object