module NameMapsProp where
import NameMaps
import NameMapsPropStruct()
import NameMapsBaseStruct()
import NameMapsBase()
import PropSyntax
--import MUtils
instance AccNames i (HsExpI i) where accNames = accNamesRec
instance AccNames i (HsDeclI i) where accNames = accNamesRec
instance AccNames i (AssertionI i) where accNames = accNamesRec
instance AccNames i (PredicateI i) where accNames = accNamesRec
instance MapNames i1 (HsDeclI i1) i2 (HsDeclI i2) where mapNames2 = mapNames2Rec
instance MapNames i1 (HsExpI i1) i2 (HsExpI i2) where mapNames2 = mapNames2Rec
instance MapNames i1 (AssertionI i1) i2 (AssertionI i2) where mapNames2 = mapNames2Rec
instance MapNames i1 (PredicateI i1) i2 (PredicateI i2) where mapNames2 = mapNames2Rec
instance (Monad m,Functor m) => SeqNames m (HsDeclI (m i)) (HsDeclI i) where
seqNames = seqNamesRec
instance (Monad m,Functor m) => SeqNames m (HsExpI (m i)) (HsExpI i) where
seqNames = seqNamesRec
instance (Monad m,Functor m) => SeqNames m (AssertionI (m i)) (AssertionI i) where
seqNames = seqNamesRec
instance (Monad m,Functor m) => SeqNames m (PredicateI (m i)) (PredicateI i) where
seqNames = seqNamesRec
instance (MapNames i1 b1 i2 b2,MapNames i1 p1 i2 p2)
=> MapNames i1 (Prop b1 p1) i2 (Prop b2 p2)
where mapNames2 d f = mapProp (mapNames2 d f) (mapNames2 d f)
instance (SeqNames m b1 b2,SeqNames m p1 p2)
=> SeqNames m (Prop b1 p1) (Prop b2 p2) where
seqNames = seqProp . mapProp seqNames seqNames