Julia extension of where clause and dispatching
Idea is to enable dispatch of
Julia methods depending not only on the type (including type parameters), but on special properties of argument types.
As we want to extend the method dispatching system, which is based on type hierarchies, the mentioned properties are expressed as function calls with the type as single argument. The return value of the function must be an abstract or concrete type by itself.
The syntax of the where clause is extended by allowing the type variable to be replaced by a function call to the variable. It may be restricted by upper - and lower bounds.