module DefinedNamesProp where import DefinedNames import DefinedNamesPropStruct() import DefinedNamesBase() import PropSyntax(HsDeclI,Prop,prop,mapProp,struct,listBase) import TiNames(ValueId) instance DefinedNames i (HsDeclI i) where definedNames = definedNamesRec instance ClassMethods i (HsDeclI i) where classMethods c cnt = listBase (classMethods c cnt) . struct instance ValueId i => AddName i (HsDeclI i) where addName = addNameRec instance MapDefinedNames i (HsDeclI i) where mapDefinedNames = mapDefinedNamesRec {- instance DefinedNames i (HsPatI i) where definedNames = definedNamesRec -} instance (DefinedNames i b,DefinedNames i p) => DefinedNames i (Prop b p) where definedNames = prop definedNames definedNames instance (ClassMethods i b,ClassMethods i p) => ClassMethods i (Prop b p) where classMethods c cnt = prop (classMethods c cnt) (classMethods c cnt) instance (AddName i b,AddName i p) => AddName i (Prop b p) where addName = mapProp addName addName instance (MapDefinedNames i b,MapDefinedNames i p) => MapDefinedNames i (Prop b p) where mapDefinedNames f = mapProp m m where m x = mapDefinedNames f x