name: reverse-arguments version: 0.1.0.0 synopsis: Reverse the arguments of arbitrary functions. description: 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 license: BSD3 license-file: LICENSE author: Anselm Jonas Scholl maintainer: anselm.scholl@tu-harburg.de copyright: (c) 2016 Anselm Jonas Scholl category: Data build-type: Simple extra-source-files: README.md cabal-version: >=1.10 library exposed-modules: Data.Function.Reverse other-extensions: DataKinds, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies, UndecidableInstances build-depends: base >=4.8 && < 5 ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-incomplete-uni-patterns hs-source-dirs: src default-language: Haskell2010 source-repository head type: git location: https://github.com/ajscholl/reverse-arguments.git