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'.

Reply via email to