<!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>XMonad.Util.Stack</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_XMonad-Util-Stack.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad-Util-Stack.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">xmonad-contrib-0.11: Third party extensions for xmonad</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>unportable</td></tr><tr><th>Stability</th><td>unstable</td></tr><tr><th>Maintainer</th><td>orphaned</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">XMonad.Util.Stack</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Usage </a></li><li><a href="#g:2">Conversions </a></li><li><a href="#g:3"><code><a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a></code> manipulation functions </a><ul><li><a href="#g:4">Insertion, movement </a></li><li><a href="#g:5">Focus movement </a></li><li><a href="#g:6">Extraction </a></li><li><a href="#g:7">Sorting </a></li><li><a href="#g:8">Maps </a></li><li><a href="#g:9">Filters </a></li><li><a href="#g:10">Folds </a></li></ul></li><li><a href="#g:11">Other utility functions </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Utility functions for manipulating <code>Maybe Stack</code>s. </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"><span class="keyword">type</span> <a href="#t:Zipper">Zipper</a> a = <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-StackSet.html#t:Stack">Stack</a> a)</li><li class="src short"><a href="#v:emptyZ">emptyZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:singletonZ">singletonZ</a> :: a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:fromIndex">fromIndex</a> :: [a] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:toIndex">toIndex</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> ([a], <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short"><a href="#v:fromTags">fromTags</a> :: [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a] -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:toTags">toTags</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a]</li><li class="src short"><a href="#v:insertUpZ">insertUpZ</a> :: a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:insertDownZ">insertDownZ</a> :: a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:swapUpZ">swapUpZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:swapDownZ">swapDownZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:swapMasterZ">swapMasterZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:focusUpZ">focusUpZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:focusDownZ">focusDownZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:focusMasterZ">focusMasterZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:getFocusZ">getFocusZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:getIZ">getIZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:sortZ">sortZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:sortByZ">sortByZ</a> :: (a -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ordering">Ordering</a>) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:mapZ">mapZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b</li><li class="src short"><a href="#v:mapZ_">mapZ_</a> :: (a -> b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b</li><li class="src short"><a href="#v:mapZM">mapZM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> m b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b)</li><li class="src short"><a href="#v:mapZM_">mapZM_</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b)</li><li class="src short"><a href="#v:onFocusedZ">onFocusedZ</a> :: (a -> a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:onFocusedZM">onFocusedZM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a)</li><li class="src short"><a href="#v:onIndexZ">onIndexZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> (a -> a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:onIndexZM">onIndexZM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> (a -> m a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a)</li><li class="src short"><a href="#v:filterZ">filterZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:filterZ_">filterZ_</a> :: (a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:deleteFocusedZ">deleteFocusedZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:deleteIndexZ">deleteIndexZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a</li><li class="src short"><a href="#v:foldrZ">foldrZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> b -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b</li><li class="src short"><a href="#v:foldlZ">foldlZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> b -> a -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b</li><li class="src short"><a href="#v:foldrZ_">foldrZ_</a> :: (a -> b -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b</li><li class="src short"><a href="#v:foldlZ_">foldlZ_</a> :: (b -> a -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b</li><li class="src short"><a href="#v:elemZ">elemZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:getI">getI</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> [a] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a</li><li class="src short"><a href="#v:tagBy">tagBy</a> :: (a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a</li><li class="src short"><a href="#v:fromE">fromE</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> a</li><li class="src short"><a href="#v:mapE">mapE</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b</li><li class="src short"><a href="#v:mapE_">mapE_</a> :: (a -> b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b</li><li class="src short"><a href="#v:mapEM">mapEM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> m b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> m (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b)</li><li class="src short"><a href="#v:mapEM_">mapEM_</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> m (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b)</li></ul></div><div id="interface"><h1 id="g:1">Usage </h1><div class="doc"><p>This is a developer-oriented module, intended to be used for writing new extentions. </p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Zipper" class="def">Zipper</a> a = <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-StackSet.html#t:Stack">Stack</a> a)<a href="src/XMonad-Util-Stack.html#Zipper" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:emptyZ" class="def">emptyZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#emptyZ" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:singletonZ" class="def">singletonZ</a> :: a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#singletonZ" class="link">Source</a></p></div><h1 id="g:2">Conversions </h1><div class="top"><p class="src"><a name="v:fromIndex" class="def">fromIndex</a> :: [a] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#fromIndex" class="link">Source</a></p><div class="doc"><p>Create a stack from a list, and the 0-based index of the focused element. If the index is out of bounds, focus will go to the first element. </p></div></div><div class="top"><p class="src"><a name="v:toIndex" class="def">toIndex</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> ([a], <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a>)<a href="src/XMonad-Util-Stack.html#toIndex" class="link">Source</a></p><div class="doc"><p>Turn a stack into a list and the index of its focused element. </p></div></div><div class="top"><p class="src"><a name="v:fromTags" class="def">fromTags</a> :: [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a] -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#fromTags" class="link">Source</a></p><div class="doc"><p>Create a stack from a list of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code>-tagged values. Focus will go to the first <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Right">Right</a></code> value, or if there is none, to the first <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Left">Left</a></code> one. </p></div></div><div class="top"><p class="src"><a name="v:toTags" class="def">toTags</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a]<a href="src/XMonad-Util-Stack.html#toTags" class="link">Source</a></p><div class="doc"><p>Turn a stack into an <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a></code>-tagged list. The focused element will be tagged with <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Right">Right</a></code>, the others with <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Left">Left</a></code>. </p></div></div><h1 id="g:3"><code><a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a></code> manipulation functions </h1><h2 id="g:4">Insertion, movement </h2><div class="top"><p class="src"><a name="v:insertUpZ" class="def">insertUpZ</a> :: a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#insertUpZ" class="link">Source</a></p><div class="doc"><p>Insert an element before the focused one, and focus it </p></div></div><div class="top"><p class="src"><a name="v:insertDownZ" class="def">insertDownZ</a> :: a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#insertDownZ" class="link">Source</a></p><div class="doc"><p>Insert an element after the focused one, and focus it </p></div></div><div class="top"><p class="src"><a name="v:swapUpZ" class="def">swapUpZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#swapUpZ" class="link">Source</a></p><div class="doc"><p>Swap the focused element with the previous one </p></div></div><div class="top"><p class="src"><a name="v:swapDownZ" class="def">swapDownZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#swapDownZ" class="link">Source</a></p><div class="doc"><p>Swap the focused element with the next one </p></div></div><div class="top"><p class="src"><a name="v:swapMasterZ" class="def">swapMasterZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#swapMasterZ" class="link">Source</a></p><div class="doc"><p>Swap the focused element with the first one </p></div></div><h2 id="g:5">Focus movement </h2><div class="top"><p class="src"><a name="v:focusUpZ" class="def">focusUpZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#focusUpZ" class="link">Source</a></p><div class="doc"><p>Move the focus to the previous element </p></div></div><div class="top"><p class="src"><a name="v:focusDownZ" class="def">focusDownZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#focusDownZ" class="link">Source</a></p><div class="doc"><p>Move the focus to the next element </p></div></div><div class="top"><p class="src"><a name="v:focusMasterZ" class="def">focusMasterZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#focusMasterZ" class="link">Source</a></p><div class="doc"><p>Move the focus to the first element </p></div></div><h2 id="g:6">Extraction </h2><div class="top"><p class="src"><a name="v:getFocusZ" class="def">getFocusZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a<a href="src/XMonad-Util-Stack.html#getFocusZ" class="link">Source</a></p><div class="doc"><p>Get the focused element </p></div></div><div class="top"><p class="src"><a name="v:getIZ" class="def">getIZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a<a href="src/XMonad-Util-Stack.html#getIZ" class="link">Source</a></p><div class="doc"><p>Get the element at a given index </p></div></div><h2 id="g:7">Sorting </h2><div class="top"><p class="src"><a name="v:sortZ" class="def">sortZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a> a => <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#sortZ" class="link">Source</a></p><div class="doc"><p>Sort a stack of elements supporting <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ord">Ord</a></code> </p></div></div><div class="top"><p class="src"><a name="v:sortByZ" class="def">sortByZ</a> :: (a -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ordering">Ordering</a>) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#sortByZ" class="link">Source</a></p><div class="doc"><p>Sort a stack with an arbitrary sorting function </p></div></div><h2 id="g:8">Maps </h2><div class="top"><p class="src"><a name="v:mapZ" class="def">mapZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b<a href="src/XMonad-Util-Stack.html#mapZ" class="link">Source</a></p><div class="doc"><p>Map a function over a stack. The boolean argument indcates whether the current element is the focused one </p></div></div><div class="top"><p class="src"><a name="v:mapZ_" class="def">mapZ_</a> :: (a -> b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b<a href="src/XMonad-Util-Stack.html#mapZ_" class="link">Source</a></p><div class="doc"><p><code><a href="XMonad-Util-Stack.html#v:mapZ">mapZ</a></code> without the <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument </p></div></div><div class="top"><p class="src"><a name="v:mapZM" class="def">mapZM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> m b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b)<a href="src/XMonad-Util-Stack.html#mapZM" class="link">Source</a></p><div class="doc"><p>Monadic version of <code><a href="XMonad-Util-Stack.html#v:mapZ">mapZ</a></code> </p></div></div><div class="top"><p class="src"><a name="v:mapZM_" class="def">mapZM_</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> b)<a href="src/XMonad-Util-Stack.html#mapZM_" class="link">Source</a></p><div class="doc"><p>Monadic version of <code><a href="XMonad-Util-Stack.html#v:mapZ_">mapZ_</a></code> </p></div></div><div class="top"><p class="src"><a name="v:onFocusedZ" class="def">onFocusedZ</a> :: (a -> a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#onFocusedZ" class="link">Source</a></p><div class="doc"><p>Apply a function to the focused element </p></div></div><div class="top"><p class="src"><a name="v:onFocusedZM" class="def">onFocusedZM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a)<a href="src/XMonad-Util-Stack.html#onFocusedZM" class="link">Source</a></p><div class="doc"><p>Monadic version of <code><a href="XMonad-Util-Stack.html#v:onFocusedZ">onFocusedZ</a></code> </p></div></div><div class="top"><p class="src"><a name="v:onIndexZ" class="def">onIndexZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> (a -> a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#onIndexZ" class="link">Source</a></p><div class="doc"><p>Apply a function to the element at the given index </p></div></div><div class="top"><p class="src"><a name="v:onIndexZM" class="def">onIndexZM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> (a -> m a) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> m (<a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a)<a href="src/XMonad-Util-Stack.html#onIndexZM" class="link">Source</a></p><div class="doc"><p>Monadic version of <code><a href="XMonad-Util-Stack.html#v:onIndexZ">onIndexZ</a></code> </p></div></div><h2 id="g:9">Filters </h2><div class="top"><p class="src"><a name="v:filterZ" class="def">filterZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#filterZ" class="link">Source</a></p><div class="doc"><p>Fiter a stack according to a predicate. The refocusing behavior mimics XMonad's usual one. The boolean argument indicates whether the current element is the focused one. </p></div></div><div class="top"><p class="src"><a name="v:filterZ_" class="def">filterZ_</a> :: (a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#filterZ_" class="link">Source</a></p><div class="doc"><p><code><a href="XMonad-Util-Stack.html#v:filterZ">filterZ</a></code> without the <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument </p></div></div><div class="top"><p class="src"><a name="v:deleteFocusedZ" class="def">deleteFocusedZ</a> :: <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#deleteFocusedZ" class="link">Source</a></p><div class="doc"><p>Delete the focused element </p></div></div><div class="top"><p class="src"><a name="v:deleteIndexZ" class="def">deleteIndexZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a<a href="src/XMonad-Util-Stack.html#deleteIndexZ" class="link">Source</a></p><div class="doc"><p>Delete the ith element </p></div></div><h2 id="g:10">Folds </h2><div class="top"><p class="src"><a name="v:foldrZ" class="def">foldrZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> b -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b<a href="src/XMonad-Util-Stack.html#foldrZ" class="link">Source</a></p><div class="doc"><p>Analogous to <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-List.html#v:foldr">foldr</a></code>. The <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument to the step functions indicates whether the current element is the focused one </p></div></div><div class="top"><p class="src"><a name="v:foldlZ" class="def">foldlZ</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> b -> a -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b<a href="src/XMonad-Util-Stack.html#foldlZ" class="link">Source</a></p><div class="doc"><p>Analogous to <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-List.html#v:foldl">foldl</a></code>. The <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument to the step functions indicates whether the current element is the focused one </p></div></div><div class="top"><p class="src"><a name="v:foldrZ_" class="def">foldrZ_</a> :: (a -> b -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b<a href="src/XMonad-Util-Stack.html#foldrZ_" class="link">Source</a></p><div class="doc"><p><code><a href="XMonad-Util-Stack.html#v:foldrZ">foldrZ</a></code> without the <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument. </p></div></div><div class="top"><p class="src"><a name="v:foldlZ_" class="def">foldlZ_</a> :: (b -> a -> b) -> b -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> b<a href="src/XMonad-Util-Stack.html#foldlZ_" class="link">Source</a></p><div class="doc"><p><code><a href="XMonad-Util-Stack.html#v:foldlZ">foldlZ</a></code> without the <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument. </p></div></div><div class="top"><p class="src"><a name="v:elemZ" class="def">elemZ</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> a => a -> <a href="XMonad-Util-Stack.html#t:Zipper">Zipper</a> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/XMonad-Util-Stack.html#elemZ" class="link">Source</a></p><div class="doc"><p>Find whether an element is present in a stack. </p></div></div><h1 id="g:11">Other utility functions </h1><div class="top"><p class="src"><a name="v:getI" class="def">getI</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Int.html#t:Int">Int</a> -> [a] -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a<a href="src/XMonad-Util-Stack.html#getI" class="link">Source</a></p><div class="doc"><p>Safe version of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-List.html#v:-33--33-">!!</a></code> </p></div></div><div class="top"><p class="src"><a name="v:tagBy" class="def">tagBy</a> :: (a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a>) -> a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a<a href="src/XMonad-Util-Stack.html#tagBy" class="link">Source</a></p><div class="doc"><p>Tag the element with <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Right">Right</a></code> if the property is true, <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Left">Left</a></code> otherwise </p></div></div><div class="top"><p class="src"><a name="v:fromE" class="def">fromE</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> a<a href="src/XMonad-Util-Stack.html#fromE" class="link">Source</a></p><div class="doc"><p>Get the <code>a</code> from an <code>Either a a</code> </p></div></div><div class="top"><p class="src"><a name="v:mapE" class="def">mapE</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b<a href="src/XMonad-Util-Stack.html#mapE" class="link">Source</a></p><div class="doc"><p>Map a function across both <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Left">Left</a></code>s and <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Right">Right</a></code>s. The <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></code> argument is <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#v:True">True</a></code> in a <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Right">Right</a></code>, <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#v:False">False</a></code> in a <code><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#v:Left">Left</a></code>. </p></div></div><div class="top"><p class="src"><a name="v:mapE_" class="def">mapE_</a> :: (a -> b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b<a href="src/XMonad-Util-Stack.html#mapE_" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:mapEM" class="def">mapEM</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a> -> a -> m b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> m (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b)<a href="src/XMonad-Util-Stack.html#mapEM" class="link">Source</a></p><div class="doc"><p>Monadic version of <code><a href="XMonad-Util-Stack.html#v:mapE">mapE</a></code> </p></div></div><div class="top"><p class="src"><a name="v:mapEM_" class="def">mapEM_</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Control-Monad.html#t:Monad">Monad</a> m => (a -> m b) -> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> a a -> m (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Either.html#t:Either">Either</a> b b)<a href="src/XMonad-Util-Stack.html#mapEM_" 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.10.0</p></div></body></html>