A TemplateSpecialisation supports resolution of template parameter within an element referenced from an OCL expression.
For instance a PropertyCallExp.referredProperty references the unspecialised Property and consequently the type and owningType
of the referredProperty may have unresolved template parameters. These may be resolved by exploiting the bindings of
the ProperyCallExp.source.
Invocation should first invoke needsSpecialisation() to discover whether the cost of constructing a TemplateSpecialisation
can be bypassed. If specialisation is needed a TemplateSpecialisation should be constructed for the prevailing OCL Standard
Library, and known type equivalences installed by invoking installEquivalence() for each. getSpecialisation may then be used
to resolve the type.