Say I have a type of kind l :: * -> * -> *, so I need to apply 2 types for example a, and b to get a simple type l a b.
How can I map the type l :: * -> * -> * into a new type m(l) :: * -> * -> * where m(l) b a means the same as l a b for every a,b ? Here a,b are not constants. Is it possible? Is it wrong to think of that?
Or without taking
las parameterEdit:
Moreover, you can give explicit kind signatures too