I learned the difference between C++ templates, Java generics and C# generics from https://stackoverflow.com/a/31876747/3284469, which help me better understand how to use them correctly in different ways.
Classes in OCaml can also have type parameters, see "Class Parameters and Polymorphism" in https://realworldocaml.org/v1/en/html/classes.html.
If I am correct, in OCaml, while classes can be made explicitly parametric polymorphism, functions implicitly parametric polymorphism?
To help me learn to use generics in OCaml, which language's generics are generic classes and functions in OCaml similar to, C++, Java or C#? Am I correct that because OCaml's functions are made implicit parametric polymorphic instead of explicitly, and the generic functions in C++, Java and C# are explicitly parametric polymorphic, they are in no way similar?
OCaml seems to have a third generics: generic modules called functors. If I am correct, generic modules are different from generic classes and functions in OCaml. My questions here are only about classes and functions.
Thanks.