h      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          NoneM;Vector represented as continuation. Alternative wording: it's $ Church encoded N-element vector. ?Type class for indexing of vector when index value is known at  compile time. <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. Type class for handling n-ary functions. Left fold over n+ elements exposed as n-ary function. These 7 elements are supplied as arguments to the function. &Apply all parameters to the function. 3Apply all parameters to the function using monadic + actions. Note that for identity monad it' s same as  applyFun. Ignoring newtypes: ) forall b. Fn n a b -> b ~ ContVecn n a Arity of function. Reverse order of parameters. &Newtype wrapper which is used to make  injective. It' s also a  reader monad. !Type family for n-ary functions. Successor of n Type level zero &Apply all parameters to the function. <Apply all parameters to the function using monadic actions. !#Apply single parameter to function ")Apply last parameter to function. Unlike ! we need to * traverse all parameters but last hence   constraint. #0Add one parameter to function which is ignored. $)Move last parameter into function result %9Move function parameter to the result of N-ary function. & Length of vector. Function doesn't evaluate its argument. '2Convert regular vector to continuation based one. (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. ,Convert vector to the list -@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. 08Generate vector from monadic function which maps element's index  to its value. 1Unfold vector. 2Unit vector along Nth axis. 8Map over vector. Synonym for  9=Apply function to every element of the vector and its index. :Monadic map over vector. ;EApply monadic function to every element of the vector and its index. <BApply monadic action to each element of vector and ignore result. =AApply monadic action to each element of vector and its index and  ignore result. >8Evaluate every action in the vector from left to right. ?JEvaluate every action in the vector from left to right and ignore result. @O(1) Tail of vector. AO(1) Prepend element to vector B"Prepend single element to vector. CO(1) Append element to vector D(Reverse order of elements in the vector E(Zip two vector together using function. FAZip two vector together using function which takes element index  as well. G0Zip two vector together using monadic function. HCZip two vector together using monadic function which takes element  index as well.. IRun continuation vector. It' s same as   but with  arguments flipped. J$Convert continuation to the vector. K3Finalizer function for getting head of the vector. LO(n) Get value at specified index. M6Twan van Laarhoven lens for continuation based vector NTwan van Laarhoven'-s lens for element of vector with statically  known index. 6Helper for implementation of Twan van Laarhoven lens. O$Left fold over continuation vector. P$Left fold over continuation vector. Q,Monadic left fold over continuation vector. R,Monadic left fold over continuation vector. S Left fold. T$Right fold over continuation vector U$Right fold over continuation vector V Sum all elements in the vector. WMinimal element of vector. XMaximal element of vector. Y%Conjunction of elements of a vector. Z)Disjunction of all elements of a vector. [=Determines whether all elements of vector satisfy predicate. \?Determines whether any of element of vector satisfy predicate. 7Note this instance (and other instances for tuples) is 8 essentially monomorphic in element type. Vector type v of 2  element tuple  (Int,Int) is (,) Int so it will only work  with elements of type Int.  !"#$%&'()*+,-./0123456789:;< =>?@ 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 ABCDEFGet value to apply to function Initial value N-ary function Get value to apply to function Initial value !"#$%&G'()*+,-./0123456789:;<=HI>?@ABCDEFGHJKIJKLMNOPQRSTUVWXYZ[\LMNOPQRSTUVWXYZ[\]^[  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\[  !"#$%  &')*+,-./012(ABC3456789:;<=>?@DEFGHIKLMNJOSTPUQRVWXYZ[\~ !"#$%&'()*+,-./0123456789:;< =>?@ ABCDEF !"#$%&G'()*+,-./0123456789:;<=HI>?@ABCDEFGHJKIJKLMNOPQRSTUVWXYZ[\LMNOPQRSTUVWXYZ[\]^ None8]-Type class for variadic vector constructors. ^BVariadic vector constructor. Resulting vector should be converted  from  using J function. For example: ,vector $ mkN 'a' 'b' 'c' :: (Char,Char,Char) ('a','b','c')_)Cons value to continuation based vector. fReplicate 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 (Vec4)replicate "foo" :: Vec4 String"fromList ["foo","foo","foo","foo"]g4Execute 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 [(),()]h;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]iUnfold vector. j0Generate vector from function which maps element's index to its  value.  Examples: 'import Data.Vector.Fixed.Unboxed (Vec4)generate (^2) :: Vec4 IntfromList [0,1,4,9]k8Generate vector from monadic function which maps element's index  to its value. lFirst element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Inthead x1mTail of vector.  Examples: import Data.Complextail (1,2,3) :: Complex Double 2.0 :+ 3.0nCons element to the vector oAppend element to the vector p(Reverse order of elements in the vector qRetrieve vector'.s element at index. Generic implementation is  O(n)/ but more efficient one is used when possible. r2Get element from vector at statically known index sTwan van Laarhoven's lens for element of vector tTwan van Laarhoven'-s lens for element of vector with statically  known index. uLeft fold over vector vRight fold over vector wLeft fold over vector x?Combine the elements of a structure using a monoid. Similar to  _ y/Map each element of the structure to a monoid, ' and combine the results. Similar to ` zLeft 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` v1False'Lexicographic ordering of two vectors. Map 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 a from b.  Analog of c from b. (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. Fdef]g^_`abcdefghijklmnopqhrstuvwxyz{|}~ijkCdef]g^_`abcdefghijklmnopqhrstuvwxyz{|}~Cdef]g^_`abcdefghijklmnopqhrstuvwxyz{|}~ijkNoneMap over vector =Apply function to every element of the vector and its index. Monadic map over vector. Monadic map over vector. (Zip two vector together using function. 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.. None!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. 5Get element at specified index without bounds check.  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. Function doesn't evaluate its argument. Create copy of vector. 'Read value at index with bound checks. (Write value at index with bound checks. *Length of immutable vector. Function doesn't evaluate its argument. ,Safely convert mutable vector to immutable. ,Safely convert immutable vector to mutable. 8Generic inspect implementation for array-based vectors. :Generic construct implementation for array-based vectors. lmnoTarget Source Target Source p  lmnopNone Empty tuple. Single-element tuple. <Vector based on the lists. Not very useful by itself but is ! necessary for implementation. qrstuvwxyz{|}~` &(J]^_`abcdefghijklmnopqrstuvwxyz{|}~`   &`abcde(J_]^fgjkihlmnopqrstuvwxy{z|}~qrstuvwxyz{|}~NoneCounterpart 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 8@ @ 2None)Mutable unboxed vector with fixed length 3Vector with fixed length which can hold any value. None)Mutable unboxed vector with fixed length !Unboxed vector with fixed length   NoneD         D   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[\]^_`abcdefghij k l m n A B C D E ; < @ ? = > Y N O Q R Z [ \ ] b a o p c ^ _ ` d f e g h i j q r F L M H J G I K s t S U T V u : 7 8 9 vwxyz{|}~Z4ABCDE;<@?=>YNR ]bac^op_`dfeghijqFHJGIKSUTVu:7          o p s  t                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G     HI     Jfixed-vector-0.5.1.2Data.Vector.Fixed.StorableData.Vector.Fixed.PrimitiveData.Vector.Fixed.ContData.Vector.FixedData.Vector.Fixed.GenericData.Vector.Fixed.MutableData.Vector.Fixed.MonomorphicData.Vector.Fixed.BoxedData.Vector.Fixed.Unboxed!Data.Vector.Fixed.InternalbaseForeign.StorableStorableprimitive-0.5.1.0Data.Primitive.TypesPrimContVecIndexgetFlensFVectorNVector constructinspect basicIndexDimArityaccumapplyFun applyFunMarityreverseFFununFunFnN6N5N4N3N2N1SZapplyapplyMapFunapLastconstFunhideLast shuffleFunlengthcvecemptyfromList fromList' fromListMtoList replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mapimapmapMimapMmapM_imapM_sequence sequence_tailconsconsVsnocreversezipWithizipWithzipWithM izipWithM runContVecvectorheadindexelement elementTyfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyMakemkN<|mk0foldfoldMapeqord sequenceAtraverseconvert fromFoldablemapGimapGmapMGimapMGzipWithG zipWithMG izipWithG izipWithMGIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIfreezethaw inspectVec constructVecTuple5Tuple4Tuple3Tuple2EmptyOnlyVecListConsNil VectorMono VectorElmDimMonoVec5Vec4Vec3Vec2MVecVecUnboxunsafeToForeignPtrunsafeFromForeignPtr unsafeWith Data.MaybeNothingControl.ApplicativepureGHC.BasefmapelementF $fVector(,)aT_ifoldrT_foldl1T_ifoldlT_lensT_IndexT_headT_izipT_mkListT_mapT_mapMT_basis T_unfoldr T_generate T_replicateT_flist T_sequenceAT_mkN T_shuffleT_funT_apT_pureT_fmap sequenceAFimapMFimapF izipWithFmakeList$fVector(,,,,,,)a$fVector(,,,,,)a$fVector(,,,,)a$fVector(,,,)a $fVector(,,)a$fVectorComplexa$fTraversableContVec$fFoldableContVec$fApplicativeContVec$fFunctorContVec$fVectorNContVecna$fVectorContVeca $fIndexSS $fIndexZS$fArityS$fArityZ $fMonadFun$fApplicativeFun $fFunctorFun Data.FoldableData.Traversable TraversableGounGomakerunIndex $fMakeZaGo$fMakenaContVec $fMakena'(->)T_newT_idxstepT_ListFlip$fVectorEmptya$fTraversableEmpty$fFoldableEmpty$fFunctorEmpty $fVectorOnlya$fTraversableOnly$fFoldableOnly $fFunctorOnly$fTraversableVecList$fFoldableVecList$fApplicativeVecList$fFunctorVecList $fOrdVecList $fEqVecList $fShowVecList$fVectorNVecListna$fVectorVecListaMonogetMono $fVectorMonoa uninitialised$fTraversableVec $fFoldableVec$fApplicativeVec $fFunctorVec$fOrdVec$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