Safe Haskell | None |
---|
- data Id
- type IdMap = IntjectionMap Id
- data IdNameT m a
- type IdSet = IntjectionSet Id
- anonymous :: Int -> Id
- va1 :: Id
- va2 :: Id
- va3 :: Id
- va4 :: Id
- va5 :: Id
- addBoundNamesIdMap :: Monad m => IntjectionMap Id a -> IdNameT m ()
- addBoundNamesIdSet :: Monad m => IdSet -> IdNameT m ()
- addNamesIdSet :: Monad m => IdSet -> IdNameT m ()
- idMapToIdSet :: IdMap a -> IdSet
- anonymousIds :: [Id]
- sillyId :: Id
- etherealIds :: [Id]
- isEtherealId :: Id -> Bool
- isInvalidId :: Id -> Bool
- isEmptyId :: Id -> Bool
- idSetToIdMap :: (Id -> a) -> IdSet -> IdMap a
- mapMaybeIdMap :: (a -> Maybe b) -> IdMap a -> IdMap b
- idSetFromList :: [Id] -> IdSet
- idToInt :: Id -> Int
- idSetFromDistinctAscList :: [Id] -> IdSet
- idMapFromList :: [(Id, a)] -> IdMap a
- idMapFromDistinctAscList :: [(Id, a)] -> IdMap a
- idSetToList :: IdSet -> [Id]
- idMapToList :: IdMap a -> [(Id, a)]
- emptyId :: Id
- newIds :: IdSet -> [Id]
- newId :: Int -> (Id -> Bool) -> Id
- mixInt :: Int -> Int -> Int
- mixInt3 :: Int -> Int -> Int -> Int
- toId :: Name -> Id
- fromId :: Monad m => Id -> m Name
- candidateIds :: Int -> [Id]
- runIdNameT :: Monad m => IdNameT m a -> m (a, IdSet)
Documentation
Eq Id | |
Ord Id | |
Show IdSet | |
Show Id | |
Binary IdSet | |
Binary Id | |
GenName Id | |
Intjection Id | |
FromAtom Id | |
FreeVars TVr IdSet | determine free variables of a binding site |
FreeVars E IdSet | |
FreeVars ARules IdSet | |
FreeVars Rule IdSet | we delete the free variables of the heads of a rule from the rule's free variables. the reason for doing this is that the rule cannot fire if all its heads are in scope, and if it were not done then many functions seem recursive when they arn't actually. |
FreeVars Comb IdSet | |
DocLike d => PPrint d Id | |
Monad m => NameMonad Id (IdNameT m) | |
FreeVars E [Id] | |
FreeVars E (IdMap (Maybe E)) | |
FreeVars E (IdMap TVr) | |
FreeVars Rule [Id] | |
FreeVars Comb [Id] | |
Show v => Show (IdMap v) | |
Binary a => Binary (IdMap a) | |
FreeVars (Alt E) IdSet | |
FreeVars (Alt E) (IdMap TVr) |
type IdMap = IntjectionMap IdSource
Name monad transformer.
type IdSet = IntjectionSet IdSource
addBoundNamesIdMap :: Monad m => IntjectionMap Id a -> IdNameT m ()Source
addBoundNamesIdSet :: Monad m => IdSet -> IdNameT m ()Source
addNamesIdSet :: Monad m => IdSet -> IdNameT m ()Source
idMapToIdSet :: IdMap a -> IdSetSource
anonymousIds :: [Id]Source
etherealIds :: [Id]Source
isEtherealId :: Id -> BoolSource
isInvalidId :: Id -> BoolSource
id isn't anonymous or atom-mapped
idSetToIdMap :: (Id -> a) -> IdSet -> IdMap aSource
mapMaybeIdMap :: (a -> Maybe b) -> IdMap a -> IdMap bSource
idSetFromList :: [Id] -> IdSetSource
idSetFromDistinctAscList :: [Id] -> IdSetSource
idMapFromList :: [(Id, a)] -> IdMap aSource
idMapFromDistinctAscList :: [(Id, a)] -> IdMap aSource
idSetToList :: IdSet -> [Id]Source
idMapToList :: IdMap a -> [(Id, a)]Source
find some temporary ids that are not members of the set, useful for generating a small number of local unique names.
candidateIds :: Int -> [Id]Source
runIdNameT :: Monad m => IdNameT m a -> m (a, IdSet)Source
Run the name monad transformer.