[put context nito scope, accessaable via IgorMonad
martin.hofmann@uni-bamberg.de**20090715050744] hunk ./src/Context/ModuleContext.hs 27
+    
hunk ./src/Context/ModuleContext.hs 35
+synCtxOnly :: ModuleCtx -> SC.SynCtx
+synCtxOnly = mctx_synctx
+
hunk ./src/Context/SynthesisContext.hs 6
-import Logging
-import Control.Monad.State
+import Syntax.Types
+import Logging.PrettyPrinter
+import Control.Monad.Reader
hunk ./src/Context/SynthesisContext.hs 13
-
+-- not fully used yet
hunk ./src/Context/SynthesisContext.hs 94
-defaulttypes     = Map.empty
+defaulttypes     = Map.fromList
+    [('(==), (AppT 
+              (AppT ArrowT (mkVarT "a")) 
+              (AppT (AppT ArrowT (mkVarT "a")) 
+                    (ConT ''Bool))))
+--
+--    , '(/=), (AppT 
+--              (AppT ArrowT (mkVarT "a")) 
+--              (AppT (AppT ArrowT (mkVarT "a")) 
+--                    (ConT ''Bool)))
+    ,('(<), (AppT 
+              (AppT ArrowT (mkVarT "a")) 
+              (AppT (AppT ArrowT (mkVarT "a")) 
+                    (ConT ''Bool))))
+--    ,('(>=), (AppT 
+--              (AppT ArrowT (mkVarT "a")) 
+--              (AppT (AppT ArrowT (mkVarT "a")) 
+--                    (ConT ''Bool))))
+    ,('(>), (AppT 
+              (AppT ArrowT (mkVarT "a")) 
+              (AppT (AppT ArrowT (mkVarT "a")) 
+                    (ConT ''Bool))))
+--    ,('(<=), (AppT 
+--              (AppT ArrowT (mkVarT "a")) 
+--              (AppT (AppT ArrowT (mkVarT "a")) 
+--                    (ConT ''Bool))))
+    ]
+    
hunk ./src/Context/SynthesisContext.hs 146
-    [(mkName "Ord",[mkName "Eq"])
-    ,(mkName "Eq",[])]
-defaultmembers   = Map.empty
+    [(''Ord,[''Eq])
+    ,(''Eq,[])]
+defaultmembers   = Map.fromList
+    [(''Eq,['(==)
+           --,'(/=)
+           ])
+    ,(''Ord,['(<)
+--            ,'(>=)
+            ,'(>)
+--            ,'(<=)
+            ])
+    ]
hunk ./src/Context/SynthesisContext.hs 183
+
+
hunk ./src/Context/SynthesisContext.hs 189
-type SC m = (StateT SynCtx m) 
-type SCLM = SC LM
+type C m = (ReaderT SynCtx m) 
hunk ./src/Context/SynthesisContext.hs 191
-execSCT = runStateT
+withC :: (Monad m) => C m a -> SynCtx -> m a
+withC = runReaderT
hunk ./src/Context/SynthesisContext.hs 194
-lookIn :: (Ord a, Show a, MonadState SynCtx m) => (SynCtx -> Map.Map a b) -> a -> m b
-lookIn f n = gets f >>= \m ->  
+lookIn :: (Ord a, Show a, MonadReader SynCtx m) => (SynCtx -> Map.Map a b) -> a -> m b
+lookIn f n = asks f >>= \m ->  
hunk ./src/Context/SynthesisContext.hs 200
-getConType, getVarType :: (MonadState SynCtx m) => Name -> m Type
+getConType, getVarType :: (MonadReader SynCtx m) => Name -> m Type
hunk ./src/Context/SynthesisContext.hs 204
-getSubClasses :: (MonadState SynCtx m) => Name -> m [Name]        
+getSubClasses :: (MonadReader SynCtx m) => Name -> m [Name]        
hunk ./src/Context/SynthesisContext.hs 207
-getInstances :: (MonadState SynCtx m) => Type -> m [Name]        
+getInstances :: (MonadReader SynCtx m) => Type -> m [Name]        
hunk ./src/Data/GlobalConfig.hs 1
-
+{-# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell #-}
hunk ./src/Data/GlobalConfig.hs 5
-    SCR(..), RecArgComp(..), defaultSCR
+    SCR(..), RecArgComp(..), defaultSCR,
+    
+    setDebug, setSimplify, setEnhanced, setDumpLog, setVerbose, setVerbosity,
+    setMaxLoops, setCmpRecArg, setTargtes, addTargtes, delTargtes, setBackground,
+    addBackground, delBackground, setPredicates, addPredicates, delPredicates,
hunk ./src/Data/GlobalConfig.hs 13
+import Data.List ((\\))
hunk ./src/Data/GlobalConfig.hs 29
-    , scr_recArgComp :: RecArgComp
+    , scr_cmpRecArg :: RecArgComp
hunk ./src/Data/GlobalConfig.hs 32
-    , scr_preds      :: [Name]
+    , scr_preds      :: [(Name,Type)]
hunk ./src/Data/GlobalConfig.hs 38
-defaultSCR = SCR False False False False False NOTICE (-1) Linear [] [] []
+defaultSCR = SCR False False False False False NOTICE (-1) Linear [] [] defaultPredicates
+defaultPredicates = 
+    [('(==), ForallT [mkName "a"] [AppT (ConT ''Eq) (mkVarT "a")] 
+             (AppT 
+              (AppT ArrowT (mkVarT "a")) 
+              (AppT (AppT ArrowT (mkVarT "a")) 
+                    (ConT ''Bool))))--
+--    , '(/=), ForallT [mkName "a"] [AppT (ConT ''Eq) (mkVarT "a")] 
+--             (AppT 
+--              (AppT ArrowT (mkVarT "a")) 
+--              (AppT (AppT ArrowT (mkVarT "a")) 
+--                    (ConT ''Bool)))
+    ,('(<), ForallT [mkName "a"] [AppT (ConT ''Ord) (mkVarT "a")] 
+            (AppT 
+              (AppT ArrowT (mkVarT "a")) 
+              (AppT (AppT ArrowT (mkVarT "a")) 
+                    (ConT ''Bool))))
+--    ,('(>=), ForallT [mkName "a"] [AppT (ConT ''Ord) (mkVarT "a")] 
+--            (AppT 
+--              (AppT ArrowT (mkVarT "a")) 
+--              (AppT (AppT ArrowT (mkVarT "a")) 
+--                    (ConT ''Bool))))
+    ,('(>), ForallT [mkName "a"] [AppT (ConT ''Ord) (mkVarT "a")] 
+            (AppT 
+              (AppT ArrowT (mkVarT "a")) 
+              (AppT (AppT ArrowT (mkVarT "a")) 
+                    (ConT ''Bool))))
+--    ,('(<=), ForallT [mkName "a"] [AppT (ConT ''Ord) (mkVarT "a")] 
+--            (AppT 
+--              (AppT ArrowT (mkVarT "a")) 
+--              (AppT (AppT ArrowT (mkVarT "a")) 
+--                    (ConT ''Bool))))
+    ]
+mkVarT = VarT . mkName   
+
+setDebug v scr = scr{scr_debug = v}
+setSimplify   v scr = scr{scr_simplify = v}
+setEnhanced   v scr = scr{scr_enhanced = v}
+setDumpLog    v scr = scr{scr_dumpLog = v}
+setVerbose    v scr = scr{scr_verbose = v}
+setVerbosity  v scr = scr{scr_verbosity = v}
+setMaxLoops   v scr = scr{scr_maxLoops = v}
+setCmpRecArg  v scr = scr{scr_cmpRecArg = v}
+setTargtes    v scr = scr{scr_tgts = v}
+addTargtes    v scr = scr{scr_tgts = (scr_tgts scr) ++ v}
+delTargtes    v scr = scr{scr_tgts = (scr_tgts scr) \\ v}
+setBackground v scr = scr{scr_bgks = v}
+addBackground v scr = scr{scr_bgks = (scr_bgks scr) ++ v}
+delBackground v scr = scr{scr_bgks = (scr_bgks scr) \\ v}
+setPredicates v scr = scr{scr_preds = v}
+addPredicates v scr = scr{scr_preds = (scr_preds scr) ++ v}
+delPredicates v scr = scr{scr_preds = (scr_preds scr) \\ v}
hunk ./src/Data/GlobalConfig.hs 96
-                fill 20 (text "Compare rec args") <+> pretty (show.scr_recArgComp $ c) <$>
+                fill 20 (text "Compare rec args") <+> pretty (show.scr_cmpRecArg $ c) <$>
hunk ./src/Syntax/Unifier.hs 29
-import Context.SynthesisContext
hunk ./src/SynthesisEngine.hs 20
-
+import Context.SynthesisContext
hunk ./src/SynthesisEngine.hs 34
-startSynthesis :: SCR -> [(Name,Rules)] -> [(Name,Rules)]
+startSynthesis :: SynCtx -> SCR -> [(Name,Rules)] -> [(Name,Rules)]
hunk ./src/SynthesisEngine.hs 36
-startSynthesis conf tgt bgk = 
-    (runLM (synthesise conf tgt bgk) logstate)
+startSynthesis ctx conf tgt bgk = 
+    (runLM (synthesise ctx conf tgt bgk) logstate)
hunk ./src/SynthesisEngine.hs 42
-synthesise :: SCR -> [(Name,Rules)] -> [(Name,Rules)] -> LM ([(Name,Int)],[[Dec]])
-synthesise conf tgts bgks = do
+synthesise :: SynCtx -> SCR -> [(Name,Rules)] -> [(Name,Rules)] -> LM ([(Name,Int)],[[Dec]])
+synthesise ctx conf tgts bgks = do
hunk ./src/SynthesisEngine.hs 45
-    let igordata = initIgor allrs conf
+    let igordata = initIgor allrs conf ctx
hunk ./src/UI/UIStarter.hs 254
-            (res,t) <- time (startSynthesis newConfig ts bs)
+            (res,t) <- time (startSynthesis (mctx_synctx $  context s) newConfig ts bs)
hunk ./src/UI/UIStarter.hs 259
-    newConfig = SCR (debug s)(simplify s)(enhanced s)(dumpLog s)(verbose s)(verbosity s)(maxLoops s) (cmpRecArg s) tgts bgks
+    newConfig = (setDebug . debug $ s) . 
+                (setSimplify . simplify $  s) .
+                (setEnhanced . enhanced $ s) . 
+                (setEnhanced . enhanced $ s) . 
+                (setDumpLog . dumpLog $ s) .
+                (setVerbose . verbose $ s) .
+                (setVerbosity . verbosity $ s) .
+                (setMaxLoops . maxLoops $ s) .
+                (setCmpRecArg . cmpRecArg $ s) .
+                (setTargets tgts) .
+                (setBackground bgks) .
+                (addPredicates [])
+                $ defaultSCR
hunk ./src/UI/UIStarter.hs 274
-time :: IO a -> IO (a, Doc)
+time :: IO a -> IO (a, Doc) 