termlib-0.9: Term Rewriting Library

Safe HaskellNone

Termlib.Signature

Documentation

data SignatureMonad sym attribs a

Instances

Monad (SignatureMonad sym attribs) 

empty :: Signature sym attribs

cardinality :: Signature sym attribs -> Int

fresh :: Enumerateable sym => attribs -> SignatureMonad sym attribs sym

maybeFresh :: (Enumerateable sym, Eq attribs) => attribs -> SignatureMonad sym attribs sym

getAttributes :: Enumerateable sym => sym -> SignatureMonad sym attribs attribs

modifySignature :: (Signature sym attribs -> Signature sym attribs) -> SignatureMonad sym attribs (Signature sym attribs)

runSignature :: SignatureMonad sym attribs a -> Signature sym attribs -> (a, Signature sym attribs)

findByAttribute :: (Enumerateable sym, MonadPlus m) => (attribs -> Bool) -> Signature sym attribs -> m sym

lookup :: (Enumerateable sym, Eq attribs) => Int -> Signature sym attribs -> Maybe attribs

attribute :: Enumerateable sym => (attribs -> a) -> sym -> Signature sym attribs -> a

attributes :: Enumerateable sym => sym -> Signature sym attribs -> attribs

alterAttributes :: Enumerateable sym => (Maybe attribs -> Maybe attribs) -> sym -> Signature sym attribs -> Signature sym attribs

restrictToSymbols :: (Ord sym, Enumerateable sym) => Signature sym attribs -> Set sym -> Signature sym attribs

symbols :: (Ord sym, Enumerateable sym) => Signature sym attribs -> Set sym

liftS :: (Signature sym attribs -> a) -> SignatureMonad sym attribs a

foldWithKey :: Enumerateable sym => (sym -> attribs -> b -> b) -> b -> Signature sym attribs -> b

toList :: Enumerateable sym => Signature sym attribs -> [(sym, attribs)]

getSignature :: SignatureMonad sym attrib (Signature sym attrib)