[some functionality of IgorMonad sketched
martin.hofmann@uni-bamberg.de**20081126092920] hunk ./src/IgorMonad.hs 9
+import Language.Haskell.TH
hunk ./src/IgorMonad.hs 11
-type IM a = ELT (State Igor) a 
+type IM a = State Igor a 
hunk ./src/IgorMonad.hs 13
-runIM = runState.runELT
+runIM = evalState
+
+--type FunFrag = (Name,Rules)
+--type FunFrags = [Name Rules]
+
+--synthesise :: Q [Dec] -> Q [Dec] -> Q [Dec] 
+--synthesise tgtsQ bgksQ = do
+--    tgts <- toRules tgtsQ --  [(Name,Rules)]
+--    bgks <- toRules bgksQ
+--      tnms <- return $ map fst tgts
+--      let igordata = --initIgor $ tgts ++ bgks
+--      runIM (synthesiseTargets tnms) igordata
+      
+
+-- synthesiseTargets :: [Name] -> IM [(Name,Rules)]
+-- synthesiseTargets = mapM synthesiseTarget
+ 
+-- synthesiseTarget :: Name -> IM [(Name,Rules)]
+-- synthesiseTarget n =  setTarget n >> bestHypos >>= closeHypos
+
+setTarget :: Name -> IM()
+setTarget n = 
+    -- flush Searchspace, 
+    -- antiunify Rules with name 'n' 
+    --and set them as initial Hypo
+    return ()
+
+-- bestHypos = gets searchSpace >>= bestHypos
+
+-- closeHypo hs =  do
+--    let rules = map open hs
+--        if null rules
+--          then return hs
+--          else -- advanceRule.chooseOne rules >> return bestHypos