F - The type witness representing the type constructor. This is often a nested Mu empty class.A - The first type applied to the type constructor.B - The second type applied to the type constructor.public interface App2<F extends K2,A,B>
For a generic (or higher kinded) type F<_, _>, the use of App2<F.Mu, A, B>
corresponds to the parameterized type F<A, B>. This allows algorithms to be generified over the
type of the constructor F, which is not otherwise possible in Java.