{-# OPTIONS_GHC -fglasgow-exts #-} 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