It applear my last solution doesn't work as is, since the second type alias overwrites the first. The workaounrd I found is the making the second alias to the first typealias, i.e.,
typealias TypeA SomeType TypeA(value::Int) = SomeType("A", value) typealias TypeB TypeA TypeB(value::Int) = SomeType("B", value) I think this might be the result of the way the Julia parser holds typealiases, but can't say if this is a matter of design or a bug. I'll post a different thread on the matter. Uri