Sorry, minor mistakes ;) Again: Thx, Simen. Unfortunately, this works only for concretet types, but not for type parameters. Example: class Test(A) { A do_nothing(A x) { return x; } } /* WORKS */ Test!int test() { return new Test!(int); } /* Error : undefined identifier A */ Test!A test() { return new Test!(A); }