This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
This module provides the reverseArgs function which flips
the arguments of a function of arbitrary arity. The return
value of the flipped function can not be fully polymorphic
as this could imply it is a function.
Example:
myFlip :: (a -> b -> c -> d -> [e]) -> d -> c -> b -> a -> [e]
myFlip = reverseArgs
However, if you supply a proof (of the form IsFun a ~ 'False)
that a is not a function, you can also return a polymorphic type.
Example:
myFlip :: IsFun e ~ 'False => (a -> b -> c -> d -> e) -> d -> c -> b -> a -> e
myFlip = reverseArgs