In using the Cmdliner package I see the following usage:
Term.(const arg1 arg2 ), – where arg1 is typeCmdliner.Term.t
The type of Term. is
'a => Cmdliner.Term.t('a)
In the Term module documentation it says:
type +'a t - which I have no idea how to read.
So what is happening? What this Term.(xxx) doing. I is not a function call, What in the module Term is receiving the expression, and what is it doing with that expression? (this reminds me of Monads in Haskell, but I know Monads and Functors are not used that often in OCAML).
Sometimes I see things like
'a string list
I understand 'a list and string list (parameterized types) but what does it mean when they are cascaded and what is the process for unwrapping such an object?