diff options
Diffstat (limited to 'compiler/GHC/Tc/Utils/Monad.hs')
-rw-r--r-- | compiler/GHC/Tc/Utils/Monad.hs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/compiler/GHC/Tc/Utils/Monad.hs b/compiler/GHC/Tc/Utils/Monad.hs index dada2c8041..571e02c7cf 100644 --- a/compiler/GHC/Tc/Utils/Monad.hs +++ b/compiler/GHC/Tc/Utils/Monad.hs @@ -106,7 +106,7 @@ module GHC.Tc.Utils.Monad( getConstraintVar, setConstraintVar, emitConstraints, emitStaticConstraints, emitSimple, emitSimples, emitImplication, emitImplications, emitInsoluble, - emitHole, emitHoles, + emitDelayedErrors, emitHole, emitHoles, emitNotConcreteError, discardConstraints, captureConstraints, tryCaptureConstraints, pushLevelAndCaptureConstraints, pushTcLevelM_, pushTcLevelM, @@ -1816,6 +1816,12 @@ emitInsoluble ct ; lie_var <- getConstraintVar ; updTcRef lie_var (`addInsols` unitBag ct) } +emitDelayedErrors :: Bag DelayedError -> TcM () +emitDelayedErrors errs + = do { traceTc "emitDelayedErrors" (ppr errs) + ; lie_var <- getConstraintVar + ; updTcRef lie_var (`addDelayedErrors` errs)} + emitHole :: Hole -> TcM () emitHole hole = do { traceTc "emitHole" (ppr hole) @@ -1828,6 +1834,12 @@ emitHoles holes ; lie_var <- getConstraintVar ; updTcRef lie_var (`addHoles` holes) } +emitNotConcreteError :: NotConcreteError -> TcM () +emitNotConcreteError err + = do { traceTc "emitNotConcreteError" (ppr err) + ; lie_var <- getConstraintVar + ; updTcRef lie_var (`addNotConcreteError` err) } + -- | Throw out any constraints emitted by the thing_inside discardConstraints :: TcM a -> TcM a discardConstraints thing_inside = fst <$> captureConstraints thing_inside |