@@ -13,6 +13,7 @@ import Idris.Core.TT
1313import Idris.Core.Evaluate
1414import Idris.Core.Unify
1515import Idris.Core.Typecheck (check)
16+import Idris.ErrReverse (errReverse)
1617
1718import Control.Applicative ((<$>))
1819import Control.Monad
@@ -1627,10 +1628,11 @@ withErrorReflection x = idrisCatch x (\ e -> handle e >>= ierror)
16271628 err' <- handle err
16281629 return (Elaborating what n err')
16291630 handle e = do ist <- getIState
1631+ let err = fmap (errReverse ist) e
16301632 logLvl 2 "Starting error reflection"
16311633 let handlers = idris_errorhandlers ist
16321634 logLvl 3 $ "Using reflection handlers " ++ concat (intersperse ", " (map show handlers))
1633− let reports = map (\n -> RApp (Var n) (reflectErr e)) handlers
1635+ let reports = map (\n -> RApp (Var n) (reflectErr err)) handlers
16341636
16351637 -- Typecheck error handlers - if this fails, then something else was wrong earlier!
16361638 handlers <- case mapM (check (tt_ctxt ist) []) reports of