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

Plain-text version of ScopeNamesProp.hs | Valid HTML?