Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 66ae51d8e8419fa35b264b4bcbd419fd > files > 12

ghc-parameterized-data-devel-0.1.5-3.fc15.i686.rpm

<!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>Data.Param.FSVec</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_Data-Param-FSVec.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Param-FSVec.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">parameterized-data-0.1.5: Parameterized data library implementing lightweight dependent
types</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>alfonso.acosta@gmail.com</td></tr></table><p class="caption">Data.Param.FSVec</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p><code><a href="Data-Param-FSVec.html#t:FSVec">FSVec</a></code>: Fixed sized vectors. Vectors with numerically parameterized size.
</p><p>Tutorial: <a href="http://www.ict.kth.se/forsyde/files/tutorial/tutorial.html#FSVec">http://www.ict.kth.se/forsyde/files/tutorial/tutorial.html#FSVec</a>
</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">data</span> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:empty">empty</a> ::  <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Reps.html#t:D0">D0</a> a</li><li class="src short"><a href="#v:-43--62-">(+&gt;)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s', <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s s') =&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:singleton">singleton</a> ::  a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Reps.html#t:D1">D1</a> a</li><li class="src short"><a href="#v:vectorCPS">vectorCPS</a> ::  [a] -&gt; (<span class="keyword">forall</span> s. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; w) -&gt; w</li><li class="src short"><a href="#v:vectorTH">vectorTH</a> :: <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.5.0.0/Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a =&gt; [a] -&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.5.0.0/Language-Haskell-TH-Lib.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:unsafeVector">unsafeVector</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; [a] -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:reallyUnsafeVector">reallyUnsafeVector</a> ::  [a] -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:readFSVec">readFSVec</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:readFSVecCPS">readFSVecCPS</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; (<span class="keyword">forall</span> s. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; w) -&gt; w</li><li class="src short"><a href="#v:length">length</a> :: <span class="keyword">forall</span> s a. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:genericLength">genericLength</a> :: <span class="keyword">forall</span> s a n. (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Num">Num</a> n) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; n</li><li class="src short"><a href="#v:lengthT">lengthT</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; s</li><li class="src short"><a href="#v:fromVector">fromVector</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; [a]</li><li class="src short"><a href="#v:null">null</a> ::  <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Reps.html#t:D0">D0</a> a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:-33-">(!)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i, i <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t::-60-:">:&lt;:</a> s) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; i -&gt; a</li><li class="src short"><a href="#v:replace">replace</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; i -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:head">head</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a</li><li class="src short"><a href="#v:last">last</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a</li><li class="src short"><a href="#v:init">init</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s' s) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:tail">tail</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s' s) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:take">take</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Min">Min</a> s i s') =&gt; i -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:drop">drop</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Min">Min</a> s i sm, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Sub">Sub</a> s sm s') =&gt; i -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:select">select</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> f, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> n, f <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t::-60-:">:&lt;:</a> i, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Mul">Mul</a> s n smn, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Add">Add</a> f smn fasmn, fasmn <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t::-60--61-:">:&lt;=:</a> i) =&gt; f -&gt; s -&gt; n -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> i a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> n a</li><li class="src short"><a href="#v:group">group</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> n, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Div">Div</a> s n s') =&gt; n -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> n a)</li><li class="src short"><a href="#v:-60--43-">(&lt;+)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s', <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s s') =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:-43--43-">(++)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s1, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s2, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Add">Add</a> s1 s2 s3) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s3 a</li><li class="src short"><a href="#v:map">map</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (a -&gt; b) -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b</li><li class="src short"><a href="#v:zipWith">zipWith</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (a -&gt; b -&gt; c) -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s c</li><li class="src short"><a href="#v:foldl">foldl</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (a -&gt; b -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; a</li><li class="src short"><a href="#v:foldr">foldr</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (b -&gt; a -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; a</li><li class="src short"><a href="#v:zip">zip</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s (a, b)</li><li class="src short"><a href="#v:unzip">unzip</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s (a, b) -&gt; (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a, <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b)</li><li class="src short"><a href="#v:shiftl">shiftl</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:shiftr">shiftr</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:rotl">rotl</a> :: <span class="keyword">forall</span> s a. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:rotr">rotr</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:concat">concat</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s1, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s2, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s3, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Mul">Mul</a> s1 s2 s3) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a) -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s3 a</li><li class="src short"><a href="#v:reverse">reverse</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:iterate">iterate</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; (a -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:generate">generate</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; (a -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:copy">copy</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a name="t:FSVec" class="def">FSVec</a> s a <a href="src/Data-Param-FSVec.html#FSVec" class="link">Source</a></p><div class="doc"><p>Fixed-Sized Vector data type, indexed with type-level naturals, the 
   first index for all vectors is 0
</p></div><div class="subs instances"><p id="control.i:FSVec" class="caption collapser" onclick="toggleSection('i:FSVec')">Instances</p><div id="section.i:FSVec" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable2">Typeable2</a> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Functor">Functor</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Foldable.html#t:Foldable">Foldable</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Traversable.html#t:Traversable">Traversable</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> s) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.5.0.0/Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s) =&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.5.0.0/Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:empty" class="def">empty</a> ::  <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Reps.html#t:D0">D0</a> a<a href="src/Data-Param-FSVec.html#empty" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:-43--62-" class="def">(+&gt;)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s', <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s s') =&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a<a href="src/Data-Param-FSVec.html#%2B%3E" class="link">Source</a></p><div class="doc"><p>Cons operator, note it's not a constructor
</p></div></div><div class="top"><p class="src"><a name="v:singleton" class="def">singleton</a> ::  a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Reps.html#t:D1">D1</a> a<a href="src/Data-Param-FSVec.html#singleton" class="link">Source</a></p><div class="doc"><p>A FSVec with a single element
</p></div></div><div class="top"><p class="src"><a name="v:vectorCPS" class="def">vectorCPS</a> ::  [a] -&gt; (<span class="keyword">forall</span> s. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; w) -&gt; w<a href="src/Data-Param-FSVec.html#vectorCPS" class="link">Source</a></p><div class="doc"><p>Build a vector from a list (CPS style)
</p></div></div><div class="top"><p class="src"><a name="v:vectorTH" class="def">vectorTH</a> :: <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.5.0.0/Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a =&gt; [a] -&gt; <a href="/usr/share/doc/ghc/html/libraries/template-haskell-2.5.0.0/Language-Haskell-TH-Lib.html#t:ExpQ">ExpQ</a><a href="src/Data-Param-FSVec.html#vectorTH" class="link">Source</a></p><div class="doc"><p>Build a vector from a list (using Template Haskell)
</p></div></div><div class="top"><p class="src"><a name="v:unsafeVector" class="def">unsafeVector</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; [a] -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#unsafeVector" class="link">Source</a></p><div class="doc"><p>Build a vector from a list (unsafe version: The static/dynamic size of 
   the list is checked to match at runtime)
</p></div></div><div class="top"><p class="src"><a name="v:reallyUnsafeVector" class="def">reallyUnsafeVector</a> ::  [a] -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#reallyUnsafeVector" class="link">Source</a></p><div class="doc"><p>Build a vector from a list.  
</p><p>Unlike unsafeVector, reallyunsafeVector doesn't have access to the 
  static size of the list and thus cannot not check it against its
  dynamic size (which saves traversing the list at runtime to obtain 
  the dynamic length).
</p><p>Therefore, reallyUnsafeVector (the name is that long on purspose)
  can be used to gain some performance but may break the consistency
  of the size parameter if not handled with care (i.e. the size
  parameter can nolonger be checked statically and the fullfilment of
  function constraints is left to the programmers judgement).
</p><p>Do not use reallyUnsafeVector unless you know what you're doing!
</p></div></div><div class="top"><p class="src"><a name="v:readFSVec" class="def">readFSVec</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#readFSVec" class="link">Source</a></p><div class="doc"><p>Read a vector (Note the the size of 
   the vector string is checked to match the resulting type at runtime)
</p></div></div><div class="top"><p class="src"><a name="v:readFSVecCPS" class="def">readFSVecCPS</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; (<span class="keyword">forall</span> s. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; w) -&gt; w<a href="src/Data-Param-FSVec.html#readFSVecCPS" class="link">Source</a></p><div class="doc"><p>Read a vector, CPS version.
</p></div></div><div class="top"><p class="src"><a name="v:length" class="def">length</a> :: <span class="keyword">forall</span> s a. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a><a href="src/Data-Param-FSVec.html#length" class="link">Source</a></p><div class="doc"><p>value-level length of a vector 
</p></div></div><div class="top"><p class="src"><a name="v:genericLength" class="def">genericLength</a> :: <span class="keyword">forall</span> s a n. (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Num">Num</a> n) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; n<a href="src/Data-Param-FSVec.html#genericLength" class="link">Source</a></p><div class="doc"><p>generic value-level length of a vector 
</p></div></div><div class="top"><p class="src"><a name="v:lengthT" class="def">lengthT</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; s<a href="src/Data-Param-FSVec.html#lengthT" class="link">Source</a></p><div class="doc"><p>type-level version of length
</p></div></div><div class="top"><p class="src"><a name="v:fromVector" class="def">fromVector</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; [a]<a href="src/Data-Param-FSVec.html#fromVector" class="link">Source</a></p><div class="doc"><p>Transform Vector to a list
</p></div></div><div class="top"><p class="src"><a name="v:null" class="def">null</a> ::  <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Reps.html#t:D0">D0</a> a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Data-Param-FSVec.html#null" class="link">Source</a></p><div class="doc"><p>Check if a Vector is empty
</p></div></div><div class="top"><p class="src"><a name="v:-33-" class="def">(!)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i, i <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t::-60-:">:&lt;:</a> s) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; i -&gt; a<a href="src/Data-Param-FSVec.html#%21" class="link">Source</a></p><div class="doc"><p>Access an element of a vector
</p></div></div><div class="top"><p class="src"><a name="v:replace" class="def">replace</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; i -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#replace" class="link">Source</a></p><div class="doc"><p>Replace an element of a vector
</p></div></div><div class="top"><p class="src"><a name="v:head" class="def">head</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a<a href="src/Data-Param-FSVec.html#head" class="link">Source</a></p><div class="doc"><p>Take the first element of a vector
</p></div></div><div class="top"><p class="src"><a name="v:last" class="def">last</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a<a href="src/Data-Param-FSVec.html#last" class="link">Source</a></p><div class="doc"><p>Take the last element of a vector
</p></div></div><div class="top"><p class="src"><a name="v:init" class="def">init</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s' s) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a<a href="src/Data-Param-FSVec.html#init" class="link">Source</a></p><div class="doc"><p>Return all but the last element of a vector
</p></div></div><div class="top"><p class="src"><a name="v:tail" class="def">tail</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s' s) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a<a href="src/Data-Param-FSVec.html#tail" class="link">Source</a></p><div class="doc"><p>Return all but the first element of a vector
</p></div></div><div class="top"><p class="src"><a name="v:take" class="def">take</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Min">Min</a> s i s') =&gt; i -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a<a href="src/Data-Param-FSVec.html#take" class="link">Source</a></p><div class="doc"><p>Take the first i elements of a vector
</p></div></div><div class="top"><p class="src"><a name="v:drop" class="def">drop</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> i, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Min">Min</a> s i sm, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Sub">Sub</a> s sm s') =&gt; i -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a<a href="src/Data-Param-FSVec.html#drop" class="link">Source</a></p><div class="doc"><p>Drop the first i elements of a vector
</p></div></div><div class="top"><p class="src"><a name="v:select" class="def">select</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> f, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> n, f <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t::-60-:">:&lt;:</a> i, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Mul">Mul</a> s n smn, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Add">Add</a> f smn fasmn, fasmn <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t::-60--61-:">:&lt;=:</a> i) =&gt; f -&gt; s -&gt; n -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> i a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> n a<a href="src/Data-Param-FSVec.html#select" class="link">Source</a></p><div class="doc"><p>The function <code><a href="Data-Param-FSVec.html#v:select">select</a></code> selects elements in the vector. The first argument
 gives the initial element, starting from zero, the second argument gives the
 stepsize between elements and the last argument gives the number of 
 elements.
</p></div></div><div class="top"><p class="src"><a name="v:group" class="def">group</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> n, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Div">Div</a> s n s') =&gt; n -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> n a)<a href="src/Data-Param-FSVec.html#group" class="link">Source</a></p><div class="doc"><p>break a vector into subvectors of size n.
</p></div></div><div class="top"><p class="src"><a name="v:-60--43-" class="def">(&lt;+)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s', <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Succ">Succ</a> s s') =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a<a href="src/Data-Param-FSVec.html#%3C%2B" class="link">Source</a></p><div class="doc"><p>add an element at the end of a vector. (Inverse of '(+&gt;)')         
</p></div></div><div class="top"><p class="src"><a name="v:-43--43-" class="def">(++)</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s1, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s2, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Add">Add</a> s1 s2 s3) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s3 a<a href="src/Data-Param-FSVec.html#%2B%2B" class="link">Source</a></p><div class="doc"><p>Concatenate two vectors
</p></div></div><div class="top"><p class="src"><a name="v:map" class="def">map</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (a -&gt; b) -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b<a href="src/Data-Param-FSVec.html#map" class="link">Source</a></p><div class="doc"><p>Apply a function on all elements of a vector
</p></div></div><div class="top"><p class="src"><a name="v:zipWith" class="def">zipWith</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (a -&gt; b -&gt; c) -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s c<a href="src/Data-Param-FSVec.html#zipWith" class="link">Source</a></p><div class="doc"><p>Applies function pairwise on two vectors
</p></div></div><div class="top"><p class="src"><a name="v:foldl" class="def">foldl</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (a -&gt; b -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; a<a href="src/Data-Param-FSVec.html#foldl" class="link">Source</a></p><div class="doc"><p>Folds a function from the right to the left  over a vector using an
   initial value.
</p></div></div><div class="top"><p class="src"><a name="v:foldr" class="def">foldr</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; (b -&gt; a -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; a<a href="src/Data-Param-FSVec.html#foldr" class="link">Source</a></p><div class="doc"><p>Folds a function from the left to the right over a vector using an 
   initial value.
</p></div></div><div class="top"><p class="src"><a name="v:zip" class="def">zip</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s (a, b)<a href="src/Data-Param-FSVec.html#zip" class="link">Source</a></p><div class="doc"><p>zip two vectors into a vector of tuples.
</p></div></div><div class="top"><p class="src"><a name="v:unzip" class="def">unzip</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s (a, b) -&gt; (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a, <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b)<a href="src/Data-Param-FSVec.html#unzip" class="link">Source</a></p><div class="doc"><p>unzip a vector of tuples into two vectors.
</p></div></div><div class="top"><p class="src"><a name="v:shiftl" class="def">shiftl</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#shiftl" class="link">Source</a></p><div class="doc"><p>shift a value from the left into a vector. 
</p></div></div><div class="top"><p class="src"><a name="v:shiftr" class="def">shiftr</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Pos">Pos</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#shiftr" class="link">Source</a></p><div class="doc"><p>shift a value from the left into a vector. 
</p></div></div><div class="top"><p class="src"><a name="v:rotl" class="def">rotl</a> :: <span class="keyword">forall</span> s a. <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#rotl" class="link">Source</a></p><div class="doc"><p>Rotate a vector to the left. Note that this fuctions does not change the 
   size of a vector.
</p></div></div><div class="top"><p class="src"><a name="v:rotr" class="def">rotr</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#rotr" class="link">Source</a></p><div class="doc"><p>Rotate a vector to the left. Note that this fuctions does not change the 
   size of a vector.
</p></div></div><div class="top"><p class="src"><a name="v:concat" class="def">concat</a> :: (<a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s1, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s2, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s3, <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Ops.html#t:Mul">Mul</a> s1 s2 s3) =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a) -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s3 a<a href="src/Data-Param-FSVec.html#concat" class="link">Source</a></p><div class="doc"><p>flatten a vector of vectors to a single vector
</p></div></div><div class="top"><p class="src"><a name="v:reverse" class="def">reverse</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#reverse" class="link">Source</a></p><div class="doc"><p>reverse a vector
</p></div></div><div class="top"><p class="src"><a name="v:iterate" class="def">iterate</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; (a -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#iterate" class="link">Source</a></p><div class="doc"><p>generate a vector with a given number of elements starting from an 
 initial element using a supplied function for the generation of elements. 
</p><pre> FSVec&gt; iterate d5 (+1) 1
</pre><pre> &lt;1,2,3,4,5&gt; :: Num a =&gt; FSVec D5 a
</pre></div></div><div class="top"><p class="src"><a name="v:generate" class="def">generate</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; (a -&gt; a) -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#generate" class="link">Source</a></p><div class="doc"><p><code><a href="Data-Param-FSVec.html#v:generate">generate</a></code> behaves in the same way as <code><a href="Data-Param-FSVec.html#v:iterate">iterate</a></code>, but starts with the 
 application of the supplied function to the supplied value. 
</p><pre> FSVec&gt; generate d5 (+1) 1
</pre><pre> &lt;2,3,4,5,6&gt; :: Num a =&gt; FSVec  D5 a
</pre></div></div><div class="top"><p class="src"><a name="v:copy" class="def">copy</a> :: <a href="/usr/share/doc/ghc/html/libraries/type-level-0.2.4/Data-TypeLevel-Num-Sets.html#t:Nat">Nat</a> s =&gt; s -&gt; a -&gt; <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a<a href="src/Data-Param-FSVec.html#copy" class="link">Source</a></p><div class="doc"><p>generates a vector with a given number of copies of the same element. 
</p><pre> FSVec&gt; copy d7 5 
</pre><pre> &lt;5,5,5,5,5,5,5&gt; :: FSVec D7 Integer
</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>