Hoogle Search
Within LTS Haskell 24.34 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
forever :: Applicative f => f a -> f bincipit-base Incipit.Base Repeat an action indefinitely.
Examples
A common use of forever is to process input from network sockets, Handles, and channels (e.g. MVar and Chan). For example, here is how we might implement an echo server, using forever both to listen for client connections on a network socket and to echo client input on client connection handles:echoServer :: Socket -> IO () echoServer socket = forever $ do client <- accept socket forkFinally (echo client) (\_ -> hClose client) where echo :: Handle -> IO () echo client = forever $ hGetLine client >>= hPutStrLn client
Note that "forever" isn't necessarily non-terminating. If the action is in a MonadPlus and short-circuits after some number of iterations. then forever actually returns mzero, effectively short-circuiting its caller.forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()incipit-base Incipit.Foldable forM_ is mapM_ with its arguments flipped. For a version that doesn't ignore the results see forM. forM_ is just like for_, but specialised to monadic actions.
for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()incipit-base Incipit.Foldable for_ is traverse_ with its arguments flipped. For a version that doesn't ignore the results see for. This is forM_ generalised to Applicative actions. for_ is just like forM_, but generalised to Applicative actions.
Examples
Basic usage:>>> for_ [1..4] print 1 2 3 4
forcedLinearPair :: ForcedUnlinear a % 1 -> (a, a)linear-base Simple.Pure No documentation available.
-
linear-programming Numeric.LinearProgramming.Test No documentation available.
-
linear-programming Numeric.LinearProgramming.Test No documentation available.
forAllOrigin :: Testable prop => (Array (Range Char) Int64 -> prop) -> Propertylinear-programming Numeric.LinearProgramming.Test No documentation available.
-
linear-programming Numeric.LinearProgramming.Test No documentation available.
forallcb :: CGEnv -> !HashMap Var Exprliquidhaskell-boot Language.Haskell.Liquid.Constraint.Types Polymorhic let bindings
-
liquidhaskell-boot Liquid.GHC.API No documentation available.