From 2bd22e078aa0205f60bb414d2e7f17d73db1eaea Mon Sep 17 00:00:00 2001 From: aarne Date: Mon, 1 Nov 2004 21:41:18 +0000 Subject: some bug fixes in type check and solve --- src/GF/Grammar/Lookup.hs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/GF/Grammar/Lookup.hs') diff --git a/src/GF/Grammar/Lookup.hs b/src/GF/Grammar/Lookup.hs index 19dc4cda1..be69a1656 100644 --- a/src/GF/Grammar/Lookup.hs +++ b/src/GF/Grammar/Lookup.hs @@ -101,6 +101,18 @@ qualifAnnotPar m t = case t of Con c -> QC m c _ -> composSafeOp (qualifAnnotPar m) t +lookupAbsDef :: SourceGrammar -> Ident -> Ident -> Err (Maybe Term) +lookupAbsDef gr m c = errIn ("looking up absdef of" +++ prt c) $ do + mi <- lookupModule gr m + case mi of + ModMod mo -> do + info <- lookupInfo mo c + case info of + AbsFun _ (Yes t) -> return $ return t + AnyInd _ n -> lookupAbsDef gr n c + _ -> return Nothing + _ -> Bad $ prt m +++ "is not an abstract module" + lookupLincat :: SourceGrammar -> Ident -> Ident -> Err Type lookupLincat gr m c | elem c [zIdent "String", zIdent "Int"] = -- cgit v1.2.3