!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    Safe-InferredStrict identity monad  Safe-Inferred 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 &Apply all parameters to the function. &Apply all parameters to the function. 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 Get value to apply to function Initial value N-ary function Get value to apply to function Initial value N-ary function       None40Vector as continuation without monadic context. $Vector represented as continuation. <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. BType class for vectors with fixed length. Instance should provide < two functions: one to create vector and another for vector / deconstruction. They must obey following law:  inspect v construct = v (N-ary function for creation of vectors. Deconstruction of vector. ;Optional more efficient implementation of indexing. Shouldn't  be used directly, use   instead. !0Size of vector expressed as type-level natural. " Length of vector. Function doesn't evaluate its argument. #/Change monad type for the continuation vector. $'Convert regular vector to continuation %Create empty vector. &?Convert list to continuation-based vector. Will throw error if * list is shorter than resulting vector. 'Same as & bu throws error is list doesn' t have same  length as vector. (:Convert list to continuation-based vector. Will fail with   if list doesn't have right length. )@Execute monadic action for every element of vector. Synonym for . *4Execute monadic action for every element of vector. +0Generate vector from function which maps element's index to its value. ,8Generate vector from monadic function which maps element's index  to its value. -Unfold vector. .Unit vector along Nth axis. 4Map over vector. Synonym for  5=Apply function to every element of the vector and its index. 6Monadic map over vector. 7EApply monadic function to every element of the vector and its index. 8O(1) Tail of vector. 9O(1) Prepend element to vector :(Zip two vector together using function. ;AZip two vector together using function which takes element index  as well. <0Zip two vector together using monadic function. =CZip two vector together using monadic function which takes element  index as well.. >5Run continuation vector using non-monadic finalizer. ?1Run continuation vector using monadic finalizer. @Run continuation vector. A$Convert continuation to the vector. B$Convert continuation to the vector. C3Finalizer function for getting head of the vector. DO(n) Get value at specified index. E$Left fold over continuation vector. F$Left fold over continuation vector. G,Monadic left fold over continuation vector. H,Monadic left fold over continuation vector. I Left fold. J$Right fold over continuation vector K$Right fold over continuation vector L Sum all elements in the vector. MMinimal element of vector. NMaximal element of vector. O%Conjunction of elements of a vector. P)Disjunction of all elements of a vector. Q=Determines whether all elements of vector satisfy predicate. R?Determines whether any of element of vector satisfy predicate. c      !"#&Function to extract result from monad $%&'()*+,-./0123456789:;<=>finalizer function vector ?finalizer function vector @ABCDEFGHIJKLMNOPQR !"#$@ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR@! "$%&'()*+,-./0123456789#:;<=>?@CDABEIJFKGHLMNOPQRR      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR !"#$NoneS!Type class for immutable vectors T>Convert vector to immutable state. Mutable vector must not be  modified afterwards. U?Convert immutable vector to mutable. Immutable vector must not  be used afterwards. VGet element at specified index WType class for mutable vectors XChecks whether vectors' buffers overlaps Y;Copy vector. The two vectors may not overlap. Since vectors' E length is encoded in the type there is no need in runtime checks. Z7Copy 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 a Clone vector b'Read value at index with bound checks. c(Write value at index with bound checks. dLength of immutable vector f,Safely convert mutable vector to immutable. g,Safely convert immutable vector to mutable. hGeneric inspect iGeneric construct %&'(STUVWXYTarget Source ZTarget Source [\]^_`abcdefghi)STUVWXYZ[\]^_`abcdefghi_^WXYZ[\]`bcaSTUVedfgih%&'(STUVWXYZ[\]^_`abcdefghi) None1j;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 l and vector 4 elements could be added from left to right using m operator. 1 Finally it could be converted to vector using k 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.0k,Convert fully applied constructor to vector lSeed constructor m Apply another element to vector sReplicate value n times.  Examples: %import Data.Vector.Fixed.Boxed (Vec2)replicate 1 :: Vec2 IntfromList [1,1]%replicate 2 :: (Double,Double,Double) (2.0,2.0,2.0)$import Data.Vector.Fixed.Boxed (Vec) replicate "foo" :: Vec N5 String(fromList ["foo","foo","foo","foo","foo"]t4Execute 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 [(),()]u;Unit vector along Nth axis. If index is larger than vector # dimensions returns zero vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)basis 0 :: Vec3 IntfromList [1,0,0]basis 1 :: Vec3 IntfromList [0,1,0]basis 3 :: Vec3 IntfromList [0,0,0]vUnfold vector. w0Generate 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]x8Generate vector from monadic function which maps element's index  to its value. yFirst element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Inthead x1zTail of vector.  Examples: import Data.Complextail (1,2,3) :: Complex Double 2.0 :+ 3.0{Cons element to the vector |Retrieve vector'.s element at index. Generic implementation is  O(n)/ but more efficient one is used when possible. }Left fold over vector ~Right fold over vector Left fold over vector Left fold over vector ?Left fold over vector. Function is applied to each element and  its index. Monadic fold over vector. GLeft monadic fold over vector. Function is applied to each element and  its index.  Sum all elements in the vector. Maximal element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Int maximum x3Minimal element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Int minimum x1)Conjunction of all elements of a vector. )Disjunction of all elements of a vector. =Determines whether all elements of vector satisfy predicate. ?Determines whether any of element of vector satisfy predicate. Test 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` v1FalseMap over vector 8Evaluate every action in the vector from left to right. IEvaluate every action in the vector from left to right and ignore result Monadic map over vector. BApply monadic action to each element of vector and ignore result. =Apply function to every element of the vector and its index. EApply monadic function to every element of the vector and its index. >Apply monadic function to every element of the vector and its  index and discard result.  Analog of * from +.  Analog of , from +. (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]0Zip two vector together using monadic function. AZip two vector together using function which takes element index  as well. CZip two vector together using monadic function which takes element  index as well.. 'Convert between different vector types Convert vector to the list BCreate vector form list. Will throw error if list is shorter than  resulting vector. @Create vector form list. Will throw error if list has different ! length from resulting vector. %Create vector form list. Will return Nothing if list has different ! length from resulting vector. Create vector from Foldable data type. Will return Nothing if A data type different number of elements that resulting vector. 9j-klm.nopqrstuvwxyz{|/}~9j-klm.nopqrstuvwxyz{|/}~8j-klm.nopqrstuvwxyz{|/}~NoneSingle-element tuple. <Vector based on the lists. Not very useful by itself but is ! necessary for implementation. 0123456789:;<=>?N  !"jklmnopqrstuvwxyz{|}~N!  "nopqrjklmstwxvuyz{|}~0123456789:;<=>?None Counterpart of Vector% type class for monomorphic vectors. Type of vector elements. Construct vector Inspect vector 3Optional more efficient implementation of indexing "Dimensions of monomorphic vector. @,Wrapper for monomorphic vectors it provides Vector instance for < monomorphic vectors. Trick is to restrict type parameter a to  single possible value. Length of vector Monadic fold over vector. 5@ABC= = /@ABC None)Mutable unboxed vector with fixed length 3Vector with fixed length which can hold any value. DEFGHIJKLMNOPDEFGHIJKLMNOPNone)Mutable unboxed vector with fixed length !Unboxed vector with fixed length QRSTUVWX QRSTUVWX NoneCYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None0Storable-based mutable vector with fixed length (Storable-based vector with fixed length BGet underlying pointer. Data may not be modified through pointer. 'Construct vector from foreign pointer.    !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrRstuv w x y z = > ? @ A 7 8 < ; 9 : Q F G S X W Y T U V Z \ [ ] ^ _ ` { B | } D ~ C E  H J I K 4 5 6 ,-.0=>?@A78<;9:QF SXWYTUVZ\[]^_`{BD~CEHJIK4                 w                             fixed-vector-0.4.3.0Data.Vector.Fixed.StorableData.Vector.Fixed.PrimitiveData.Vector.Fixed.Internal.Id Data.Vector.Fixed.Internal.ArityData.Vector.Fixed.ContData.Vector.Fixed.MutableData.Vector.FixedData.Vector.Fixed.MonomorphicData.Vector.Fixed.BoxedData.Vector.Fixed.Unboxed!Data.Vector.Fixed.InternalbaseForeign.StorableStorableprimitive-0.5.0.1Data.Primitive.TypesPrimIdrunIDArityaccumaccumMapplyFun applyFunMarityFununFunFnN6N5N4N3N2N1SZapplyapplyMContVecContVecTVectorNVector constructinspect basicIndexDimlength changeMonadcvecemptyfromList fromList' fromListM replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mapimapmapMimapMtailconszipWithizipWithzipWithM izipWithM runContVecT runContVecM runContVecvectorvectorMheadindexfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIfreezethaw inspectVec constructVecNewveccon|>eqsequence sequence_mapM_imapM_ sequenceAtraverseconverttoList fromFoldableOnlyVecListConsNil VectorMono VectorElmDimMonoVec5Vec4Vec3Vec2MVecVecUnboxunsafeToForeignPtrunsafeFromForeignPtr unsafeWith $fMonadIdT_fmap$fArityS$fArityZ $fFunctorFun Data.MaybeNothingControl.ApplicativepureGHC.BasefmapT_ifoldrT_foldl1T_ifoldlT_IndexT_headT_izipT_mkListT_mapT_basis T_unfoldr T_generate T_replicateT_flist convertContimapFimapFM izipWithF izipWithFMmakeList$fVector(,,,,,,)a$fVector(,,,,,)a$fVector(,,,,)a$fVector(,,,)a $fVector(,,)a $fVector(,)a$fVectorComplexa$fApplicativeContVecT$fFunctorContVecTT_newT_idxstepData.Traversable Traversablef2nrunIndexT_ListFlip $fVectorOnlya$fTraversableOnly$fFoldableOnly $fFunctorOnly$fTraversableVecList$fFoldableVecList$fApplicativeVecList$fFunctorVecList $fEqVecList $fShowVecList$fVectorNVecListna$fVectorVecListaMonogetMono $fVectorMonoa uninitialised$fTraversableVec $fFoldableVec$fApplicativeVec $fFunctorVec$fEqVec$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