Офигеть. Такие талмуды уже пишут.
Кста, я тут на днях наткнулся на баг с генерикой и интерфейсами, и очень бы не хотел тратить несколько дней на его успешный репродюс в минимальном проекте. IR который ты готовишь же подразумевает что всё связанное с генерикой будет переделываться ?
Интерфейсы имеют очень базовую реализацию, я бы всегда использовал абстрактные классы пока вместо них