# bound: Making de Bruijn Succ Less

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:

http://www.slideshare.net/ekmett/bound-making-de-bruijn-succ-less

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.

[Skip to Readme]

Versions | 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.2, 0.2.1, 0.3.1, 0.3.2, 0.4, 0.5, 0.5.0.1, 0.5.0.2, 0.5.1, 0.6, 0.6.1, 0.7, 0.8, 0.8.1, 0.9, 0.9.0.1, 0.9.1, 0.9.1.1, 1.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 2, 2.0.1 |
---|---|

Change log | CHANGELOG.markdown |

Dependencies | base (==4.*), bifunctors (>=3 && <5), binary (>=0.5 && <0.8), bytes (>=0.4 && <1), cereal (>=0.3.5.2 && <0.5), comonad (>=3 && <5), ghc-prim, hashable (>=1.1 && <1.3), hashable-extras (>=0.1 && <1), prelude-extras (>=0.3 && <1), profunctors (>=3.3 && <5), transformers (>=0.2 && <0.4) [details] |

License | BSD-3-Clause |

Copyright | Copyright (C) 2012-2013 Edward A. Kmett |

Author | Edward A. Kmett |

Maintainer | Edward A. Kmett <ekmett@gmail.com> |

Category | Language, Compilers/Interpreters |

Home page | http://github.com/ekmett/bound/ |

Bug tracker | http://github.com/ekmett/bound/issues |

Source repo | head: git clone git://github.com/ekmett/bound.git |

Uploaded | by EdwardKmett at Sat Apr 5 18:01:57 UTC 2014 |

Distributions | LTSHaskell:2.0.1, NixOS:2.0.1, Stackage:2.0.1 |

Downloads | 15153 total (104 in the last 30 days) |

Rating | 2.5 (votes: 4) [estimated by rule of succession] |

Your Rating | |

Status | Docs available [build log] Successful builds reported [all 1 reports] Hackage Matrix CI |

## Downloads

- bound-1.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)