| Copyright | (c) 2011 Patrick Bahr Tom Hvitved |
|---|---|
| License | BSD3 |
| Maintainer | Tom Hvitved <hvitved@diku.dk> |
| Stability | experimental |
| Portability | non-portable (GHC Extensions) |
| Safe Haskell | None |
| Language | Haskell98 |
Data.Comp.Param.Multi.FreshM
Description
This module defines a monad for generating fresh, abstract names, useful e.g. for defining equality on terms.
Documentation
Monad for generating fresh (abstract) names.
Abstract notion of a name (the constructor is hidden).
withName :: (Name i -> FreshM a) -> FreshM a Source #
Run the given computation with the next available name.
nameCoerce :: Name i -> Name j Source #
Change the type tag of a name.
evalFreshM :: FreshM a -> a Source #
Evaluate a computation that uses fresh names.