I cannot understand you well, I think then. Whenever you 'typealias' a type the
new name will always be replaced with the actual type name before it is further
compiled.
Your examples always converted to
TypeA(...) -> SomeType(...)
TypeB(...) -> SomeType(...)
Since both have the same argument types and number arguments the last one will
be the one used later.
The most closest thing you can do is having 2 methods named TypeA and TypeB
that constructs two different instances of SomeType.
type SomeType
name::ASCIIString
value::Int
end
#No 'typealiase's
TypeA(x)=SomeType("A",x)
TypeB(x)=SomeType("B",x)
But TypeA and TypeB will not be 'type's.
I may have not understood you well but definetely, you cannot achieve what you
want with 'typealias'.