name: bound category: Language, Compilers/Interpreters version: 0.9.1.1 license: BSD3 cabal-version: >= 1.9.2 license-file: LICENSE author: Edward A. Kmett maintainer: Edward A. Kmett stability: experimental homepage: http://github.com/ekmett/bound/ bug-reports: http://github.com/ekmett/bound/issues copyright: Copyright (C) 2012-2013 Edward A. Kmett synopsis: Making de Bruijn Succ Less build-type: Custom description: We represent the target language itself as an ideal monad supplied by the user, and provide a 'Scope' monad transformer for introducing bound variables in user supplied terms. Users supply a 'Monad' and 'Traversable' instance, and we traverse to find free variables, and use the Monad to perform substitution that avoids bound variables. . Slides describing and motivating this approach to name binding are available online at: . . The goal of this package is to make it as easy as possible to deal with name binding without forcing an awkward monadic style on the user. . With generalized de Bruijn term you can 'lift' whole trees instead of just applying 'succ' to individual variables, weakening the all variables bound by a scope and greatly speeding up instantiation. By giving binders more structure we permit easy simultaneous substitution and further speed up instantiation. extra-source-files: .travis.yml .ghci .gitignore .vim.custom examples/Simple.hs examples/Deriving.hs examples/Overkill.hs tests/doctests.hs travis/cabal-apt-install travis/config README.markdown CHANGELOG.markdown AUTHORS.markdown source-repository head type: git location: git://github.com/ekmett/bound.git library hs-source-dirs: src exposed-modules: Bound Bound.Class Bound.Name Bound.Scope Bound.Scope.Simple Bound.Term Bound.Var build-depends: base >= 4 && < 5, bifunctors >= 3 && < 5, binary >= 0.5 && < 0.8, bytes >= 0.4 && < 1, cereal >= 0.3.5.2 && < 0.5, comonad >= 3 && < 5, hashable >= 1.1 && < 1.3, hashable-extras >= 0.1 && < 1, prelude-extras >= 0.3 && < 1, profunctors >= 3.3 && < 5, transformers >= 0.2 && < 0.4 ghc-options: -Wall -O2 -fspec-constr -fdicts-cheap -funbox-strict-fields if impl(ghc>=7.4) build-depends: ghc-prim test-suite Simple type: exitcode-stdio-1.0 main-is: Simple.hs hs-source-dirs: examples ghc-options -Wall -threaded if impl(ghc<7.6.1) ghc-options: -Werror build-depends: base, bound, prelude-extras, transformers test-suite doctests type: exitcode-stdio-1.0 main-is: doctests.hs hs-source-dirs: tests ghc-options: -Wall -threaded if impl(ghc<7.6.1) ghc-options: -Werror build-depends: base, directory >= 1.0 && < 1.3, doctest >= 0.9 && < 0.10, filepath, vector >= 0.9 && < 0.11