ghc-exactprint-1.14.0.0: tests/examples/pre-ghc910/T3263-2.hs
-- Trac #3263. New kind of warning on monadic bindings that discard a monadic result
{-# LANGUAGE RankNTypes #-}
module T3263 where
import Control.Monad.Fix
-- No warning
t1 :: Monad m => m Int
t1 = do
return 10
-- No warning
t2 :: Monad m => m (m Int)
t2 = return (return 10)
-- No warning
t3 :: Monad m => m (m Int)
t3 = do
return 10
return (return 10)
-- Warning
t4 :: forall m. Monad m => m Int
t4 = do
return (return 10 :: m Int)
return 10
-- No warning
t5 :: forall m. Monad m => m Int
t5 = do
_ <- return (return 10 :: m Int)
return 10
-- Warning
t6 :: forall m. MonadFix m => m Int
t6 = mdo
return (return 10 :: m Int)
return 10