On Monday, 26 November 2012 at 19:17:30 UTC, Eldar Insafutdinov
wrote:
The problem lies within how the compiler is engineered. Basic
built-in types should be a part of symbol table and inserted
into it at the compiler startup. That means that any mentioning
of built-in types in the parser should be removed and any
differences between user defined symbols and basic types should
be as small as possible. That will remove many special cases
from the compiler as well as automatically resolve the alias
problem. As far as I understand this is how basic types are
implemented in the Haskell compiler.
Cheers
Eldar
Although I realize now that this will not make alias accept
derived types like arrays, pointers etc. But regardless,
distinction between built-in and user defined types should be
very little, even in the compiler internals. In the end this is
the whole point of OOP which allows for the user to make the
types which are just as good as internal ones.