@@ -37,10 +37,12 @@ showProof lit n ps
37 where bird = if lit then "> " else ""
37 where bird = if lit then "> " else ""
38 break = "\n" ++ bird
38 break = "\n" ++ bird
40+proverSettings = defaultSettings -- TODO: Prover settings
40prove :: Context -> Bool -> Name -> Type -> Idris ()
42prove :: Context -> Bool -> Name -> Type -> Idris ()
41prove ctxt lit n ty
43prove ctxt lit n ty
42 = do let ps = initElaborator n ctxt ty
44 = do let ps = initElaborator n ctxt ty
43− (tm, prf) <- ploop True ("-" ++ show n) [] (ES (ps, []) "" Nothing)
45+ (tm, prf) <- runInputT proverSettings $ ploop True ("-" ++ show n) [] (ES (ps, []) "" Nothing)
44 iLOG $ "Adding " ++ show tm
46 iLOG $ "Adding " ++ show tm
45 iputStrLn $ showProof lit n prf
47 iputStrLn $ showProof lit n prf
46 i <- getIState
48 i <- getIState
@@ -108,9 +110,9 @@ lifte :: ElabState [PDecl] -> ElabD a -> Idris a
108lifte st e = do (v, _) <- elabStep st e
110lifte st e = do (v, _) <- elabStep st e
111−ploop :: Bool -> String -> [String] -> ElabState [PDecl] -> Idris (Term, [String])
113+ploop :: Bool -> String -> [String] -> ElabState [PDecl] -> InputT Idris (Term, [String])
112ploop d prompt prf e
114ploop d prompt prf e
113− = do i <- getIState
115+ = do i <- lift getIState
114 when d $ liftIO $ dumpState i (proof e)
116 when d $ liftIO $ dumpState i (proof e)
115 x <- getInputLine (prompt ++ "> ")
117 x <- getInputLine (prompt ++ "> ")
116 (cmd, step) <- case x of
118 (cmd, step) <- case x of
@@ -119,7 +121,7 @@ ploop d prompt prf e
119 case cmd of
121 case cmd of
120 Right Abandon -> fail "Abandoned"
122 Right Abandon -> fail "Abandoned"
121 _ -> return ()
123 _ -> return ()
122− (d, st, done, prf') <- idrisCatch
124+ (d, st, done, prf') <- lift $ idrisCatch
123 (case cmd of
125 (case cmd of
124 Left err -> do iputStrLn (show err)
126 Left err -> do iputStrLn (show err)
125 return (False, e, False, prf)
127 return (False, e, False, prf)
@@ -140,7 +142,7 @@ ploop d prompt prf e
140 return (True, st, False, prf ++ [step]))
142 return (True, st, False, prf ++ [step]))
141 (\err -> do iputStrLn (show err)
143 (\err -> do iputStrLn (show err)
142 return (False, e, False, prf))
144 return (False, e, False, prf))
143− if done then do (tm, _) <- elabStep st get_term
145+ if done then do (tm, _) <- lift $ elabStep st get_term
144 return (tm, prf')
146 return (tm, prf')
145 else ploop d prompt prf' st
147 else ploop d prompt prf' st