# Assignment from an array (to stream and array) for element types that are related class CoVar shared var fooSingleNil as IFoo? var foo as IFoo* var fooNil as IFoo*? var afoo as IFoo[] var afooNil as IFoo[]? def main CoVar.fooSingleNil = Bar() #array to stream covariance CoVar.foo = @[Bar(), Bar()] CoVar.fooNil = @[Bar(), Bar()] # array to array covariance CoVar.afoo = @[Bar(), Bar()] CoVar.afooNil = @[Bar(), Bar()] # should stream to stream also be allowed? #CoVar.foo = [Bar(), Bar()] interface IFoo pass class Bar implements IFoo pass