From SO:
*opam install* and *opam pin* are the common two ways to manage the packages in the OCaml package manager, OPAM.
-*opam install* installs a latest version of package that is compatible with the
installed versions of other packages, from the repository and its
dependencies.
- *opam pin* allows us to directly specify a version of a package and its dependencies. When you pin a package, OPAM will always use the specified version, even if a newer version is available. This is useful when you need an excat version of a package for compatibility reasons or any other reason.