HaRe-0.6: tools/property/defs/ScopeNamesProp.hs
module ScopeNamesProp where
import ScopeNames
import ScopeNamesPropStruct
import ScopeNamesBaseStruct
import ScopeNamesBase() -- instance for HsTypeI
import DefinedNamesProp()
import FreeNamesProp()
import PropSyntax
import MUtils
instance Eq i => ScopeNames i e (HsExpI i) (HsExpI (i,e)) where
scopeNames = scopeNamesRec
instance Eq i => ScopeNames i e (HsDeclI i) (HsDeclI (i,e)) where
scopeNames = scopeNamesRec
instance Eq i => ScopeNames i e (AssertionI i) (AssertionI (i,e)) where
scopeNames = scopeNamesRec
instance Eq i => ScopeNames i e (PredicateI i) (PredicateI (i,e)) where
scopeNames = scopeNamesRec
instance (ScopeNames i e b1 b2,ScopeNames i e p1 p2)
=> ScopeNames i e (Prop b1 p1) (Prop b2 p2) where
scopeNames ext p = mapMProp sc sc p
where sc x = scopeNames ext x
---
instance (ScopeNames i e c1 c2,ScopeNames i e t1 t2)
=> ScopeNames i e (Q c1 t1) (Q c2 t2) where
scopeNames ext (c:=>t) = (:=>) # sc c <# sc t
where sc x = scopeNames ext x