Actually "mixin New!()" should be enough, as typeof(this) resolves to enclosing type in template mixins. And inheritance brings nothing over mixins in terms of guarantees - forgetting to use proper Base or use proper method is almost the same level of accident.