invert-1.0.0.2: invert.cabal
cabal-version: 3.0
name: invert
version: 1.0.0.2
synopsis: Automatically generate a function’s inverse
category: Functions
description:
This library deals with computing a function’s inverse.
This is, of course, not possible in general, so the
applicability of this library comes with some caveats:
* The function’s domain must be enumerable, and
preferably rather small. We provide a few suggestions
and utilities for how to enumerate the domain.
* The function’s codomain must belong to the @Eq@ class.
An @Ord@ or @Hashable@ instance is also nice, to
accommodate a data structure for efficient lookups.
* The functions for inverting injections, surjections,
and bijections require some care to use correctly,
because the library does not verify these properties.
The main purpose of this library is to provide documentation
and convenience. It does not contain a great quantity of code,
so a user hesitant to incur a dependency on the package might
well choose only to read and borrow its techniques.
build-type: Simple
author: Chris Martin
maintainer: Chris Martin, Julie Moronuki
homepage: https://github.com/typeclasses/invert
bug-reports: https://github.com/typeclasses/invert/issues
license: Apache-2.0
license-file: license.txt
common base
default-language: Haskell2010
ghc-options: -Wall
build-depends:
base ^>= 4.12 || ^>= 4.13 || ^>= 4.14 || ^>= 4.15 || ^>= 4.16
, containers ^>= 0.6
, hashable ^>= 1.2.7 || ^>= 1.3 || ^>= 1.4
, unordered-containers ^>= 0.2.9
, generic-deriving ^>= 1.14
, vector ^>= 0.12
library
import: base
exposed-modules: Invert, Invert.Reexport
other-modules: Map, Vector
hs-source-dirs: src
default-extensions:
NoImplicitPrelude
, NamedFieldPuns
, ExistentialQuantification
test-suite billing-codes-example
import: base
type: exitcode-stdio-1.0
main-is: billing-codes.hs
hs-source-dirs: examples
build-depends: invert
benchmark invert-benchmark
import: base
default-extensions: NumericUnderscores
type: exitcode-stdio-1.0
hs-source-dirs: benchmarks
main-is: bench.hs
ghc-options: -O2
build-depends: invert
build-depends: criterion ^>= 1.5