Reverse the arguments of arbitrary functions.
|Latest on Hackage:||0.1.0.0|
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.
Reversing function arguments
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.
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.
myFlip :: IsFun e ~ 'False => (a -> b -> c -> d -> e) -> d -> c -> b -> a -> e myFlip = reverseArgs