<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Data.List.NonEmpty</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Data-List-NonEmpty.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >semigroups-0.8: Haskell 98 semigroups</TD ><TD CLASS="topbut" ><A HREF="src/Data-List-NonEmpty.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Data.List.NonEmpty</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >Edward Kmett <ekmett@gmail.com></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >The type of streams </A ></DT ><DT ><A HREF="#2" >non-empty stream transformations </A ></DT ><DT ><A HREF="#3" >Basic functions </A ></DT ><DT ><A HREF="#4" >Building streams </A ></DT ><DT ><A HREF="#5" >Extracting sublists </A ></DT ><DT ><A HREF="#6" >Sublist predicates </A ></DT ><DT ><A HREF="#7" >Indexing streams </A ></DT ><DT ><A HREF="#8" >Zipping and unzipping streams </A ></DT ><DT ><A HREF="#9" >Functions on streams of characters </A ></DT ><DT ><A HREF="#10" >Converting to and from a list </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >A NonEmpty list forms a monad as per list, but always contains at least one element. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ANonEmpty" >NonEmpty</A > a = a <A HREF="#v%3A%3A%7C" >:|</A > [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Amap" >map</A > :: (a -> b) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aintersperse" >intersperse</A > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ascanl" >scanl</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => (b -> a -> b) -> b -> f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ascanr" >scanr</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => (a -> b -> b) -> b -> f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ascanl1" >scanl1</A > :: (a -> a -> a) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ascanr1" >scanr1</A > :: (a -> a -> a) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ahead" >head</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atail" >tail</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alast" >last</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ainit" >init</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%7C" >(<|)</A > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Acons" >cons</A > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Auncons" >uncons</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> (a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asort" >sort</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Areverse" >reverse</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ainits" >inits</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atails" >tails</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aiterate" >iterate</A > :: (a -> a) -> a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Arepeat" >repeat</A > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Acycle" >cycle</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aunfold" >unfold</A > :: (a -> (b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > a)) -> a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ainsert" >insert</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => a -> f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atake" >take</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Adrop" >drop</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsplitAt" >splitAt</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtakeWhile" >takeWhile</A > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdropWhile" >dropWhile</A > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aspan" >span</A > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Abreak" >break</A > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Afilter" >filter</A > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apartition" >partition</A > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Agroup" >group</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a) => f a -> [<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgroupBy" >groupBy</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => (a -> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> f a -> [<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Agroup1" >group1</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgroupBy1" >groupBy1</A > :: (a -> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisPrefixOf" >isPrefixOf</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => [a] -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%21%21" >(!!)</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Azip" >zip</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > (a, b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AzipWith" >zipWith</A > :: (a -> b -> c) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > c</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aunzip" >unzip</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > f => f (a, b) -> (f a, f b)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Awords" >words</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aunwords" >unwords</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alines" >lines</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aunlines" >unlines</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfromList" >fromList</A > :: [a] -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtoList" >toList</A > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnonEmpty" >nonEmpty</A > :: [a] -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >The type of streams </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:NonEmpty" ><A NAME="t%3ANonEmpty" ></A ></A ><B >NonEmpty</B > a </TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#NonEmpty" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" >a <A NAME="v::|" ><A NAME="v%3A%3A%7C" ></A ></A ><B >:|</B > [a]</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:NonEmpty')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:NonEmpty" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1" >Typeable1</A > <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Applicative.html#t%3AApplicative" >Applicative</A > <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Traversable.html#t%3ATraversable" >Traversable</A > <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData" >Data</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Data.html#t%3AData" >Data</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead" >Read</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead" >Read</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-Semigroup.html#t%3ASemigroup" >Semigroup</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >non-empty stream transformations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:map" ><A NAME="v%3Amap" ></A ></A ><B >map</B > :: (a -> b) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#map" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >map a function over a <TT ><A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TT > stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:intersperse" ><A NAME="v%3Aintersperse" ></A ></A ><B >intersperse</B > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#intersperse" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:scanl" ><A NAME="v%3Ascanl" ></A ></A ><B >scanl</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => (b -> a -> b) -> b -> f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#scanl" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanl" >scanl</A ></TT > is similar to <TT ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#v%3Afoldl" >foldl</A ></TT >, but returns a stream of successive reduced values from the left: </P ><PRE > scanl f z [x1, x2, ...] == z :| [z `f` x1, (z `f` x1) `f` x2, ...] </PRE ><P >Note that </P ><PRE > last (scanl f z xs) == foldl f z xs. </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:scanr" ><A NAME="v%3Ascanr" ></A ></A ><B >scanr</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => (a -> b -> b) -> b -> f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#scanr" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanr" >scanr</A ></TT > is the right-to-left dual of <TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanl" >scanl</A ></TT >. Note that </P ><PRE > head (scanr f z xs) == foldr f z xs. </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:scanl1" ><A NAME="v%3Ascanl1" ></A ></A ><B >scanl1</B > :: (a -> a -> a) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#scanl1" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanl1" >scanl1</A ></TT > is a variant of <TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanl" >scanl</A ></TT > that has no starting value argument: </P ><PRE > scanl1 f [x1, x2, ...] == x1 :| [x1 `f` x2, x1 `f` (x2 `f` x3), ...] </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:scanr1" ><A NAME="v%3Ascanr1" ></A ></A ><B >scanr1</B > :: (a -> a -> a) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#scanr1" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanr1" >scanr1</A ></TT > is a variant of <TT ><A HREF="Data-List-NonEmpty.html#v%3Ascanr" >scanr</A ></TT > that has no starting value argument. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >Basic functions </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:head" ><A NAME="v%3Ahead" ></A ></A ><B >head</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#head" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Extract the first element of the stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:tail" ><A NAME="v%3Atail" ></A ></A ><B >tail</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#tail" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Extract the possibly empty tail of the stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:last" ><A NAME="v%3Alast" ></A ></A ><B >last</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#last" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Extract the last element of the stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:init" ><A NAME="v%3Ainit" ></A ></A ><B >init</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#init" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Extract everything except the last element of the stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:<|" ><A NAME="v%3A%3C%7C" ></A ></A ><B >(<|)</B > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#%3C%7C" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >cons onto a stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:cons" ><A NAME="v%3Acons" ></A ></A ><B >cons</B > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#cons" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:uncons" ><A NAME="v%3Auncons" ></A ></A ><B >uncons</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> (a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a))</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#uncons" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:sort" ><A NAME="v%3Asort" ></A ></A ><B >sort</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#sort" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Sort a stream </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:reverse" ><A NAME="v%3Areverse" ></A ></A ><B >reverse</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#reverse" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Data-List-NonEmpty.html#v%3Areverse" >reverse</A ></TT > a finite NonEmpty </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:inits" ><A NAME="v%3Ainits" ></A ></A ><B >inits</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#inits" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Ainits" >inits</A ></TT > function takes a stream <TT >xs</TT > and returns all the finite prefixes of <TT >xs</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:tails" ><A NAME="v%3Atails" ></A ></A ><B >tails</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#tails" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Atails" >tails</A ></TT > function takes a stream <TT >xs</TT > and returns all the suffixes of <TT >xs</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" ><A NAME="4" >Building streams </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:iterate" ><A NAME="v%3Aiterate" ></A ></A ><B >iterate</B > :: (a -> a) -> a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#iterate" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3Aiterate" >iterate</A ></TT > f x</TT > produces the infinite sequence of repeated applications of <TT >f</TT > to <TT >x</TT >. </P ><PRE > iterate f x = [x, f x, f (f x), ..] </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:repeat" ><A NAME="v%3Arepeat" ></A ></A ><B >repeat</B > :: a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#repeat" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3Arepeat" >repeat</A ></TT > x</TT > returns a constant stream, where all elements are equal to <TT >x</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:cycle" ><A NAME="v%3Acycle" ></A ></A ><B >cycle</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#cycle" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3Acycle" >cycle</A ></TT > xs</TT > returns the infinite repetition of <TT >xs</TT >: </P ><PRE > cycle [1,2,3] = 1 :| [2,3,1,2,3,...] </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:unfold" ><A NAME="v%3Aunfold" ></A ></A ><B >unfold</B > :: (a -> (b, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > a)) -> a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#unfold" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:insert" ><A NAME="v%3Ainsert" ></A ></A ><B >insert</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a => a -> f a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#insert" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Data-List-NonEmpty.html#v%3Ainsert" >insert</A ></TT > an item into a <TT ><A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A ></TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" ><A NAME="5" >Extracting sublists </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:take" ><A NAME="v%3Atake" ></A ></A ><B >take</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#take" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3Atake" >take</A ></TT > n xs</TT > returns the first <TT >n</TT > elements of <TT >xs</TT >. </P ><P ><EM >Beware</EM >: passing a negative integer as the first argument will cause an error. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:drop" ><A NAME="v%3Adrop" ></A ></A ><B >drop</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#drop" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3Adrop" >drop</A ></TT > n xs</TT > drops the first <TT >n</TT > elements off the front of the sequence <TT >xs</TT >. </P ><P ><EM >Beware</EM >: passing a negative integer as the first argument will cause an error. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:splitAt" ><A NAME="v%3AsplitAt" ></A ></A ><B >splitAt</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#splitAt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3AsplitAt" >splitAt</A ></TT > n xs</TT > returns a pair consisting of the prefix of <TT >xs</TT > of length <TT >n</TT > and the remaining stream immediately following this prefix. </P ><P ><EM >Beware</EM >: passing a negative integer as the first argument will cause an error. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:takeWhile" ><A NAME="v%3AtakeWhile" ></A ></A ><B >takeWhile</B > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#takeWhile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3AtakeWhile" >takeWhile</A ></TT > p xs</TT > returns the longest prefix of the stream <TT >xs</TT > for which the predicate <TT >p</TT > holds. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:dropWhile" ><A NAME="v%3AdropWhile" ></A ></A ><B >dropWhile</B > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#dropWhile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3AdropWhile" >dropWhile</A ></TT > p xs</TT > returns the suffix remaining after <TT ><TT ><A HREF="Data-List-NonEmpty.html#v%3AtakeWhile" >takeWhile</A ></TT > p xs</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:span" ><A NAME="v%3Aspan" ></A ></A ><B >span</B > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#span" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Data-List-NonEmpty.html#v%3Aspan" >span</A ></TT > <TT >p</TT > <TT >xs</TT > returns the longest prefix of <TT >xs</TT > that satisfies <TT >p</TT >, together with the remainder of the stream. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:break" ><A NAME="v%3Abreak" ></A ></A ><B >break</B > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#break" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Abreak" >break</A ></TT > <TT >p</TT > function is equivalent to <TT ><A HREF="Data-List-NonEmpty.html#v%3Aspan" >span</A ></TT > <TT >not . p</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:filter" ><A NAME="v%3Afilter" ></A ></A ><B >filter</B > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#filter" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Data-List-NonEmpty.html#v%3Afilter" >filter</A ></TT > <TT >p</TT > <TT >xs</TT >, removes any elements from <TT >xs</TT > that do not satisfy <TT >p</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:partition" ><A NAME="v%3Apartition" ></A ></A ><B >partition</B > :: (a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> ([a], [a])</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#partition" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Apartition" >partition</A ></TT > function takes a predicate <TT >p</TT > and a stream <TT >xs</TT >, and returns a pair of streams. The first stream corresponds to the elements of <TT >xs</TT > for which <TT >p</TT > holds; the second stream corresponds to the elements of <TT >xs</TT > for which <TT >p</TT > does not hold. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:group" ><A NAME="v%3Agroup" ></A ></A ><B >group</B > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a) => f a -> [<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#group" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Agroup" >group</A ></TT > function takes a stream and returns a stream of lists such that flattening the resulting stream is equal to the argument. Moreover, each sublist in the resulting stream contains only equal elements. For example, </P ><PRE > group $ cycle "Mississippi" = "M" : "i" : "ss" : "i" : "ss" : "i" : "pp" : "i" : "M" : "i" : ... </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:groupBy" ><A NAME="v%3AgroupBy" ></A ></A ><B >groupBy</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Foldable.html#t%3AFoldable" >Foldable</A > f => (a -> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> f a -> [<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#groupBy" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:group1" ><A NAME="v%3Agroup1" ></A ></A ><B >group1</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#group1" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:groupBy1" ><A NAME="v%3AgroupBy1" ></A ></A ><B >groupBy1</B > :: (a -> a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A >) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#groupBy1" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" ><A NAME="6" >Sublist predicates </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isPrefixOf" ><A NAME="v%3AisPrefixOf" ></A ></A ><B >isPrefixOf</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => [a] -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#isPrefixOf" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The isPrefix function returns <TT >True</TT > if the first argument is a prefix of the second. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="7" ><A NAME="7" >Indexing streams </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:!!" ><A NAME="v%3A%21%21" ></A ></A ><B >(!!)</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#%21%21" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P ><TT >xs !! n</TT > returns the element of the stream <TT >xs</TT > at index <TT >n</TT >. Note that the head of the stream has index 0. </P ><P ><EM >Beware</EM >: passing a negative integer as the first argument will cause an error. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="8" ><A NAME="8" >Zipping and unzipping streams </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:zip" ><A NAME="v%3Azip" ></A ></A ><B >zip</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > (a, b)</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#zip" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Azip" >zip</A ></TT > function takes two streams and returns a list of corresponding pairs. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:zipWith" ><A NAME="v%3AzipWith" ></A ></A ><B >zipWith</B > :: (a -> b -> c) -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > b -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > c</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#zipWith" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3AzipWith" >zipWith</A ></TT > function generalizes <TT ><A HREF="Data-List-NonEmpty.html#v%3Azip" >zip</A ></TT >. Rather than tupling the functions, the elements are combined using the function passed as the first argument to <TT ><A HREF="Data-List-NonEmpty.html#v%3AzipWith" >zipWith</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:unzip" ><A NAME="v%3Aunzip" ></A ></A ><B >unzip</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > f => f (a, b) -> (f a, f b)</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#unzip" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Aunzip" >unzip</A ></TT > function is the inverse of the <TT ><A HREF="Data-List-NonEmpty.html#v%3Azip" >zip</A ></TT > function. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="9" ><A NAME="9" >Functions on streams of characters </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:words" ><A NAME="v%3Awords" ></A ></A ><B >words</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#words" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Awords" >words</A ></TT > function breaks a stream of characters into a stream of words, which were delimited by white space. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:unwords" ><A NAME="v%3Aunwords" ></A ></A ><B >unwords</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#unwords" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Aunwords" >unwords</A ></TT > function is an inverse operation to <TT ><A HREF="Data-List-NonEmpty.html#v%3Awords" >words</A ></TT >. It joins words with separating spaces. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:lines" ><A NAME="v%3Alines" ></A ></A ><B >lines</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#lines" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Alines" >lines</A ></TT > function breaks a stream of characters into a list of strings at newline characters. The resulting strings do not contain newlines. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:unlines" ><A NAME="v%3Aunlines" ></A ></A ><B >unlines</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#unlines" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="Data-List-NonEmpty.html#v%3Aunlines" >unlines</A ></TT > function is an inverse operation to <TT ><A HREF="Data-List-NonEmpty.html#v%3Alines" >lines</A ></TT >. It joins lines, after appending a terminating newline to each. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="10" ><A NAME="10" >Converting to and from a list </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:fromList" ><A NAME="v%3AfromList" ></A ></A ><B >fromList</B > :: [a] -> <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#fromList" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Converts an non-empty list to a stream. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:toList" ><A NAME="v%3AtoList" ></A ></A ><B >toList</B > :: <A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a -> [a]</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#toList" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Convert a stream to a list efficiently </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:nonEmpty" ><A NAME="v%3AnonEmpty" ></A ></A ><B >nonEmpty</B > :: [a] -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Data-List-NonEmpty.html#t%3ANonEmpty" >NonEmpty</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/Data-List-NonEmpty.html#nonEmpty" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >