module HyLo.Signature.String( StringSignature,
PropSymbol(..),
NomSymbol(..),
RelSymbol(..), inv)
where
import HyLo.Signature ( Signature, IsRelSym(..) )
newtype PropSymbol = PropSymbol String deriving(Eq, Ord, Show, Read)
newtype NomSymbol = NomSymbol String deriving(Eq, Ord, Show, Read)
data RelSymbol = RelSymbol String
| InvRelSymbol String
deriving(Eq, Ord, Show, Read)
inv :: RelSymbol -> RelSymbol
inv ( RelSymbol r) = InvRelSymbol r
inv (InvRelSymbol r) = RelSymbol r
instance IsRelSym RelSymbol where
invRel = Just . inv
type StringSignature = Signature NomSymbol PropSymbol RelSymbol