You know what, just because I want to watch the world burn I did the horrible hacky way. mixin template Magic() { import std.array : split; static if (is(typeof(this) == T!(A), alias T, A...)) { mixin(`alias Other = ` ~ T.stringof.split('(')[0] ~ `!(K.B);`); } else { static assert (0); } }