From f08eb82f2beb069a0f9da2dbba4c6f09cf781e83 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 6 Dec 2007 12:54:15 +0000 Subject: restored work on Extend and Rename --- src/GF/Devel/Grammar/Modules.hs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/GF/Devel/Grammar/Modules.hs') diff --git a/src/GF/Devel/Grammar/Modules.hs b/src/GF/Devel/Grammar/Modules.hs index 23dfdae72..43458ce90 100644 --- a/src/GF/Devel/Grammar/Modules.hs +++ b/src/GF/Devel/Grammar/Modules.hs @@ -30,6 +30,7 @@ addModule c m gf = gf {gfmodules = insert c m (gfmodules gf)} data Module = Module { mtype :: ModuleType, + miscomplete :: Bool, minterfaces :: [(Ident,Ident)], -- non-empty for functors minstances :: [((Ident,MInclude),[(Ident,Ident)])], -- non-empty for instant'ions mextends :: [(Ident,MInclude)], @@ -39,12 +40,24 @@ data Module = Module { } emptyModule :: Ident -> Module -emptyModule m = Module MTGrammar [] [] [] [] empty empty +emptyModule m = Module MTGrammar True [] [] [] [] empty empty type MapJudgement = Map Ident JEntry -- def or indirection isCompleteModule :: Module -> Bool -isCompleteModule = Prelude.null . minterfaces +isCompleteModule = miscomplete ---- Prelude.null . minterfaces + +isInterface :: Module -> Bool +isInterface m = case mtype m of + MTInterface -> True + MTAbstract -> True + _ -> False + +interfaceName :: Module -> Maybe Ident +interfaceName mo = case mtype mo of + MTInstance i -> return i + MTConcrete i -> return i + _ -> Nothing listJudgements :: Module -> [(Ident,JEntry)] listJudgements = assocs . mjments -- cgit v1.2.3