Symbol.hs revision 9e5c10805bd50b5baaf6bf1f6a3f085c7afb17d8
faf8ae9e57aecf780f77f114de886af4c1a0f0ccChristian MaederModule : $Header$
faf8ae9e57aecf780f77f114de886af4c1a0f0ccChristian MaederDescription : Symbols of propositional logic
faf8ae9e57aecf780f77f114de886af4c1a0f0ccChristian MaederCopyright : (c) Dominik Luecke, Uni Bremen 2007
faf8ae9e57aecf780f77f114de886af4c1a0f0ccChristian MaederLicense : GPLv2 or higher, see LICENSE.txt
9db48b4604636bfdf03e60890fc094b7bec775dcChristian MaederMaintainer : luecke@informatik.uni-bremen.de
9db48b4604636bfdf03e60890fc094b7bec775dcChristian MaederStability : experimental
9db48b4604636bfdf03e60890fc094b7bec775dcChristian MaederPortability : portable
module Temporal.Symbol
import qualified Common.Id as Id
import Common.Doc
import Common.DocUtils
import qualified Data.Set as Set
import qualified Data.Map as Map
import qualified Temporal.Sign as Sign
import qualified Temporal.Morphism as Morphism
newtype Symbol = Symbol {symName :: Id.Id}
instance Id.GetRange Symbol where
getRange = Id.getRange . symName
getSymbolMap f = Map.foldrWithKey
(\ k a -> Map.insert Symbol{symName=k} Symbol{symName=a})
getSymbolName :: Symbol -> Id.Id
idToRaw :: Id.Id -> Symbol
applySymMap :: Map.Map Symbol Symbol -> Symbol -> Symbol
applySymMap smap idt = Map.findWithDefault idt idt $ smap