On Tue, 12 Jun 2001, Robert Feldt wrote:
> On Tue, 12 Jun 2001, Mathieu Bouchard wrote:
> Could you briefly summarize the benefits from having these MetaTypes? Is
> it to get "automatic" semantics checking?

First, formal description. I want a document you can point at and say:
"*this* goes *there*".

Second, type checking. Formal description has to be hooked into code
(even: turned into code) to make sure it agrees with "real code", and that
"real code" agrees with it. 

Because type checking only checks individual arguments, more general
constraint-checking could be added later, or definitions could be
rearranged to remove the need for constraint-checking. (I haven't examined
that issue yet)

Third: of the four mentioned metatypes, two of them (tuple,list) are
metaclasses, so the objects they produce are themselves classes, whose
instances are actual parts of syntax trees. Those two metaclasses would be
the hooks by which one would add features like traversal, annotation,
observability, incremental type-checking, one-pass type-checking,
undo/redo, serialization, etc. 

matju