I’ve been fascinated with Generics for a while, they can be quite hard to grasp, understanding why and where they should be used. The main motivation for the use of generics is to provide meaningful type constraints between members, Generics or Parametric Polymorphism, are used in most programming languages, and although they can be harder to understand, there are 5 main benefits to using them.