2q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                       None%&,-09:;<=CDOQRT`aVector 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.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.Uncurry n# first parameters of n-ary functionWorker function for t&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-)Apply last parameter to function. Unlike apFun6 we need to traverse all parameters but last hence  constraint..Recursive step for the function/8Move function parameter to the result of N-ary function.09Length of vector. Function doesn't evaluate its argument.11Convert regular vector to continuation based one.2Create empty vector.3hConvert list to continuation-based vector. Will throw error if list is shorter than resulting vector.4Same as 3? bu throws error is list doesn't have same length as vector.5=Convert list to continuation-based vector. Will fail with # if list doesn't have right length.6Convert vector to the list7@Execute monadic action for every element of vector. Synonym for .83Execute monadic action for every element of vector.9FGenerate 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.BMap over vector. Synonym for C<Apply function to every element of the vector and its index.DMonadic map over vector.EDApply monadic function to every element of the vector and its index.FAApply monadic action to each element of vector and ignore result.GRApply monadic action to each element of vector and its index and ignore result.HLeft scan over vectorILeft scan over vectorJ7Evaluate every action in the vector from left to right.KIEvaluate every action in the vector from left to right and ignore result.LThe dual of sequenceANThe dual of sequencePO(1) Tail of vector.QO(1) Prepend element to vectorR0Prepend single element vector to another vector.SO(1) Append element to vectorTConcatenate vectorU'Reverse order of elements in the vectorV'Zip two vector together using function.WZip three vectors togetherXLZip two vector together using function which takes element index as well.YZip three vectors togetherZ/Zip two vector together using monadic function.\UZip two vector together using monadic function which takes element index as well..^&Run continuation vector. It's same as   but with arguments flipped._#Convert continuation to the vector.`2Finalizer function for getting head of the vector.aO(n) Get value at specified index.b5Twan van Laarhoven lens for continuation based vectorcOTwan van Laarhoven's lens for element of vector with statically known index.5Helper for implementation of Twan van Laarhoven lens.d#Left fold over continuation vector.e#Left fold over continuation vector.f+Monadic left fold over continuation vector.g+Monadic left fold over continuation vector.h Left fold.i#Right fold over continuation vectorj#Right fold over continuation vectorkSum all elements in the vector.lMinimal element of vector.mMaximal element of vector.n$Conjunction of elements of a vector.o(Disjunction of all elements of a vector.p<Determines whether all elements of vector satisfy predicate.q>Determines whether any of element of vector satisfy predicate.rThe ry function takes a predicate and a vector and returns the leftmost element of the vector matching the predicate, or  if there is no such element.sGeneric  " which could work with any vector.tGeneric  x which could work with any vector. Since vector can only have one constructor argument for constructor is ignored.{oNote 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.       !"#$%&Get value to apply to function Initial valueN-ary function'Get value to apply to function Initial value()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~s  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsts$%#"! &'()*+,-/. 013456789:;<2QRST=>?@ABCDEFGHIJKLMNOPUVWXYZ[\]^`abc_dhiejfgklmnopqrst        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneDRMap 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 9:;<=DOQRTD,Type class for variadic vector constructors.JVariadic vector constructor. Resulting vector should be converted from  using _ function. For example:,vector $ mkN 'a' 'b' 'c' :: (Char,Char,Char) ('a','b','c')(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  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 % data type. Will return NothingD if data type different number of elements that resulting vector.W&'()*+,-T&'()*T&'()*+,-1None :<=DORT 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../012./012None %&09;<=DRT Empty tuple.Single-element tuple.\Vector based on the lists. Not very useful by itself but is necessary for implementation.'3456     q  !"$%02_q %$"!  02_!3456     None /09;<=DRT'(Mutable unboxed vector with fixed length(2Vector with fixed length which can hold any value."#$%&'7(89:;)*+,-./01234567"#$%&'((&%$#"'"#$%&'7(89:;)*+,-./01234567None 9:;<=DR8Counterpart of Vector$ type class for monomorphic vectors.9Type of vector elements.:Construct vector;Inspect vector<2Optional 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 vector989:;<=<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmA !"$%89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklA=%$"! 89:;<>?@ABCDEHIGFJKLM_`abcdeNOPRQSTUVWXYZ[\]^fghijkl389:;<=<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmNone /09;<=DRTs(Mutable unboxed vector with fixed lengtht Unboxed vector with fixed lengthnopqrs?t@ABuvwxyz{|}~nopqrsttrqponsnopqrs?t@ABuvwxyz{|}~None /09;<=DRT/Storable-based mutable vector with fixed length'Storable-based vector with fixed lengthAGet underlying pointer. Data may not be modified through pointer.&Construct vector from foreign pointer.CDEFG  CDEFG None/09:;<=DRTHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~olmnopHqIrJsKtLuMvNwOxPyQzR{S|T}U~VWXYZ[\]^_`abcdefghijk !"#$%&'(()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NOPQRHIMLJKqabdef rstuzy{vwx|~}S[\UWTVXYZ]^_`ghklijmnGDEFr ANOPQRHIMLJKqaf uzy{vwx|~}SUWTVXgkimGD                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D     EFEGEHIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbcdefghijkllmmnmopqrlsttuvwxyz{{||}~~                                                                            +fixed-vector-0.9.0.0-JpNbsqJamjnJG6AFRd5GmxData.Vector.Fixed.StorableData.Vector.Fixed.PrimitiveData.Vector.Fixed.ContData.Vector.Fixed.GenericData.Vector.FixedData.Vector.Fixed.MutableData.Vector.Fixed.BoxedData.Vector.Fixed.MonomorphicData.Vector.Fixed.Unboxed! Data.DatagfoldlgunfoldlData.Vector.Fixed.InternalbaseForeign.StorableStorable'primitive-0.6.1.0-Ip44DqhfCp21tTUYbecwaData.Primitive.TypesPrimContVecIndexgetFputFlensFVectorNVector constructinspect basicIndexDimArityaccumapplyFun applyFunMarityreverseF uncurryManygunfoldFFununFunFnToPeanoToNatNatIsoN6N5N4N3N2N1AddSZapplyapplyMconstFun curryFirst uncurryFirst curryLast curryManyapLastwithFun shuffleFunlengthcvecemptyfromList fromList' fromListMtoList replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mapimapmapMimapMmapM_imapM_scanlscanl1sequence sequence_ distributecollect distributeMcollectMtailconsconsVsnocconcatreversezipWithzipWith3izipWith izipWith3zipWithM zipWithM_ izipWithM izipWithM_ runContVecvectorheadindexelement elementTyfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyfindgunfold$fVectorProxya$fVector(,,,,,,)a$fVector(,,,,,)a$fVector(,,,,)a$fVector(,,,)a $fVector(,,)a $fVector(,)a$fVectorComplexa$fTraversableContVec$fFoldableContVec$fApplicativeContVec$fFunctorContVec$fVectorNContVecna$fVectorContVeca $fIndexSS $fIndexZS$fArityS$fArityZ $fMonadFun$fApplicativeFun $fFunctorFun $fNatIsoSn $fNatIsoZ0mapGimapGmapMGimapMGzipWithG zipWithMG izipWithG izipWithMGMakemkN<|mk0setfoldfoldMapeqord sequenceAtraversedefaultAlignemnt defaultSizeOf defaultPeek defaultPokeconvert fromFoldableIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIfreezethaw inspectVec constructVecTuple5Tuple4Tuple3Tuple2EmptyOnlyVecListNilCons$fVectorEmptya $fNFDataEmpty$fTraversableEmpty$fFoldableEmpty$fFunctorEmpty$fStorableOnly $fVectorOnlya $fNFDataOnly $fMonoidOnly$fTraversableOnly$fFoldableOnly $fFunctorOnly$fStorableVecList$fMonoidVecList$fTraversableVecList$fFoldableVecList$fApplicativeVecList$fFunctorVecList $fOrdVecList $fEqVecList $fShowVecList$fVectorNVecListna$fVectorVecLista$fNFDataVecList $fShowOnly$fEqOnly $fOrdOnly $fDataOnly $fDataEmptyVec5Vec4Vec3Vec2Vec1MVecVec$fTraversableVec $fFoldableVec$fApplicativeVec $fFunctorVec $fMonoidVec$fOrdVec$fEqVec$fVectorNVecna $fVectorVeca $fIVectorVeca$fMVectorMVeca $fNFDataVec $fShowVec $fStorableVec $fDataVec VectorMono VectorElmDimMono $fVectorMonoaunsafeToForeignPtrunsafeFromForeignPtr unsafeWithUnbox$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()GHC.BaseNothingpurefmapelementFT_gfoldlT_ifoldrT_foldl1T_ifoldlT_lensT_IndexT_headT_izipT_mkList T_distributeT_scanl1T_scanlT_mapT_mapM T_unfoldrT_flist T_sequenceAT_mkN T_shuffleT_curryT_fun T_CounterT_Flip T_gunfoldT_ap apGunfold sequenceAFimapMFimapFscanlFscanl1F izipWithFmakeListgfoldlF Data.FoldableData.Traversable Traversable alignmentsizeOfpeekpokeFoldableGounGomakerunIndex $fMakeZaGo$fMakenaContVec $fMakena'(->)T_newT_idxstepT_ListFlipty_Veccon_Vec uninitialisedMonogetMono mallocVectorgetPtrV_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 D:R:Vecn(,,)0D:R:MVecns(,,)0 D:R:Vecn(,)0D:R:MVecns(,)0D:R:VecnComplex0D:R:MVecnsComplex0D:R:VecnDouble0D:R:MVecnsDouble0D:R:VecnFloat0D:R:MVecnsFloat0 D:R:VecnChar0D:R:MVecnsChar0D:R:VecnWord640D:R:MVecnsWord640D:R:VecnWord320D:R:MVecnsWord320D:R:VecnWord160D:R:MVecnsWord160D:R:VecnWord80D:R:MVecnsWord80 D:R:VecnWord0D:R:MVecnsWord0D:R:VecnInt640D:R:MVecnsInt640D:R:VecnInt320D:R:MVecnsInt320D:R:VecnInt160D:R:MVecnsInt160 D:R:VecnInt80D:R:MVecnsInt80 D:R:VecnInt0D:R:MVecnsInt0 D:R:VecnBool0D:R:MVecnsBool0 D:R:Vecn()0 D:R:MVecns()0