From 2736b8776ee12640ebdd08b677b393afcafc313d Mon Sep 17 00:00:00 2001 From: Bodigrim Date: Sun, 21 Jun 2026 19:44:02 +0100 Subject: [PATCH] Monad of no Return --- Cabal-syntax/src/Distribution/Fields/LexerMonad.hs | 1 - Cabal-syntax/src/Distribution/Fields/ParseResult.hs | 1 - Cabal-syntax/src/Distribution/Parsec.hs | 2 -- Cabal-syntax/src/Distribution/Types/Condition.hs | 2 -- Cabal/src/Distribution/Backpack/ReadyComponent.hs | 1 - Cabal/src/Distribution/Backpack/UnifyM.hs | 1 - Cabal/src/Distribution/Simple/BuildTarget.hs | 2 -- Cabal/src/Distribution/Utils/LogProgress.hs | 1 - Cabal/src/Distribution/Utils/Progress.hs | 1 - Cabal/src/Distribution/ZinzaPrelude.hs | 1 - cabal-install-solver/src/Distribution/Solver/Types/Progress.hs | 1 - cabal-install/src/Distribution/Client/Init/Types.hs | 1 - cabal-install/src/Distribution/Client/TargetSelector.hs | 1 - cabal-install/src/Distribution/Deprecated/ParseUtils.hs | 1 - cabal-install/src/Distribution/Deprecated/ProjectParseUtils.hs | 1 - 15 files changed, 18 deletions(-) diff --git a/Cabal-syntax/src/Distribution/Fields/LexerMonad.hs b/Cabal-syntax/src/Distribution/Fields/LexerMonad.hs index 4a9c5641db2..f239d39475a 100644 --- a/Cabal-syntax/src/Distribution/Fields/LexerMonad.hs +++ b/Cabal-syntax/src/Distribution/Fields/LexerMonad.hs @@ -55,7 +55,6 @@ instance Applicative Lex where (<*>) = ap instance Monad Lex where - return = pure (>>=) = thenLex data LexResult a = LexResult {-# UNPACK #-} !LexState a diff --git a/Cabal-syntax/src/Distribution/Fields/ParseResult.hs b/Cabal-syntax/src/Distribution/Fields/ParseResult.hs index b20d140c132..2842a89c90e 100644 --- a/Cabal-syntax/src/Distribution/Fields/ParseResult.hs +++ b/Cabal-syntax/src/Distribution/Fields/ParseResult.hs @@ -128,7 +128,6 @@ instance Applicative (ParseResult src) where {-# INLINE (<*) #-} instance Monad (ParseResult src) where - return = pure (>>) = (*>) m >>= k = PR $ \ !s fp failure success -> diff --git a/Cabal-syntax/src/Distribution/Parsec.hs b/Cabal-syntax/src/Distribution/Parsec.hs index 017e5e3573a..4420b3954f3 100644 --- a/Cabal-syntax/src/Distribution/Parsec.hs +++ b/Cabal-syntax/src/Distribution/Parsec.hs @@ -145,8 +145,6 @@ instance Alternative ParsecParser where {-# INLINE some #-} instance Monad ParsecParser where - return = pure - m >>= k = PP $ \v -> unPP m v >>= \x -> unPP (k x) v {-# INLINE (>>=) #-} (>>) = (*>) diff --git a/Cabal-syntax/src/Distribution/Types/Condition.hs b/Cabal-syntax/src/Distribution/Types/Condition.hs index 0590cecf57e..6c764f1d9fe 100644 --- a/Cabal-syntax/src/Distribution/Types/Condition.hs +++ b/Cabal-syntax/src/Distribution/Types/Condition.hs @@ -73,8 +73,6 @@ instance Applicative Condition where (<*>) = ap instance Monad Condition where - return = pure - -- Terminating cases (>>=) (Lit x) _ = Lit x (>>=) (Var x) f = f x diff --git a/Cabal/src/Distribution/Backpack/ReadyComponent.hs b/Cabal/src/Distribution/Backpack/ReadyComponent.hs index 08b4995db07..98c4d7a1d59 100644 --- a/Cabal/src/Distribution/Backpack/ReadyComponent.hs +++ b/Cabal/src/Distribution/Backpack/ReadyComponent.hs @@ -218,7 +218,6 @@ instance Applicative InstM where in (f' x', s'') instance Monad InstM where - return = pure InstM m >>= f = InstM $ \s -> let (x, s') = m s in runInstM (f x) s' diff --git a/Cabal/src/Distribution/Backpack/UnifyM.hs b/Cabal/src/Distribution/Backpack/UnifyM.hs index d4e1e1a0b0a..a6969986f6a 100644 --- a/Cabal/src/Distribution/Backpack/UnifyM.hs +++ b/Cabal/src/Distribution/Backpack/UnifyM.hs @@ -152,7 +152,6 @@ instance Applicative (UnifyM s) where Just x'' -> return (Just (f'' x'')) instance Monad (UnifyM s) where - return = pure UnifyM m >>= f = UnifyM $ \r -> do x <- m r case x of diff --git a/Cabal/src/Distribution/Simple/BuildTarget.hs b/Cabal/src/Distribution/Simple/BuildTarget.hs index 1a1c9aaaeff..9c046100fee 100644 --- a/Cabal/src/Distribution/Simple/BuildTarget.hs +++ b/Cabal/src/Distribution/Simple/BuildTarget.hs @@ -908,8 +908,6 @@ instance Applicative Match where (<*>) = ap instance Monad Match where - return = pure - NoMatch d ms >>= _ = NoMatch d ms ExactMatch d xs >>= f = addDepth d $ diff --git a/Cabal/src/Distribution/Utils/LogProgress.hs b/Cabal/src/Distribution/Utils/LogProgress.hs index dce540df985..3fc34604e2a 100644 --- a/Cabal/src/Distribution/Utils/LogProgress.hs +++ b/Cabal/src/Distribution/Utils/LogProgress.hs @@ -41,7 +41,6 @@ instance Applicative LogProgress where LogProgress f <*> LogProgress x = LogProgress $ \r -> f r `ap` x r instance Monad LogProgress where - return = pure LogProgress m >>= f = LogProgress $ \r -> m r >>= \x -> unLogProgress (f x) r -- | Run 'LogProgress', outputting traces according to 'Verbosity', diff --git a/Cabal/src/Distribution/Utils/Progress.hs b/Cabal/src/Distribution/Utils/Progress.hs index c6edf87d558..903007f38d9 100644 --- a/Cabal/src/Distribution/Utils/Progress.hs +++ b/Cabal/src/Distribution/Utils/Progress.hs @@ -57,7 +57,6 @@ foldProgress step err done = fold fold (Done r) = done r instance Monad (Progress step fail) where - return = pure p >>= f = foldProgress Step Fail f p instance Applicative (Progress step fail) where diff --git a/Cabal/src/Distribution/ZinzaPrelude.hs b/Cabal/src/Distribution/ZinzaPrelude.hs index 81ef5170c1a..5fe1d49e641 100644 --- a/Cabal/src/Distribution/ZinzaPrelude.hs +++ b/Cabal/src/Distribution/ZinzaPrelude.hs @@ -33,7 +33,6 @@ instance Applicative Writer where (<*>) = ap instance Monad Writer where - return = pure m >>= k = W $ \s1 -> let (s2, x) = unW m s1 in unW (k x) s2 diff --git a/cabal-install-solver/src/Distribution/Solver/Types/Progress.hs b/cabal-install-solver/src/Distribution/Solver/Types/Progress.hs index b70e12a26e3..aac29a4a23f 100644 --- a/cabal-install-solver/src/Distribution/Solver/Types/Progress.hs +++ b/cabal-install-solver/src/Distribution/Solver/Types/Progress.hs @@ -36,7 +36,6 @@ foldProgress step' fail' done' = fold fold (Done r) = done' r instance Monad (Progress step fail) where - return = pure p >>= f = foldProgress Step Fail f p instance MonadFail (Progress step String) where diff --git a/cabal-install/src/Distribution/Client/Init/Types.hs b/cabal-install/src/Distribution/Client/Init/Types.hs index 893323535d9..eb0951c0f2b 100644 --- a/cabal-install/src/Distribution/Client/Init/Types.hs +++ b/cabal-install/src/Distribution/Client/Init/Types.hs @@ -330,7 +330,6 @@ instance Applicative PurePrompt where Right (a, s'') -> Right (f a, s'') instance Monad PurePrompt where - return = pure PurePrompt a >>= k = PurePrompt $ \s -> case a s of Left e -> Left e Right (a', s') -> runPromptState (k a') s' diff --git a/cabal-install/src/Distribution/Client/TargetSelector.hs b/cabal-install/src/Distribution/Client/TargetSelector.hs index 306cb629302..efba01d1b05 100644 --- a/cabal-install/src/Distribution/Client/TargetSelector.hs +++ b/cabal-install/src/Distribution/Client/TargetSelector.hs @@ -2365,7 +2365,6 @@ instance Alternative Match where (<|>) = matchPlus instance Monad Match where - return = pure NoMatch d ms >>= _ = NoMatch d ms Match m d xs >>= f = -- To understand this, it needs to be read in context with the diff --git a/cabal-install/src/Distribution/Deprecated/ParseUtils.hs b/cabal-install/src/Distribution/Deprecated/ParseUtils.hs index 54d19932ea7..cdbf548d21d 100644 --- a/cabal-install/src/Distribution/Deprecated/ParseUtils.hs +++ b/cabal-install/src/Distribution/Deprecated/ParseUtils.hs @@ -124,7 +124,6 @@ instance Applicative ParseResult where (<*>) = ap instance Monad ParseResult where - return = pure ParseFailed err >>= _ = ParseFailed err ParseOk ws x >>= f = case f x of ParseFailed err -> ParseFailed err diff --git a/cabal-install/src/Distribution/Deprecated/ProjectParseUtils.hs b/cabal-install/src/Distribution/Deprecated/ProjectParseUtils.hs index 790b7b6b352..f7d6bc1f981 100644 --- a/cabal-install/src/Distribution/Deprecated/ProjectParseUtils.hs +++ b/cabal-install/src/Distribution/Deprecated/ProjectParseUtils.hs @@ -41,7 +41,6 @@ instance Applicative ProjectParseResult where (<*>) = ap instance Monad ProjectParseResult where - return = pure ProjectParseFailed err >>= _ = ProjectParseFailed err ProjectParseOk ws x >>= f = case f x of ProjectParseFailed err -> ProjectParseFailed err