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)?

Reply via email to