handler: A -> ты ему можешь что удодно подсунуть (B,C,D,V), но как только он захочет получить "свой" тип с другого (маркера) или чего угодно) — упадёт с ClassCastException. В любом случае в компайлтайме гарантии не будет.
Ну да это понятно, только лучше наверное все-таки проверять на инит стадии, как сейчас вот работает.
Спасибо!