homepage: https://github.com/oisdk/arity-generic-liftA#readme
changelog-type: ''
hash: 40be27b56af59a5f884c1fc5dea1d756dd294707680a811132e174ec27c117b3
test-bench-deps:
  base: ! '>=4.7 && <5'
  arity-generic-liftA: -any
  doctest: ! '>=0.3.0'
maintainer: mail@doisinkidney.com
synopsis: Provides an arity-generic version of the liftA2, liftA3... liftAn functions.
changelog: ''
basic-deps:
  base: ! '>=4.7 && <5'
all-versions:
- 0.1.0.0
author: Donnacha Oisín Kidney
latest: 0.1.0.0
description-type: markdown
description: |
  # arity-generic-liftA

  There's a family of functions in
  [Control.Applicative](https://hackage.haskell.org/package/base-4.11.0.0/docs/Control-Applicative.html)
  which follow the pattern `liftA2`, `liftA3`, etc. Using some
  tricks from Richard Eisenberg's thesis we can write them all at once. This
  package does exactly that, providing a function (`lift`) which is an
  arity-generic version of the `liftAn`.

  ```haskell
  >>> lift (\x y z -> x ++ y ++ z) (Just "a") (Just "b") (Just "c")
  Just "abc"
  ```

  [Eisenberg, Richard A. “Dependent Types in Haskell: Theory and Practice.” University of Pennsylvania, 2016.](https://github.com/goldfirere/thesis/raw/master/built/thesis.pdf)
license-name: MIT

Update from Hackage at 2018-12-31T17:07:32Z
Update from Hackage at 2018-12-31T17:07:32Z
