'typealias' is not for defining new type but calling a type different names. 
Therefore, TypeA and TypeB names refer to and is replaced by the same type 
namely SomeType.

Having said that, You may do

type SomeType{T}
   value::Int
end

Then, you can use typealias TypeA and TypeB as

typealias TypeA SomeType{:A}
typealias TypeB SomeType{:B}

You can have functions with SomeType{T} in general. When "A" or "B" is needed I 
guess you can use string(T) to get that.

Reply via email to