diff --git a/src/Quasar/PreludeExtras.hs b/src/Quasar/PreludeExtras.hs index d70ab6c6621b10d014a911ce8ec9001ffa821fd3..689f488333b3564a9fa6f85185470af3c0370a18 100644 --- a/src/Quasar/PreludeExtras.hs +++ b/src/Quasar/PreludeExtras.hs @@ -8,6 +8,7 @@ import Prelude import Control.Applicative (liftA2) import Control.Concurrent (threadDelay) +import Control.Monad.Catch (MonadThrow, throwM) import Control.Monad.State.Lazy as State import Data.Char qualified as Char import Data.HashMap.Strict qualified as HM @@ -24,8 +25,8 @@ import Quasar.Utils.ExtraT impossibleCodePath :: GHC.Stack.Types.HasCallStack => a impossibleCodePath = error "Code path marked as impossible was reached" -impossibleCodePathM :: MonadFail m => m a -impossibleCodePathM = fail "Code path marked as impossible was reached" +impossibleCodePathM :: MonadThrow m => m a +impossibleCodePathM = throwM (userError "Code path marked as impossible was reached") intercalate :: (Foldable f, Monoid a) => a -> f a -> a intercalate inter = foldr1 (\a b -> a <> inter <> b)