Usage of types promotion: instantiation of generics and lambda terms are OK. There is strange code generated for complex nested patterns.