I tried to use common c++ technique in D: class Super (alias T) { alias T.Type A; >>> Error: no property 'Type' for type xxx.Sub' void test() { alias T.Type B; >>> ok } } class Sub : Super !(Sub) { alias int Type; } alias A fails to compile although alias B inside scope of function is ok. Is that intended? What is the idea behind that? Vladimir