/usr/share/doc/libghc-monad-loops-doc/html/Control-Monad-Loops.html is in libghc-monad-loops-doc 0.4.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Monad.Loops</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Monad-Loops.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Monad-Loops.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">monad-loops-0.4.2: Monadic loops</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Inferred</td></tr></table><p class="caption">Control.Monad.Loops</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A collection of loop operators for use in monads (mostly in stateful ones).
</p><p>There is a general naming pattern for many of these:
Functions with names ending in _ discard the results of the loop body
as in the standard Prelude <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#v:mapM">mapM</a></code> functions.
</p><p>Functions with names ending in ' collect their results into <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a></code>
containers. Note that any short-circuit effect that those types'
<code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a></code> instances may provide in a lazy context (such as the instance
for <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a></code>) will _not_ cause execution to short-circuit in these loops.
</p><p>Functions with names ending in neither of those will generally return
just plain old lists.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:forkMapM">forkMapM</a> :: (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -> [a] -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> [<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Either.html#t:Either">Either</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Exception-Base.html#t:SomeException">SomeException</a> b]</li><li class="src short"><a href="#v:forkMapM_">forkMapM_</a> :: (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -> [a] -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> [<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Exception-Base.html#t:SomeException">SomeException</a>]</li><li class="src short"><a href="#v:forkMapM__">forkMapM__</a> :: (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -> [a] -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:whileM">whileM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m a -> m [a]</li><li class="src short"><a href="#v:whileM-39-">whileM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m a -> m (f a)</li><li class="src short"><a href="#v:whileM_">whileM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m a -> m ()</li><li class="src short"><a href="#v:iterateWhile">iterateWhile</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m a</li><li class="src short"><a href="#v:iterateM_">iterateM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m a) -> a -> m b</li><li class="src short"><a href="#v:untilM">untilM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m [a]</li><li class="src short"><a href="#v:untilM-39-">untilM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m (f a)</li><li class="src short"><a href="#v:untilM_">untilM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m ()</li><li class="src short"><a href="#v:iterateUntilM">iterateUntilM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> (a -> m a) -> a -> m a</li><li class="src short"><a href="#v:iterateUntil">iterateUntil</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m a</li><li class="src short"><a href="#v:whileJust">whileJust</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> (a -> m b) -> m [b]</li><li class="src short"><a href="#v:whileJust-39-">whileJust'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> (a -> m b) -> m (f b)</li><li class="src short"><a href="#v:whileJust_">whileJust_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> (a -> m b) -> m ()</li><li class="src short"><a href="#v:untilJust">untilJust</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m a</li><li class="src short"><a href="#v:unfoldM">unfoldM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m [a]</li><li class="src short"><a href="#v:unfoldM-39-">unfoldM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m (f a)</li><li class="src short"><a href="#v:unfoldM_">unfoldM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m ()</li><li class="src short"><a href="#v:unfoldWhileM">unfoldWhileM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m [a]</li><li class="src short"><a href="#v:unfoldWhileM-39-">unfoldWhileM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m (f a)</li><li class="src short"><a href="#v:unfoldrM">unfoldrM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -> a -> m [b]</li><li class="src short"><a href="#v:unfoldrM-39-">unfoldrM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => (a -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -> a -> m (f b)</li><li class="src short"><a href="#v:concatM">concatM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [a -> m a] -> a -> m a</li><li class="src short"><a href="#v:andM">andM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:orM">orM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:anyPM">anyPM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:allPM">allPM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:anyM">anyM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:allM">allM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:dropWhileM">dropWhileM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m [a]</li><li class="src short"><a href="#v:trimM">trimM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m [a]</li><li class="src short"><a href="#v:firstM">firstM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:minimaOnByM">minimaOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]</li><li class="src short"><a href="#v:maximaOnByM">maximaOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]</li><li class="src short"><a href="#v:minimaByM">minimaByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]</li><li class="src short"><a href="#v:maximaByM">maximaByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]</li><li class="src short"><a href="#v:minimaOnM">minimaOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m [a]</li><li class="src short"><a href="#v:maximaOnM">maximaOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m [a]</li><li class="src short"><a href="#v:minimumOnByM">minimumOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:maximumOnByM">maximumOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:minimumByM">minimumByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:maximumByM">maximumByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:minimumOnM">minimumOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:maximumOnM">maximumOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:forkMapM" class="def">forkMapM</a> :: (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -> [a] -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> [<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Either.html#t:Either">Either</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Exception-Base.html#t:SomeException">SomeException</a> b]<a href="src/Control-Monad-Loops.html#forkMapM" class="link">Source</a></p><div class="doc"><p>Like <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#v:mapM">mapM</a></code>, but run all the actions in parallel threads, collecting up
the results and returning them all. Does not return until all actions finish.
</p></div></div><div class="top"><p class="src"><a name="v:forkMapM_" class="def">forkMapM_</a> :: (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -> [a] -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> [<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Exception-Base.html#t:SomeException">SomeException</a>]<a href="src/Control-Monad-Loops.html#forkMapM_" class="link">Source</a></p><div class="doc"><p>like <code><a href="Control-Monad-Loops.html#v:forkMapM">forkMapM</a></code> but without bothering to keep the return values
</p></div></div><div class="top"><p class="src"><a name="v:forkMapM__" class="def">forkMapM__</a> :: (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -> [a] -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> ()<a href="src/Control-Monad-Loops.html#forkMapM__" class="link">Source</a></p><div class="doc"><p>like <code><a href="Control-Monad-Loops.html#v:forkMapM_">forkMapM_</a></code> but not even bothering to track success or failure
of the child threads. Still waits for them all though.
</p></div></div><div class="top"><p class="src"><a name="v:whileM" class="def">whileM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m a -> m [a]<a href="src/Control-Monad-Loops.html#whileM" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly as long as the given boolean expression
returns True. The condition is evaluated before the loop body.
Collects the results into a list.
</p></div></div><div class="top"><p class="src"><a name="v:whileM-39-" class="def">whileM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m a -> m (f a)<a href="src/Control-Monad-Loops.html#whileM%27" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly as long as the given boolean expression
returns True. The condition is evaluated before the loop body.
Collects the results into an arbitrary <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a></code> value.
</p></div></div><div class="top"><p class="src"><a name="v:whileM_" class="def">whileM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m a -> m ()<a href="src/Control-Monad-Loops.html#whileM_" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly as long as the given boolean expression
returns True. The condition is evaluated before the loop body.
Discards results.
</p></div></div><div class="top"><p class="src"><a name="v:iterateWhile" class="def">iterateWhile</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m a<a href="src/Control-Monad-Loops.html#iterateWhile" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly until its result fails to satisfy a predicate,
and return that result (discarding all others).
</p></div></div><div class="top"><p class="src"><a name="v:iterateM_" class="def">iterateM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m a) -> a -> m b<a href="src/Control-Monad-Loops.html#iterateM_" class="link">Source</a></p><div class="doc"><p>Execute an action forever, feeding the result of each execution as the
input to the next.
</p></div></div><div class="top"><p class="src"><a name="v:untilM" class="def">untilM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m [a]<a href="src/Control-Monad-Loops.html#untilM" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly until the condition expression returns True.
The condition is evaluated after the loop body. Collects results into a list.
Parameters are arranged for infix usage. eg. do {...} <code><a href="Control-Monad-Loops.html#v:untilM_">untilM_</a></code> ...
</p></div></div><div class="top"><p class="src"><a name="v:untilM-39-" class="def">untilM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m (f a)<a href="src/Control-Monad-Loops.html#untilM%27" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly until the condition expression returns True.
The condition is evaluated after the loop body. Collects results into a
<a href="MonadPlus.html">MonadPlus</a> value.
Parameters are arranged for infix usage. eg. do {...} <code><a href="Control-Monad-Loops.html#v:untilM_">untilM_</a></code> ...
</p></div></div><div class="top"><p class="src"><a name="v:untilM_" class="def">untilM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> m ()<a href="src/Control-Monad-Loops.html#untilM_" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly until the condition expression returns True.
The condition is evaluated after the loop body. Discards results.
Parameters are arranged for infix usage. eg. do {...} <code><a href="Control-Monad-Loops.html#v:untilM_">untilM_</a></code> ...
</p></div></div><div class="top"><p class="src"><a name="v:iterateUntilM" class="def">iterateUntilM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> (a -> m a) -> a -> m a<a href="src/Control-Monad-Loops.html#iterateUntilM" class="link">Source</a></p><div class="doc"><p>Analogue of <code>(<code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Prelude.html#v:until">until</a></code>)</code>
Yields the result of applying f until p holds.
</p></div></div><div class="top"><p class="src"><a name="v:iterateUntil" class="def">iterateUntil</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m a<a href="src/Control-Monad-Loops.html#iterateUntil" class="link">Source</a></p><div class="doc"><p>Execute an action repeatedly until its result satisfies a predicate,
and return that result (discarding all others).
</p></div></div><div class="top"><p class="src"><a name="v:whileJust" class="def">whileJust</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> (a -> m b) -> m [b]<a href="src/Control-Monad-Loops.html#whileJust" class="link">Source</a></p><div class="doc"><p>As long as the supplied <a href="Maybe.html">Maybe</a> expression returns <a href="Just _.html">Just _</a>, the loop
body will be called and passed the value contained in the <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Just">Just</a></code>. Results
are collected into a list.
</p></div></div><div class="top"><p class="src"><a name="v:whileJust-39-" class="def">whileJust'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> (a -> m b) -> m (f b)<a href="src/Control-Monad-Loops.html#whileJust%27" class="link">Source</a></p><div class="doc"><p>As long as the supplied <a href="Maybe.html">Maybe</a> expression returns <a href="Just _.html">Just _</a>, the loop
body will be called and passed the value contained in the <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Just">Just</a></code>. Results
are collected into an arbitrary MonadPlus container.
</p></div></div><div class="top"><p class="src"><a name="v:whileJust_" class="def">whileJust_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> (a -> m b) -> m ()<a href="src/Control-Monad-Loops.html#whileJust_" class="link">Source</a></p><div class="doc"><p>As long as the supplied <a href="Maybe.html">Maybe</a> expression returns <a href="Just _.html">Just _</a>, the loop
body will be called and passed the value contained in the <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Just">Just</a></code>. Results
are discarded.
</p></div></div><div class="top"><p class="src"><a name="v:untilJust" class="def">untilJust</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m a<a href="src/Control-Monad-Loops.html#untilJust" class="link">Source</a></p><div class="doc"><p>Run the supplied <a href="Maybe.html">Maybe</a> computation repeatedly until it returns a
value. Returns that value.
</p></div></div><div class="top"><p class="src"><a name="v:unfoldM" class="def">unfoldM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m [a]<a href="src/Control-Monad-Loops.html#unfoldM" class="link">Source</a></p><div class="doc"><p>The supplied <a href="Maybe.html">Maybe</a> expression will be repeatedly called until it
returns <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Nothing">Nothing</a></code>. All values returned are collected into a list.
</p></div></div><div class="top"><p class="src"><a name="v:unfoldM-39-" class="def">unfoldM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m (f a)<a href="src/Control-Monad-Loops.html#unfoldM%27" class="link">Source</a></p><div class="doc"><p>The supplied <a href="Maybe.html">Maybe</a> expression will be repeatedly called until it
returns <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Nothing">Nothing</a></code>. All values returned are collected into an arbitrary
<code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a></code> thing.
</p></div></div><div class="top"><p class="src"><a name="v:unfoldM_" class="def">unfoldM_</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> m ()<a href="src/Control-Monad-Loops.html#unfoldM_" class="link">Source</a></p><div class="doc"><p>The supplied <a href="Maybe.html">Maybe</a> expression will be repeatedly called until it
returns <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#v:Nothing">Nothing</a></code>. All values returned are discarded.
</p></div></div><div class="top"><p class="src"><a name="v:unfoldWhileM" class="def">unfoldWhileM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m [a]<a href="src/Control-Monad-Loops.html#unfoldWhileM" class="link">Source</a></p><div class="doc"><p>Repeatedly evaluates the second argument until the value satisfies
the given predicate, and returns a list of all values that satisfied the
predicate. Discards the final one (which failed the predicate).
</p></div></div><div class="top"><p class="src"><a name="v:unfoldWhileM-39-" class="def">unfoldWhileM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => (a -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> m a -> m (f a)<a href="src/Control-Monad-Loops.html#unfoldWhileM%27" class="link">Source</a></p><div class="doc"><p>Repeatedly evaluates the second argument until the value satisfies
the given predicate, and returns a <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a></code> collection of all values
that satisfied the predicate. Discards the final one (which failed the predicate).
</p></div></div><div class="top"><p class="src"><a name="v:unfoldrM" class="def">unfoldrM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -> a -> m [b]<a href="src/Control-Monad-Loops.html#unfoldrM" class="link">Source</a></p><div class="doc"><p>See <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#t:unfoldr">unfoldr</a></code>. This is a monad-friendly version of that.
</p></div></div><div class="top"><p class="src"><a name="v:unfoldrM-39-" class="def">unfoldrM'</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:MonadPlus">MonadPlus</a> f) => (a -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -> a -> m (f b)<a href="src/Control-Monad-Loops.html#unfoldrM%27" class="link">Source</a></p><div class="doc"><p>See <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#t:unfoldr">unfoldr</a></code>. This is a monad-friendly version of that, with a
twist. Rather than returning a list, it returns any MonadPlus type of your
choice.
</p></div></div><div class="top"><p class="src"><a name="v:concatM" class="def">concatM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [a -> m a] -> a -> m a<a href="src/Control-Monad-Loops.html#concatM" class="link">Source</a></p><div class="doc"><p>Compose a list of monadic actions into one action. Composes using
(<code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#v:-62--61--62-">>=></a></code>) - that is, the output of each action is fed to the input of
the one after it in the list.
</p></div></div><div class="top"><p class="src"><a name="v:andM" class="def">andM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Monad-Loops.html#andM" class="link">Source</a></p><div class="doc"><p>short-circuit <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#v:and">and</a></code> for values of type Monad m => m Bool
</p></div></div><div class="top"><p class="src"><a name="v:orM" class="def">orM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Monad-Loops.html#orM" class="link">Source</a></p><div class="doc"><p>short-circuit <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#v:or">or</a></code> for values of type Monad m => m Bool
</p></div></div><div class="top"><p class="src"><a name="v:anyPM" class="def">anyPM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Monad-Loops.html#anyPM" class="link">Source</a></p><div class="doc"><p>short-circuit <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#v:any">any</a></code> with a list of "monadic predicates". Tests the
value presented against each predicate in turn until one passes, then
returns True without any further processing. If none passes, returns False.
</p></div></div><div class="top"><p class="src"><a name="v:allPM" class="def">allPM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => [a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Monad-Loops.html#allPM" class="link">Source</a></p><div class="doc"><p>short-circuit <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#v:all">all</a></code> with a list of "monadic predicates". Tests the value
presented against each predicate in turn until one fails, then returns False.
if none fail, returns True.
</p></div></div><div class="top"><p class="src"><a name="v:anyM" class="def">anyM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Monad-Loops.html#anyM" class="link">Source</a></p><div class="doc"><p>short-circuit <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#v:any">any</a></code> with a "monadic predicate".
</p></div></div><div class="top"><p class="src"><a name="v:allM" class="def">allM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Monad-Loops.html#allM" class="link">Source</a></p><div class="doc"><p>short-circuit <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-List.html#v:all">all</a></code> with a "monadic predicate".
</p></div></div><div class="top"><p class="src"><a name="v:dropWhileM" class="def">dropWhileM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#dropWhileM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:trimM" class="def">trimM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#trimM" class="link">Source</a></p><div class="doc"><p>like <code><a href="Control-Monad-Loops.html#v:dropWhileM">dropWhileM</a></code> but trims both ends of the list.
</p></div></div><div class="top"><p class="src"><a name="v:firstM" class="def">firstM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#firstM" class="link">Source</a></p><div class="doc"><p>return the first value from a list, if any, satisfying the given predicate.
</p></div></div><div class="top"><p class="src"><a name="v:minimaOnByM" class="def">minimaOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#minimaOnByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maximaOnByM" class="def">maximaOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#maximaOnByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:minimaByM" class="def">minimaByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#minimaByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maximaByM" class="def">maximaByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#maximaByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:minimaOnM" class="def">minimaOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#minimaOnM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maximaOnM" class="def">maximaOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m [a]<a href="src/Control-Monad-Loops.html#maximaOnM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:minimumOnByM" class="def">minimumOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#minimumOnByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maximumOnByM" class="def">maximumOnByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> (b -> b -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#maximumOnByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:minimumByM" class="def">minimumByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#minimumByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maximumByM" class="def">maximumByM</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m => (a -> a -> m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#maximumByM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:minimumOnM" class="def">minimumOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#minimumOnM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maximumOnM" class="def">maximumOnM</a> :: (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Monad">Monad</a> m, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> b) => (a -> m b) -> [a] -> m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Monad-Loops.html#maximumOnM" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>
|