The problem: I have 2 types. They have the same internal structure, and both can be thought of as subtypes of an abstract root.
abstract Root type Foo <: Root ... end type Bar <: Root ... end Because they have the same internal structure, I could equally define a parametric type `Root`, and typealias `Foo` and `Bar`: type Root ... end typealias Foo Root{:Foo} typealias Bar Root{:Bar} The Question: Given a collection of objects of these types (say a vector), where both Foo and Bar will be present, which way is more performant/Julian? Basically, is it better to have a collection of an abstract type (option 1), or of a parametric type with the parameters yet to be specified (option 2)?