@@ -1058,7 +1058,7 @@ processTactic (ComputeLet n) ps
1058 (getProofTerm (pterm ps)) }, "")
1058 (getProofTerm (pterm ps)) }, "")
1059processTactic UnifyProblems ps
1059processTactic UnifyProblems ps
1060 = do let (ns', probs') = updateProblems ps [] (map setReady (problems ps))
1060 = do let (ns', probs') = updateProblems ps [] (map setReady (problems ps))
1061− pterm' = updateSolved ns' (pterm ps)
1061+ pterm' = orderUpdateSolved ns' (pterm ps)
1062 traceWhen (unifylog ps) ("(UnifyProblems) Dropping holes: " ++ show (map fst ns')) $
1062 traceWhen (unifylog ps) ("(UnifyProblems) Dropping holes: " ++ show (map fst ns')) $
1063 return (ps { pterm = pterm', solved = Nothing, problems = probs',
1063 return (ps { pterm = pterm', solved = Nothing, problems = probs',
1064 previous = Just ps, plog = "",
1064 previous = Just ps, plog = "",
@@ -1067,6 +1067,8 @@ processTactic UnifyProblems ps
1067 dotted = filter (notIn ns') (dotted ps),
1067 dotted = filter (notIn ns') (dotted ps),
1068 holes = holes ps \\ (map fst ns') }, plog ps)
1068 holes = holes ps \\ (map fst ns') }, plog ps)
1069 where notIn ns (h, _) = h `notElem` map fst ns
1069 where notIn ns (h, _) = h `notElem` map fst ns
1070+ orderUpdateSolved [] t = t
1071+ orderUpdateSolved (n : ns) t = orderUpdateSolved ns (updateSolved [n] t)
1070processTactic (MatchProblems all) ps
1072processTactic (MatchProblems all) ps
1071 = do let (ns', probs') = matchProblems all ps [] (map setReady (problems ps))
1073 = do let (ns', probs') = matchProblems all ps [] (map setReady (problems ps))
1072 (ns'', probs'') = matchProblems all ps ns' probs'
1074 (ns'', probs'') = matchProblems all ps ns' probs'