@@ -383,8 +383,10 @@ resTC' tcs defaultOn topholes depth topg fn elab ist
383383 let (argsok, okholePos) = case tcArgsOK g topholes of
384384 Nothing -> (False, [])
385385 Just hs -> (True, hs)
386+ env <- get_env
387+ probs <- get_probs
386388 if not argsok -- && not mvok)
387− then lift $ tfail $ CantResolve True topg
389+ then lift $ tfail $ CantResolve True topg (probErr probs)
388390 else do
389391 ptm <- get_term
390392 ulog <- getUnifyLog
@@ -431,6 +433,9 @@ resTC' tcs defaultOn topholes depth topg fn elab ist
431433 _ -> Just rs
432434 tcDetArgsOK _ _ _ [] = Just []
433435
436+ probErr [] = Msg ""
437+ probErr ((_,_,_,_,err,_,_) : _) = err
438+
434439 isMeta :: [Name] -> Term -> Bool
435440 isMeta ns (P _ n _) = n `elem` ns
436441 isMeta _ _ = False
@@ -462,12 +467,13 @@ resTC' tcs defaultOn topholes depth topg fn elab ist
462467 boundVar (P Bound _ _) = True
463468 boundVar _ = False
464469
465− blunderbuss t d stk [] = lift $ tfail $ CantResolve False topg
470+ blunderbuss t d stk [] = do ps <- get_probs
471+ lift $ tfail $ CantResolve False topg (probErr ps)
466472 blunderbuss t d stk (n:ns)
467473 | n /= fn -- && (n `elem` stk)
468474 = tryCatch (resolve n d)
469475 (\e -> case e of
470− CantResolve True _ -> lift $ tfail e
476+ CantResolve True _ _ -> lift $ tfail e
471477 _ -> blunderbuss t d stk ns)
472478 | otherwise = blunderbuss t d stk ns
473479