<!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 => <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-">(+>)</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') => a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s' a</li><li class="src short"><a href="#v:singleton">singleton</a> :: 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:D1">D1</a> a</li><li class="src short"><a href="#v:vectorCPS">vectorCPS</a> :: [a] -> (<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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> w) -> 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 => [a] -> <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 => s -> [a] -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a</li><li class="src short"><a href="#v:reallyUnsafeVector">reallyUnsafeVector</a> :: [a] -> <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) => <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> <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 => <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> (<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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> w) -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> [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 -> <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-:">:<:</a> s) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> i -> 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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> i -> a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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') => i -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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') => i -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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-:">:<:</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-:">:<=:</a> i) => f -> s -> n -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> i a -> <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') => n -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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-">(<+)</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') => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a -> <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 => (a -> b) -> <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: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 => (a -> b -> c) -> <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="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 => (a -> b -> a) -> a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -> 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 => (b -> a -> a) -> a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -> 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 => <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="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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s (a, b) -> (<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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a) -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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 => s -> (a -> a) -> a -> <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 => s -> (a -> a) -> a -> <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 => s -> a -> <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 => <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"> </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 => <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"> </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 => <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"> </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 => <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"> </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 => <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"> </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) => <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"> </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) => <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"> </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 => <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"> </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) => <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"> </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">(+>)</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') => a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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 -> <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] -> (<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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> w) -> 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 => [a] -> <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 => s -> [a] -> <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] -> <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) => <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> <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 => <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -> (<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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> w) -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> [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 -> <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-:">:<:</a> s) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> i -> 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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> i -> a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> 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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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') => i -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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') => i -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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-:">:<:</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-:">:<=:</a> i) => f -> s -> n -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> i a -> <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') => n -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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">(<+)</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') => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> a -> <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 '(+>)') </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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a -> <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 => (a -> b) -> <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#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 => (a -> b -> c) -> <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="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 => (a -> b -> a) -> a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -> 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 => (b -> a -> a) -> a -> <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s b -> 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 => <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="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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s (a, b) -> (<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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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) => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s1 (<a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s2 a) -> <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 => <a href="Data-Param-FSVec.html#t:FSVec">FSVec</a> s a -> <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 => s -> (a -> a) -> a -> <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> iterate d5 (+1) 1 </pre><pre> <1,2,3,4,5> :: Num a => 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 => s -> (a -> a) -> a -> <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> generate d5 (+1) 1 </pre><pre> <2,3,4,5,6> :: Num a => 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 => s -> a -> <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> copy d7 5 </pre><pre> <5,5,5,5,5,5,5> :: 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>