sentence: such software entities are known as generics in ada , delphi , eiffel , java , c# , f# , swift , and visual basic .net ; parametric polymorphism in ml , scala and haskell ( the haskell community also uses the term '' generic '' for a related but somewhat different concept ) ; template in c++ and d ; and parameterized types in the influential 1994 book design patterns .