diff options
Diffstat (limited to 'src/GF/Infra/Modules.hs')
| -rw-r--r-- | src/GF/Infra/Modules.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/GF/Infra/Modules.hs b/src/GF/Infra/Modules.hs index 9d8438f0f..3b9cf6b6a 100644 --- a/src/GF/Infra/Modules.hs +++ b/src/GF/Infra/Modules.hs @@ -23,7 +23,7 @@ module GF.Infra.Modules ( MReuseType(..), MInclude (..), extends, isInherited,inheritAll, updateMGrammar, updateModule, replaceJudgements, addFlag, - addOpenQualif, flagsModule, allFlags, mapModules, + addOpenQualif, flagsModule, allFlags, mapModules, mapModules', MainGrammar(..), MainConcreteSpec(..), OpenSpec(..), OpenQualif(..), oSimple, oQualif, ModuleStatus(..), @@ -141,9 +141,12 @@ allFlags gr = concatOptions $ map flags $ [m | (_, ModMod m) <- modules gr] mapModules :: (Module i a -> Module i a) -> MGrammar i a -> MGrammar i a -mapModules f = MGrammar . map (onSnd mapModules') . modules - where mapModules' (ModMod m) = ModMod (f m) - mapModules' m = m +mapModules f = MGrammar . map (onSnd (mapModules' f)) . modules + +mapModules' :: (Module i a -> Module i a) + -> ModInfo i a -> ModInfo i a +mapModules' f (ModMod m) = ModMod (f m) +mapModules' _ m = m data MainGrammar i = MainGrammar { mainAbstract :: i , |
