3 G      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234 5 6 7 8 9 : ; <=>?@ABCDEF None!"(+2346<=HJKMbaVector represented as continuation. Alternative wording: it's Church encoded N-element vector.OType class for indexing of vector when index value is known at compile time.;Vector parametrized by length. In ideal world it should be: Aforall n. (Arity n, Vector (v n) a, Dim (v n) ~ n) => VectorN v a7Alas polymorphic constraints aren't allowed in haskell. Type 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. WOptional more efficient implementation of indexing. Shouldn't be used directly, use   instead. /Size of vector expressed as type-level natural.BValue that carry proof that `Fn (Add n k) a b ~ Fn n a (Fn k a b)`Type class for handling n-ary functions.Left fold over na elements exposed as n-ary function. These elements are supplied as arguments to the function.%Apply all parameters to the function.Apply 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 aArity of function.Reverse order of parameters.Worker function for w-Proof that `Fn (n+k) a b ~ Fn n a (Fn k a b)`&Newtype wrapper which is used to make ( injective. It's also a reader monad. Type family for n-ary functions.)Convert Nat number to Peano represenationConvert Peano number to Nat:Isomorphism between two representations of natural numbers%-Type family for sum of unary natural numbers.&Successor of n'Type level zero(%Apply all parameters to the function.);Apply all parameters to the function using monadic actions.*%Prepend ignored parameter to function+'Curry first parameter of n-ary function,)Uncurry first parameter of n-ary function-&Curry last parameter of n-ary function.Curry n# first parameters of n-ary function/Uncurry n# first parameters of n-ary function0)Apply last parameter to function. Unlike apFun6 we need to traverse all parameters but last hence  constraint.1Recursive step for the function28Move function parameter to the result of N-ary function.39Length of vector. Function doesn't evaluate its argument.41Convert regular vector to continuation based one.5Create empty vector.6hConvert list to continuation-based vector. Will throw error if list is shorter than resulting vector.7Same as 6? bu throws error is list doesn't have same length as vector.8=Convert list to continuation-based vector. Will fail with G# if list doesn't have right length.9Convert vector to the list:@Execute monadic action for every element of vector. Synonym for H.;3Execute monadic action for every element of vector.<FGenerate vector from function which maps element's index to its value.=QGenerate vector from monadic function which maps element's index to its value.>Unfold vector.?Unit vector along Nth axis.EMap over vector. Synonym for IF<Apply function to every element of the vector and its index.GMonadic map over vector.HDApply monadic function to every element of the vector and its index.IAApply monadic action to each element of vector and ignore result.JRApply monadic action to each element of vector and its index and ignore result.KLeft scan over vectorLLeft scan over vectorM7Evaluate every action in the vector from left to right.NIEvaluate every action in the vector from left to right and ignore result.OThe dual of sequenceAQThe dual of sequenceSO(1) Tail of vector.TO(1) Prepend element to vectorU0Prepend single element vector to another vector.VO(1) Append element to vectorWConcatenate vectorX'Reverse order of elements in the vectorY'Zip two vector together using function.ZZip three vectors together[LZip two vector together using function which takes element index as well.\Zip three vectors together]/Zip two vector together using monadic function._UZip two vector together using monadic function which takes element index as well..a&Run continuation vector. It's same as   but with arguments flipped.b#Convert continuation to the vector.c2Finalizer function for getting head of the vector.dO(n) Get value at specified index.e5Twan van Laarhoven lens for continuation based vectorfOTwan van Laarhoven's lens for element of vector with statically known index.J5Helper for implementation of Twan van Laarhoven lens.g#Left fold over continuation vector.h#Left fold over continuation vector.i+Monadic left fold over continuation vector.j+Monadic left fold over continuation vector.k Left fold.l#Right fold over continuation vectorm#Right fold over continuation vectornSum all elements in the vector.oMinimal element of vector.pMaximal element of vector.q$Conjunction of elements of a vector.r(Disjunction of all elements of a vector.s<Determines whether all elements of vector satisfy predicate.t>Determines whether any of element of vector satisfy predicate.uThe uy function takes a predicate and a vector and returns the leftmost element of the vector matching the predicate, or G if there is no such element.vGeneric  " which could work with any vector.wGeneric  x which could work with any vector. Since vector can only have one constructor argument for constructor is ignored.KoNote this instance (and other instances for tuples) is 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.LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu vwxyz{|} Fold functionExtract result of fold Initial valueReduction functionGet value to apply to function Initial valueN-ary functionGet value to apply to function Initial value~ !"#$%&'(Get value to apply to function Initial valueN-ary function)Get value to apply to function Initial value*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefJghijklmnopqrstuvwKv  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwv&'%$#"! ()*+,-./021 346789:;<=>?5TUVW@ABCDEFGHIJKLMNOPQRSXYZ[\]^_`acdefbgklhmijnopqrstuvwLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu  vwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefJghijklmnopqrstuvwKNone 2346=HJKMDx,Type class for variadic vector constructors.yJVariadic vector constructor. Resulting vector should be converted from  using b function. For example:,vector $ mkN 'a' 'b' 'c' :: (Char,Char,Char) ('a','b','c')z(Cons value to continuation based vector.Replicate 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"]3Execute 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. 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]Unfold vector.IGenerate 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]QGenerate vector from monadic function which maps element's index to its value.First element of vector. Examples:%import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Inthead x1Tail of vector. Examples:import Data.Complextail (1,2,3) :: Complex Double 2.0 :+ 3.0Cons element to the vectorAppend element to the vector'Reverse order of elements in the vectorARetrieve vector's element at index. Generic implementation is O(n). but more efficient one is used when possible.1Get element from vector at statically known indexSet n'th element in the vector/Twan van Laarhoven's lens for element of vectorOTwan van Laarhoven's lens for element of vector with statically known index.Left fold over vectorRight fold over vectorLeft fold over vectorBCombine the elements of a structure using a monoid. Similar to VMap each element of the structure to a monoid, and combine the results. Similar to Right fold over vectorLLeft fold over vector. Function is applied to each element and its index.Monadic fold over vector.TLeft 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.The y function takes a predicate and a vector and returns the leftmost element of the vector matching the predicate, or G if there is no such element.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 vector7Evaluate every action in the vector from left to right.HEvaluate every action in the vector from left to right and ignore resultMonadic map over vector.AApply monadic action to each element of vector and ignore result.<Apply function to every element of the vector and its index.DApply monadic function to every element of the vector and its index.ZApply monadic function to every element of the vector and its index and discard result.Left scan over vectorLeft scan over vector 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]Zip three vector together/Zip two vector together using monadic function.GZip two vector elementwise using monadic function and discard resultLZip two vector together using function which takes element index as well.Zip three vector togetherUZip two vector together using monadic function which takes element index as well..GZip two vector elementwise using monadic function and discard resultDefault implementation of  for ! type class for fixed vectors.Default implementation of  for  type class for fixed vectorsDefault implementation of  for  type class for fixed vectorDefault implementation of  for  type class for fixed vector&Convert between different vector typesConvert vector to the listVCreate 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 Nothing7 if list has different length from resulting vector.Create vector from Foldable data type. Will return NothingD if data type different number of elements that resulting vector.Wxyz{|}~Txyz{|}~Txyz{|}~zNone=KMap 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./Zip two vector together using monadic function.LZip two vector together using function which takes element index as well.UZip two vector together using monadic function which takes element index as well..None 36=HKM Type class for immutable vectorsUConvert vector to immutable state. Mutable vector must not be modified afterwards.UConvert immutable vector to mutable. Immutable vector must not be used afterwards.4Get element at specified index without bounds check.Type class for mutable vectors.(Checks whether vectors' buffers overlapsCopy vector. The two vectors may not overlap. Since vectors' length is encoded in the type there is no need in runtime checks.}Copy 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.ALength 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.CLength of immutable vector. Function doesn't evaluate its argument.+Safely convert mutable vector to immutable.+Safely convert immutable vector to mutable.7Generic inspect implementation for array-based vectors.9Generic construct implementation for array-based vectors.TargetSourceTargetSourceNone !"+246=KM Empty tuple.Single-element tuple.\Vector based on the lists. Not very useful by itself but is necessary for implementation.*q  !"#$&'35bxyz{|}~q '&$#"!  3{|}~5bzxy$None 2346=KCounterpart of Vector$ type class for monomorphic vectors.Type of vector elements.Construct vectorInspect vector2Optional more efficient implementation of indexing!Dimensions of monomorphic vector.,Wrapper for monomorphic vectors it provides VectorJ instance for monomorphic vectors. Trick is to restrict type parameter a to single possible value.Length of vector:      !"#$%A !"#$&'      !"#$%A'&$#"!       !"#$%4      !"#$%None *+246=KM+(Mutable unboxed vector with fixed length,2Vector with fixed length which can hold any value.&'()*+,&'()*+,,*)('&+&'()*+,None *+246=KM2(Mutable unboxed vector with fixed length3 Unboxed vector with fixed length-./0123     -./0123310/.-2-./0123      None*+2346=KM456789:; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~456789:;;98765:4r456789:;89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] ^!_`ab"c#defg$h%ijkl&m'nopq(r)stuv*w+xyz{,|-}~./01234567None *+246=KMA/Storable-based mutable vector with fixed lengthC'Storable-based vector with fixed lengthDAGet underlying pointer. Data may not be modified through pointer.E&Construct vector from foreign pointer.<=>?@ABCDEF <=>?@ABCDEF C@?>=<EDFAB<=>?@ABCDEF  !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ PQRSTJKONLMscdfgh tuvw|{}xyz~U]^WYVXZ[\_`abijmnklopIFGHtCPQRSTJKONLMsch w|{}xyz~UWYVXZimkoIF              !"#$%%&'()*+,,--.//00123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\]^_`abcdPQcdWXYZ[\]^_`ab e f g h i j k l m n o p q r s t u v w x y z { | } ~           P Q                                                                                             c d W X Y Z [ \ ] ` a bPQdcWXYZ[\]^_`abfixed-vector-0.8.1.0Data.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.DatagfoldlgunfoldlData.Vector.Fixed.InternalbaseForeign.StorableStorable primitive-0.6Data.Primitive.TypesPrimContVecIndexgetFputFlensFVectorNVector constructinspect basicIndexDimWitSumArityaccumapplyFun applyFunMarityreverseFgunfoldFwitSumFununFunFnToPeanoToNatNatIsoN6N5N4N3N2N1AddSZapplyapplyMconstFun curryFirst uncurryFirst curryLast curryMany uncurryManyapLastwithFun shuffleFunlengthcvecemptyfromList fromList' fromListMtoList replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mapimapmapMimapMmapM_imapM_scanlscanl1sequence sequence_ distributecollect distributeMcollectMtailconsconsVsnocconcatreversezipWithzipWith3izipWith izipWith3zipWithM zipWithM_ izipWithM izipWithM_ runContVecvectorheadindexelement elementTyfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyfindgunfoldMakemkN<|mk0setfoldfoldMapeqord sequenceAtraversedefaultAlignemnt defaultSizeOf defaultPeek defaultPokeconvert fromFoldablemapGimapGmapMGimapMGzipWithG zipWithMG izipWithG izipWithMGIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIfreezethaw inspectVec constructVecTuple5Tuple4Tuple3Tuple2EmptyOnlyVecListConsNil VectorMono VectorElmDimMonoVec5Vec4Vec3Vec2Vec1MVecVecUnboxunsafeToForeignPtrunsafeFromForeignPtr unsafeWith Data.MaybeNothingControl.ApplicativepureGHC.BasefmapelementF $fVector(,)aT_gfoldlT_ifoldrT_foldl1T_ifoldlT_lensT_IndexT_headT_izipT_mkList T_distributeT_scanl1T_scanlT_mapT_mapMT_basis T_unfoldr T_generate T_replicateT_flist T_sequenceAT_mkN T_shuffleT_curryT_fun T_gunfoldT_apT_pureT_fmap witSumWorker apGunfold sequenceAFimapMFimapFscanlFscanl1F izipWithFmakeListgfoldlF$fVectorProxyaTFCo:R:DimProxy$fVector(,,,,,,)aTFCo:R:Dim(,,,,,,)$fVector(,,,,,)aTFCo:R:Dim(,,,,,)$fVector(,,,,)aTFCo:R:Dim(,,,,)$fVector(,,,)aTFCo:R:Dim(,,,) $fVector(,,)aTFCo:R:Dim(,,) TFCo:R:Dim(,)$fVectorComplexaTFCo:R:DimComplex$fTraversableContVec$fFoldableContVec$fApplicativeContVec$fFunctorContVec$fVectorNContVecna$fVectorContVecaTFCo:R:DimContVec $fIndexSS $fIndexZS$fArityS$fArityZ $fMonadFun$fApplicativeFun $fFunctorFun TFCo:R:FnSab TFCo:R:FnZab $fNatIsoSn $fNatIsoZ0 TFCo:R:AddSk TFCo:R:AddZn Data.FoldableData.Traversable Traversable alignmentsizeOfpeekpokeGounGomakerunIndex $fMakeZaGo$fMakenaContVec $fMakena'(->)T_newT_idxstepT_ListFlip$fVectorEmptyaTFCo:R:DimEmpty $fNFDataEmpty$fTraversableEmpty$fFoldableEmpty$fFunctorEmpty$fStorableOnly $fVectorOnlyaTFCo:R:DimOnly $fNFDataOnly $fMonoidOnly$fTraversableOnly$fFoldableOnly $fFunctorOnly$fStorableVecList$fMonoidVecList$fTraversableVecList$fFoldableVecList$fApplicativeVecList$fFunctorVecList $fOrdVecList $fEqVecList $fShowVecList$fVectorNVecListna$fVectorVecListaTFCo:R:DimVecList$fNFDataVecListMonogetMono $fVectorMonoaTFCo:R:DimMonoty_Veccon_Vec uninitialised$fTraversableVec $fFoldableVec$fApplicativeVec $fFunctorVec $fMonoidVec$fOrdVec$fEqVec$fVectorNVecna $fVectorVecaTFCo:R:DimMMVec TFCo:R:DimVec $fIVectorVeca$fMVectorMVecaTFCo:R:MutableVec $fNFDataVec $fShowVec $fStorableVec $fDataVecV_3MV_3V_2MV_2 V_Complex MV_ComplexV_Double MV_DoubleV_FloatMV_FloatV_CharMV_CharV_Word64 MV_Word64V_Word32 MV_Word32V_Word16 MV_Word16V_Word8MV_Word8V_WordMV_WordV_Int64MV_Int64V_Int32MV_Int32V_Int16MV_Int16V_Int8MV_Int8V_IntMV_IntV_BoolMV_BoolV_UnitMV_UnitfromBooltoBool$fIVectorVec(,,)$fMVectorMVec(,,) $fUnboxn(,,)TFCo:R:Vecn(,,)TFCo:R:MVecns(,,)$fIVectorVec(,)$fMVectorMVec(,) $fUnboxn(,)TFCo:R:Vecn(,)TFCo:R:MVecns(,)$fIVectorVecComplex$fMVectorMVecComplex$fUnboxnComplexTFCo:R:VecnComplexTFCo:R:MVecnsComplex$fIVectorVecDouble$fMVectorMVecDouble$fUnboxnDoubleTFCo:R:VecnDoubleTFCo:R:MVecnsDouble$fIVectorVecFloat$fMVectorMVecFloat $fUnboxnFloatTFCo:R:VecnFloatTFCo:R:MVecnsFloat$fIVectorVecChar$fMVectorMVecChar $fUnboxnCharTFCo:R:VecnCharTFCo:R:MVecnsChar$fIVectorVecWord64$fMVectorMVecWord64$fUnboxnWord64TFCo:R:VecnWord64TFCo:R:MVecnsWord64$fIVectorVecWord32$fMVectorMVecWord32$fUnboxnWord32TFCo:R:VecnWord32TFCo:R:MVecnsWord32$fIVectorVecWord16$fMVectorMVecWord16$fUnboxnWord16TFCo:R:VecnWord16TFCo:R:MVecnsWord16$fIVectorVecWord8$fMVectorMVecWord8 $fUnboxnWord8TFCo:R:VecnWord8TFCo:R:MVecnsWord8$fIVectorVecWord$fMVectorMVecWord $fUnboxnWordTFCo:R:VecnWordTFCo:R:MVecnsWord$fIVectorVecInt64$fMVectorMVecInt64 $fUnboxnInt64TFCo:R:VecnInt64TFCo:R:MVecnsInt64$fIVectorVecInt32$fMVectorMVecInt32 $fUnboxnInt32TFCo:R:VecnInt32TFCo:R:MVecnsInt32$fIVectorVecInt16$fMVectorMVecInt16 $fUnboxnInt16TFCo:R:VecnInt16TFCo:R:MVecnsInt16$fIVectorVecInt8$fMVectorMVecInt8 $fUnboxnInt8TFCo:R:VecnInt8TFCo:R:MVecnsInt8$fIVectorVecInt$fMVectorMVecInt $fUnboxnIntTFCo:R:VecnIntTFCo:R:MVecnsInt$fIVectorVecBool$fMVectorMVecBool $fUnboxnBoolTFCo:R:VecnBoolTFCo:R:MVecnsBool$fIVectorVec()$fMVectorMVec() $fUnboxn() TFCo:R:Vecn()TFCo:R:MVecns() mallocVectorgetPtr