module MapDeclMPropStruct where
import MapDeclM
import HsPropStruct
import HsPropMaps
-- we assume only "expressions" & "declarations" may contain declarations
instance (MapDeclM pa ds,MapDeclM pp ds) => MapDeclM (PD i pa pp) ds where
mapDeclM f = seqPD . mapPD return m m
where m x = mapDeclM f x
instance (MapDeclM e ds,MapDeclM pa ds,MapDeclM pp ds)
=> MapDeclM (PA i e t pa pp) ds where
mapDeclM f = seqPA . mapPA return m return m m
where m x = mapDeclM f x
instance (MapDeclM e ds,MapDeclM pa ds,MapDeclM pp ds)
=> MapDeclM (PP i e p t pa pp) ds where
mapDeclM f = seqPP . mapPP return m return return m m
where m x = mapDeclM f x