Avoid generic types with more than two type parameters as users have difficulties understanding what type parameters represent ...