This file is indexed.

/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 -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -&gt; [a] -&gt; <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 -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -&gt; [a] -&gt; <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 -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -&gt; [a] -&gt; <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 =&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; m a -&gt; 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) =&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; m a -&gt; 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 =&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; m a -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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 =&gt; (a -&gt; m a) -&gt; a -&gt; 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 =&gt; m a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; 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) =&gt; m a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; 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 =&gt; m a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; (a -&gt; m a) -&gt; a -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; (a -&gt; m b) -&gt; 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) =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; (a -&gt; m b) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; (a -&gt; m b) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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) =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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) =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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 =&gt; (a -&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -&gt; a -&gt; 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) =&gt; (a -&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -&gt; a -&gt; 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 =&gt; [a -&gt; m a] -&gt; a -&gt; 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 =&gt; [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; 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 =&gt; [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; 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 =&gt; [a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; a -&gt; 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 =&gt; [a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; a -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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 -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -&gt; [a] -&gt; <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 -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -&gt; [a] -&gt; <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 -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> b) -&gt; [a] -&gt; <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 =&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; m a -&gt; 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) =&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; m a -&gt; 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 =&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; m a -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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 =&gt; (a -&gt; m a) -&gt; a -&gt; 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 =&gt; m a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; 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) =&gt; m a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; 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 =&gt; m a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; (a -&gt; m a) -&gt; a -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; (a -&gt; m b) -&gt; 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) =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; (a -&gt; m b) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; (a -&gt; m b) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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) =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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 =&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; 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 =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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) =&gt; (a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; m a -&gt; 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 =&gt; (a -&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -&gt; a -&gt; 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) =&gt; (a -&gt; m (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (b, a))) -&gt; a -&gt; 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 =&gt; [a -&gt; m a] -&gt; a -&gt; 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-">&gt;=&gt;</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 =&gt; [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; 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 =&gt; 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 =&gt; [m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; 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 =&gt; 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 =&gt; [a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; a -&gt; 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 &quot;monadic predicates&quot;.  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 =&gt; [a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>] -&gt; a -&gt; 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 &quot;monadic predicates&quot;.  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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 &quot;monadic predicate&quot;.
</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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 &quot;monadic predicate&quot;.
</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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; m b) -&gt; (b -&gt; b -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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 =&gt; (a -&gt; a -&gt; m <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ordering">Ordering</a>) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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) =&gt; (a -&gt; m b) -&gt; [a] -&gt; 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>