In the example, if a trait B inherits from A, then if A is required, we can conform to A by passing an argument B. Since B should conform to A. This doesn’t work with parametric *args. See code bellow:
trait A:
fn a(self):
...
struct ASt[*Ts: A]:
...
trait B(A):
...
# This is ok, since B inherits from A
struct Bsingle[t: B]:
var a_value: ASt[t]
# This fails. Should happen?
struct Bmultiple[*Ts: B]:
var a_values: ASt[*Ts]
# Works again.
struct Aonly[*Ts: A]:
var a_values: ASt[*Ts]
Is it working as expected?