*      !"#$%&'()*+,-./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 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       None20Vector 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. $@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. /Map over vector. Synonym for  0=Apply function to every element of the vector and its index. 1Monadic map over vector. 2EApply monadic function to every element of the vector and its index. 3O(1) Tail of vector. 4O(1) Prepend element to vector 5(Zip two vector together using function. 6AZip two vector together using function which takes element index  as well. 70Zip two vector together using monadic function. 8CZip two vector together using monadic function which takes element  index as well.. 95Run continuation vector using non-monadic finalizer. :1Run continuation vector using monadic finalizer. ;Run continuation vector. <$Convert continuation to the vector. =$Convert continuation to the vector. >3Finalizer function for getting head of the vector. ?O(n) Get value at specified index. @$Left fold over continuation vector. A$Left fold over continuation vector. B,Monadic left fold over continuation vector. C,Monadic left fold over continuation vector. D Left fold. E$Right fold over continuation vector F$Right fold over continuation vector G Sum all elements in the vector. HMinimal element of vector. IMaximal element of vector. J%Conjunction of elements of a vector. K)Disjunction of all elements of a vector. L=Determines whether all elements of vector satisfy predicate. M?Determines whether any of element of vector satisfy predicate. a  &Function to extract result from monad  !"#$%&'()*+,-./012  345678 9finalizer function vector :finalizer function vector ;<=>?@ABCDEFGHIJKLM> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM>!"#$%&'()*+,-./01234 56789:;>?<=@DEAFBCGHIJKLMP   !"#$%&'()*+,-./012  345678 9:;<=>?@ABCDEFGHIJKLMNoneN!Type class for immutable vectors O>Convert vector to immutable state. Mutable vector must not be  modified afterwards. P?Convert immutable vector to mutable. Immutable vector must not  be used afterwards. QGet element at specified index RType class for mutable vectors SChecks whether vectors' buffers overlaps T;Copy vector. The two vectors may not overlap. Since vectors' E length is encoded in the type there is no need in runtime checks. U7Copy vector. The two vectors may overlap. Since vectors' length > is encoded in the type there is no need in runtime checks. VAllocate new vector W*Read value at index without bound checks. X+Write value at index without bound checks. YDimension for mutable vector Z+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 a,Safely convert mutable vector to immutable. b,Safely convert immutable vector to mutable. cGeneric inspect dGeneric construct NOPQRSTTarget Source UTarget Source VWXYZ[\]^_`abcdNOPQRSTUVWXYZ[\]^_`abcdZYRSTUVWX[]^\NOPQ`_abdcNOPQRSTUVWXYZ[\]^_`abcd None-e;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 g and vector 4 elements could be added from left to right using h operator. 1 Finally it could be converted to vector using f 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.0f,Convert fully applied constructor to vector gSeed constructor h Apply another element to vector nReplicate 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"]o4Execute 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 [(),()]p;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]qUnfold vector. r0Generate 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]s8Generate vector from monadic function which maps element's index  to its value. tFirst element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Inthead x1uTail of vector.  Examples: import Data.Complextail (1,2,3) :: Complex Double 2.0 :+ 3.0vRetrieve vector'.s element at index. Generic implementation is  O(n)/ but more efficient one is used when possible. wLeft fold over vector xRight fold over vector yLeft fold over vector 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` 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. 5e!fgh"ijklmnopqrstuv#wxyz{|}~5e!fgh"ijklmnopqrstuv#wxyz{|}~4e!fgh"ijklmnopqrstuv#wxyz{|}~None<Vector based on the lists. Not very useful by itself but is ! necessary for implementation. $%&'()*+,-./G efghijklmnopqrstuvwxyz{|}~G ijklmefghnorsqptuvwxy{z|}~ $%&'()*+,-./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. 0,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. 50123< < /0123 None)Mutable unboxed vector with fixed length 3Vector with fixed length which can hold any value. 456789:;<=>?@456789:;<=>?@None)Mutable unboxed vector with fixed length !Unboxed vector with fixed length ABCDEFGH ABCDEFGH NoneCIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CIJKLMNOPQRSTUVWXYZ[\]^_`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[\]^_`abcdefghijklmMnopq r s t u 8 9 : ; < 2 3 7 6 4 5 L A N S R T O P Q U W V X Y Z [ v = w x ? y > @ z { | C E D F } ~ 1)*+-89:;<237645LA NSRTOPQUWVXYZ[v=?y>@zCEDF}~1               {  | r                   fixed-vector-0.4.0.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.TypesPrimIdrunIDArityaccumaccumMapplyapplyMarityFunFnN6N5N4N3N2N1SZContVecContVecTVectorNVector constructinspect basicIndexDimlength changeMonadcvecemptyfromList replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mapimapmapMimapMtailconszipWithizipWithzipWithM izipWithM runContVecT runContVecM runContVecvectorvectorMheadindexfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIfreezethaw inspectVec constructVecNewveccon|>eqsequence sequence_mapM_imapM_ sequenceAtraverseconverttoListVecListConsNil VectorMono VectorElmDimMonoVec5Vec4Vec3Vec2MVecVecUnboxunsafeToForeignPtrunsafeFromForeignPtr unsafeWith $fMonadIdT_fmap$fArityS$fArityZ $fFunctorFunControl.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$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