eiffelmethod
C++-like template based inheritance
create attributes with 'computed at first use' values
Simple Aspect weaver
Caching and aliasing with descriptors