| Copyright | (c) 2014 Edwin Westbrook, Nicolas Frisby, and Paul Brauner |
|---|---|
| License | BSD3 |
| Maintainer | emw4@rice.edu |
| Stability | experimental |
| Portability | GHC |
| Safe Haskell | None |
| Language | Haskell98 |
Data.Binding.Hobbits.Closed
Description
This module uses Template Haskell to distinguish closed terms, so that the
library can trust such functions to not contain any Name values in their
closure.
Abstract types
The type Cl a represents a closed term of type a,
i.e., an expression of type a with no free (Haskell) variables.
Since this cannot be checked directly in the Haskell type system,
the Cl data type is hidden, and the user can only create
closed terms using Template Haskell, through the cl operator.
Operators involving Cl
noClosedNames :: Cl (Name a) -> b Source
noClosedNames encodes the hobbits guarantee that no name can escape its
multi-binding.