3.5. Deduction of type variables
As in C++: when a generic function is called,
it must be possible to determine bindings for
all its type variables. As in C++, leading type
variables may be given explicitly, and the ones
not given deduced from the function argument.