| Copyright | (C) 2012 Edward Kmett | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | Edward Kmett <ekmett@gmail.com> | 
| Stability | experimental | 
| Portability | portable | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Bound.Term
Description
Synopsis
- substitute :: (Monad f, Eq a) => a -> f a -> f a -> f a
 - substituteVar :: (Functor f, Eq a) => a -> a -> f a -> f a
 - isClosed :: Foldable f => f a -> Bool
 - closed :: Traversable f => f a -> Maybe (f b)
 
Documentation
substitute :: (Monad f, Eq a) => a -> f a -> f a -> f a Source #
 replaces the free variable substitute a p wa with p in w.
>>>substitute "hello" ["goodnight","Gracie"] ["hello","!!!"]["goodnight","Gracie","!!!"]
substituteVar :: (Functor f, Eq a) => a -> a -> f a -> f a Source #
 replaces a free variable substituteVar a b wa with another free variable b in w.
>>>substituteVar "Alice" "Bob" ["Alice","Bob","Charlie"]["Bob","Bob","Charlie"]
isClosed :: Foldable f => f a -> Bool Source #
A closed term has no free variables.
>>>isClosed []True
>>>isClosed [1,2,3]False
closed :: Traversable f => f a -> Maybe (f b) Source #
If a term has no free variables, you can freely change the type of free variables it is parameterized on.
>>>closed [12]Nothing
>>>closed ""Just []
>>>:t closed ""closed "" :: Maybe [b]