name: bound category: Language, Compilers/Interpreters version: 0.5.0.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 Edward A. Kmett synopsis: Making de Bruijn Succ Less 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. build-type: Simple extra-source-files: .travis.yml examples/Simple.hs examples/Deriving.hs examples/Overkill.hs tests/doctests.hs README.markdown CHANGELOG.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.Term Bound.Var build-depends: base >= 4 && < 5, bifunctors == 3.0.*, comonad == 3.0.*, prelude-extras >= 0.2 && < 0.3, 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 -- Stating these, despite being more correct, causes spurious warnings to -- end-users of older Cabal versions, so we don't. -- other-extensions: CPP -- if impl(ghc) -- other-extensions: DeriveDataTypeable -- if impl(ghc>=7.4) -- other-extensions: DeriveGeneric DefaultSignatures 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 -- Verify the results of the examples 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.*