> A second possible use case:
>
> class C(T): T{
> // some declarations
> }
> Now you really want that template to be instantiable with T being
either
> an abstract or a concrete class. Anything else is bound to become
> extremely annoying.
Could you expand on this case a bit? I'm not sure I follow the point
one way or another.