o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnNone$Continuation with arbitrary result. <Vector parametrized by length. In ideal world it should be:  C forall n. (Arity n, Vector (v n) a, Dim (v n) ~ n) => VectorN v a !Alas polymorphic constraints aren't allowed in haskell. *Type class for vectors with fixed length. (N-ary function for creation of vectors. Deconstruction of vector. 0Size of vector expressed as type-level natural. Type class for handling n-ary functions. Left fold over n% elements exposed as n-ary function. Monadic left fold. &Apply all parameters to the function. Monadic apply Arity of function. &Newtype wrapper which is used to make  injective. !Type family for n-ary functions. Successor of n Type level zero  Length of vector. Function doesn't evaluate its argument. /Construct vector. It should be used instead of  to get $ deforestation. Example of usage:   cont1 $ cont2 $ construct becomes  create $ Cont $ cont1 . cont2  Wrapper for . It''s inlined later and is needed in order . to give deforestation rule chance to fire. Fold function Extract result of fold Initial value Reduction function Fold function Extract result of fold Initial value Reduction function Get value to apply to function Initial value N-ary function Get value to apply to function Initial value N-ary function op qrstu    op qrstuNone!Type class for immutable vectors >Convert vector to immutable state. Mutable vector must not be  modified afterwards. ?Convert immutable vector to mutable. Immutable vector must not  be used afterwards. Get element at specified index Type class for mutable vectors Checks whether vectors' buffers overlaps ;Copy vector. The two vectors may not overlap. Since vectors' E length is encoded in the type there is no need in runtime checks. 7Copy vector. The two vectors may overlap. Since vectors' length > is encoded in the type there is no need in runtime checks. Allocate new vector *Read value at index without bound checks. +Write value at index without bound checks. Dimension for mutable vector !+Mutable counterpart of fixed-length vector "Length of mutable vector # Clone vector $'Read value at index with bound checks. %(Write value at index with bound checks. &Length of immutable vector (,Safely convert mutable vector to immutable. ),Safely convert immutable vector to mutable. *Generic inspect +Generic construct vwxyTarget Source Target Source  !"#$%&'()*+z !"#$%&'()*+! "$%#'&()+*vwxy !"#$%&'()*+zNone',<Vector based on the lists. Not very useful by itself but is ! necessary for implementation. .;Generic function for construction of arbitrary vectors. It 1 represents partially constructed vector where n is number of  uninitialized elements, v is type of vector and a element type. ,Uninitialized vector could be obtained from 7 and vector 4 elements could be added from left to right using 8 operator. 1 Finally it could be converted to vector using 6 function. HConstruction of complex number which could be seen as 2-element vector: import Data.Complex%vec $ con |> 1 |> 3 :: Complex Double 1.0 :+ 3.05Change continuation type. 6,Convert fully applied constructor to vector 7Seed constructor 8 Apply another element to vector 9Replicate value n times.  Examples: %import Data.Vector.Fixed.Boxed (Vec2)1replicate 1 :: Vec2 Int -- Two element vectorfromList [1,1]%import Data.Vector.Fixed.Boxed (Vec3)3replicate 2 :: Vec3 Double -- Three element vectorfromList [2.0,2.0,2.0]$import Data.Vector.Fixed.Boxed (Vec) replicate "foo" :: Vec N5 String(fromList ["foo","foo","foo","foo","foo"]:4Execute monadic action for every element of vector.  Examples: *import Data.Vector.Fixed.Boxed (Vec2,Vec3)'replicateM (Just 3) :: Maybe (Vec3 Int)Just fromList [3,3,3]+replicateM (putStrLn "Hi!") :: IO (Vec2 ())Hi!Hi!fromList [(),()];Unit vector along Nth axis,  Examples: %import Data.Vector.Fixed.Boxed (Vec3)basis 0 :: Vec3 IntfromList [1,0,0]basis 1 :: Vec3 IntfromList [0,1,0]basis 2 :: Vec3 IntfromList [0,0,1]<0Generate vector from function which maps element's index to its value.  Examples: &import Data.Vector.Fixed.Unboxed (Vec)generate (^2) :: Vec N4 IntfromList [0,1,4,9]=Monadic generation >First element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3),let x = vec $ con |> 1 |> 2 |> 3 :: Vec3 Inthead x1?Tail of vector.  Examples: +import Data.Vector.Fixed.Boxed (Vec2, Vec3),let x = vec $ con |> 1 |> 2 |> 3 :: Vec3 Inttail x :: Vec2 IntfromList [2,3]@=Continuation variant of tail. It should be used when tail of 8 vector is immediately deconstructed with polymorphic  function. For example G . ? will fail with unhelpful ) error message because return value of tail is polymorphic. But  @ G works just fine.  Examples: %import Data.Vector.Fixed.Boxed (Vec3),let x = vec $ con |> 1 |> 2 |> 3 :: Vec3 InttailWith sum x5AO(n) Get vector's element at index i. BLeft fold over vector CMonadic fold over vector. DLeft fold over vector E?Left fold over vector. Function is applied to each element and  its index. FGLeft monadic fold over vector. Function is applied to each element and  its index. GSum all elements in the vector HMaximum element of vector  Examples: %import Data.Vector.Fixed.Boxed (Vec3),let x = vec $ con |> 1 |> 2 |> 3 :: Vec3 Int maximum x3IMinimum element of vector  Examples: %import Data.Vector.Fixed.Boxed (Vec3),let x = vec $ con |> 1 |> 2 |> 3 :: Vec3 Int minimum x1JTest two vectors for equality.  Examples: %import Data.Vector.Fixed.Boxed (Vec2)let v0 = basis 0 :: Vec2 Intlet v1 = basis 1 :: Vec2 Int v0 `eq` v0True v0 `eq` v1FalseKMap over vector L8Evaluate every action in the vector from left to right. MIEvaluate every action in the vector from left to right and ignore result NMonadic map over vector. OBApply monadic action to each element of vector and ignore result. P=Apply function to every element of the vector and its index. QEApply monadic function to every element of the vector and its index. R>Apply monadic function to every element of the vector and its  index and discard result. S(Zip two vector together using function.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let b0 = basis 0 :: Vec3 Intlet b1 = basis 1 :: Vec3 Intlet b2 = basis 2 :: Vec3 Intlet vplus x y = zipWith (+) x y vplus b0 b1fromList [1,1,0] vplus b0 b2fromList [1,0,1] vplus b1 b2fromList [0,1,1]T0Zip two vector together using monadic function. UAZip two vector together using function which takes element index  as well. VCZip two vector together using monadic function which takes element  index as well.. W'Convert between different vector types XConvert vector to the list Y;Create vector form list. List must have same length as the  vector. ^{|}~,-./0123456789:;<=>?@ Continuation Vector ABCDEFGHIJKLMNOPQRSTUVWXY9 ,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY943210/ 5.6789:;<=>?@AJKNOPQRLMBDCEFGHISTUVWXY,-M{|}~,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYNone\)Mutable unboxed vector with fixed length ]3Vector with fixed length which can hold any value. Z[\]Z[\]][Z\ Z[\]None`)Mutable unboxed vector with fixed length a!Unboxed vector with fixed length ^_`a^_`aa_^` ^_`aNone@bcdefbcdeffdceb@bcdefNonei0Storable-based mutable vector with fixed length k(Storable-based vector with fixed length lBGet underlying pointer. Data may not be modified through pointer. m'Construct vector from foreign pointer. ghijklmnghijklmnkhgmlnijghijklmn      !"#$%&'()*+,-./01223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab_`abc_`ab_`aabdefgghijklmmnnoppqrrssttuuvvwwxxyyzz{{||}}~~3ababbfixed-vector-0.1.2.1Data.Vector.Fixed.InternalData.Vector.Fixed.MutableData.Vector.FixedData.Vector.Fixed.BoxedData.Vector.Fixed.PrimitiveData.Vector.Fixed.UnboxedData.Vector.Fixed.StorableContVectorNVector constructinspectDimArityaccumaccumMapplyapplyMarityFunFnSZlengthcreateinspectVIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIindexfreezethaw inspectVec constructVecVecListNewN6N5N4N3N2N1convertContinuationveccon|> replicate replicateMbasisgenerate generateMheadtailtailWith!foldlfoldMfoldl1ifoldlifoldMsummaximumminimumeqmapsequence sequence_mapMmapM_imapimapMimapM_zipWithzipWithMizipWith izipWithMconverttoListfromListVec3Vec2MVecVecUnboxunsafeToForeignPtrunsafeFromForeignPtr unsafeWithT_fmapapp$fVectorComplexa$fArityS$fArityZ $fFunctorFunT_newT_idxstepIdrunIDT_listFlipT_izipT_imapT_mapT_ifoldlT_foldl1T_foldlT_ElemT_head T_generateT_basis T_replicatef2n replicateF replicateFMbasisF generateF generateFMheadFtailFelemFfoldlFfoldl1FifoldlFmapFMimapFM izipWithFM $fMonadId$fVectorNVecListna$fVectorVecLista uninitialised$fVectorNVecna $fVectorVeca $fIVectorVeca$fMVectorMVeca $fShowVecfromBooltoBool$fIVectorVec(,,)$fMVectorMVec(,,) $fUnboxn(,,)$fIVectorVec(,)$fMVectorMVec(,) $fUnboxn(,)$fIVectorVecComplex$fMVectorMVecComplex$fUnboxnComplex$fIVectorVecDouble$fMVectorMVecDouble$fUnboxnDouble$fIVectorVecFloat$fMVectorMVecFloat $fUnboxnFloat$fIVectorVecChar$fMVectorMVecChar $fUnboxnChar$fIVectorVecWord64$fMVectorMVecWord64$fUnboxnWord64$fIVectorVecWord32$fMVectorMVecWord32$fUnboxnWord32$fIVectorVecWord16$fMVectorMVecWord16$fUnboxnWord16$fIVectorVecWord8$fMVectorMVecWord8 $fUnboxnWord8$fIVectorVecWord$fMVectorMVecWord $fUnboxnWord$fIVectorVecInt64$fMVectorMVecInt64 $fUnboxnInt64$fIVectorVecInt32$fMVectorMVecInt32 $fUnboxnInt32$fIVectorVecInt16$fMVectorMVecInt16 $fUnboxnInt16$fIVectorVecInt8$fMVectorMVecInt8 $fUnboxnInt8$fIVectorVecInt$fMVectorMVecInt $fUnboxnInt$fIVectorVecBool$fMVectorMVecBool $fUnboxnBool$fIVectorVec()$fMVectorMVec() $fUnboxn() mallocVectorgetPtr