Stevan, Up until today, I thought I had a good idea of how your metamodel works, but now I'm confused. My main sticking point is that a class Foo seems to have three different aspects:
Foo class(Foo) meta(Foo) For each of these, could you please try to explain: 1) Roughly what its responsibility is (and how it relates to the others) 2) Whether it is actually an object 3) If so, what its class is I realise that some of these details are probably spread around Synopses, source code, and the inside of your own head, but it would really help to have a concise, clear definition of each. So far, this is what I have picked up; some/most of it is probably wrong: ~ Foo ~ Is a type that variables etc. can be declared to have Is not an object => I'm really not sure about this... ~ class(Foo) ~ Used as the invocant of class methods => Any other purpose? Is an object; instance of the 'Class' class => How do we get properly-typed access to members that class(Foo) has that aren't declared in 'Class'? ~ meta(Foo) ~ Members contain info /about/ Foo, rather than /of/ Foo => This is to avoid name-clashes with 'name', 'authority' etc. Is an object; instance of the 'MetaClass' class Thanks, Stuart