@@ -138,6 +138,7 @@ unbindEnv (_:bs) (Bind n b sc) = unbindEnv bs sc
138138
139139usable :: Bool -> Name -> [(Name, Int)] -> (Bool, [(Name, Int)])
140140usable _ _ ns@((MN 0 "STOP", _) : _) = (False, ns)
141+usable True (UN "io_bind") ns = (False, ns)
141142usable s n [] = (True, [])
142143usable s n ns = case lookup n ns of
143144 Just 0 -> (False, ns)
@@ -188,7 +189,7 @@ eval traceon ctxt maxred ntimes genv tm opts = ev ntimes [] True [] tm where
188189 ev ntimes stk top env (V i) | i < length env = return $ env !! i
189190 | otherwise = return $ VV i
190191 ev ntimes stk top env (Bind n (Let t v) sc)
191− | not simpl || vinstances 0 sc < 2
192+ | not simpl -- || vinstances 0 sc < 2
192193 = do v' <- ev ntimes stk top env v --(finalise v)
193194 when (not atRepl) $ step maxred
194195 sc' <- ev ntimes stk top (v' : env) sc
@@ -626,7 +627,7 @@ data Totality = Total [Int] -- well-founded arguments
626627 deriving Eq
627628
628629data PReason = Other [Name] | Itself | NotCovering | NotPositive | UseUndef Name
629− | Mutual [Name] | NotProductive
630+ | BelieveMe | Mutual [Name] | NotProductive
630631 deriving (Show, Eq)
631632
632633instance Show Totality where
@@ -637,6 +638,7 @@ instance Show Totality where
637638 show (Partial NotCovering) = "not total as there are missing cases"
638639 show (Partial NotPositive) = "not strictly positive"
639640 show (Partial NotProductive) = "not productive"
641+ show (Partial BelieveMe) = "not total due to use of believe_me in proof"
640642 show (Partial (Other ns)) = "possibly not total due to: " ++ showSep ", " (map show ns)
641643 show (Partial (Mutual ns)) = "possibly not total due to recursive path " ++
642644 showSep " --> " (map show ns)