Portability | non-portable (GHC Extensions) |
---|---|
Stability | experimental |
Maintainer | Tom Hvitved <hvitved@diku.dk> |
Safe Haskell | None |
This module defines a monad for generating fresh, abstract names, useful e.g. for defining equality on terms.
Documentation
Abstract notion of a name (the constructor is hidden).
withName :: (Name i -> FreshM a) -> FreshM aSource
Run the given computation with the next available name.
nameCoerce :: Name i -> Name jSource
Change the type tag of a name.
evalFreshM :: FreshM a -> aSource
Evaluate a computation that uses fresh names.