По-хорошему, сапрессить можно только варнинги. Иначе никаких гарантий. По-плохому, сапрессить можно практически всё. Но тогда никаких гарантий.
можно будет в котлине upper bounds для типов ставить? понятно, что их можно ограничить в классах, где они используются MType<A, B : List>, но удобнее было бы в typealias