static void TestThisOrOther(IThis <IOther> param) { param.doThis(); param.Self.doOther(); }
static void TestThisOrThat(IThis <IThat> param) { param.doThis(); param.Self.doThat(); }