F1_1<X,P1,Y>, F2_1<X,P1,P2,Y>, F2_2<X,P1,P2,Y>, ..., F4_1<X,P1,P2,P3,P4,Y>, ..., F4_4<X,P1,P2,P3,P4,Y>

for functions that depend on parameters and for which any parameter can be made to play the role of a function argument. Given a function

Y f(X const& x, P1 const& p1, ..., P4 const& p4)

one may form functions of type

F<X,Y>, F<P1,Y>, ..., F<P4,Y>

which depend on the remaining arguments of f as parameters. This allows a complicated equation between several quantities (e.g. the interaction energy as a function of the states of the interacting subsystems) to be coded once, and nevertheless to be considered as a function of any of its arguments, not only of the the one which happens to hold the first position in the list

x, p1, ..., p4.

An example for the syntax is

F<P2,Y> f2 = F4_2<X, P1, P2, P3, P4, Y>(x, p1, p3, p4)(f)

(finished)