h$e[^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None'(-./03>?( fixed-vectorSame as - but its length is expressed as Peano number. fixed-vectorVector represented as continuation. Alternative wording: it's Church encoded N-element vector. fixed-vector;Vector parametrized by length. In ideal world it should be: forall n. (Arity n, Vector (v n) a, Dim (v n) ~ n) => VectorN v a7Alas polymorphic constraints aren't allowed in haskell. fixed-vectorType 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 = v8For example instance for 2D vectors could be written as: data V2 a = V2 a a type instance V2 = 2 instance Vector V2 a where construct = Fun V2 inspect (V2 a b) (Fun f) = f a b fixed-vector'N-ary function for creation of vectors.  fixed-vectorDeconstruction of vector.  fixed-vectorOptional more efficient implementation of indexing. Shouldn't be used directly, use   instead.  fixed-vector/Size of vector expressed as type-level natural.  fixed-vectorType class for handling n-ary functions.  fixed-vectorLeft fold over n elements exposed as n-ary function. These elements are supplied as arguments to the function. fixed-vector%Apply all parameters to the function. fixed-vectorApply 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 ~ ContVec n a fixed-vectorReverse order of parameters. It's implemented directly in type class since expressing it in terms of accum> will require putting ArityPeano constraint on step funcion fixed-vectorWorker function for m fixed-vectorType class for type level number for which we can defined operations over N-ary functions. fixed-vector&Newtype wrapper which is used to make ( injective. It's also a reader monad. fixed-vector!Type family for n-ary functions. n$ is number of parameters of type a and b is result type. fixed-vector-Type family for sum of unary natural numbers. fixed-vector2Convert type level natural to Peano representation fixed-vectorPeano numbers. Since type level naturals don't support induction we have to convert type nats to Peano representation first and work with it, fixed-vector%Apply all parameters to the function. fixed-vector?Apply all parameters to the function using applicative actions. fixed-vectorArity of function. fixed-vector%Prepend ignored parameter to function  fixed-vector'Curry first parameter of n-ary function! fixed-vector)Uncurry first parameter of n-ary function" fixed-vector&Curry last parameter of n-ary function# fixed-vectorCurry n# first parameters of n-ary function$ fixed-vector)Apply last parameter to function. Unlike apFun6 we need to traverse all parameters but last hence  constraint.% fixed-vectorRecursive step for the function& fixed-vector8Move function parameter to the result of N-ary function.' fixed-vector9Length of vector. Function doesn't evaluate its argument.( fixed-vectorCons values to the  CVecPeano.* fixed-vector1Convert regular vector to continuation based one.+ fixed-vectorCreate empty vector., fixed-vectorConvert list to continuation-based vector. Will throw error if list is shorter than resulting vector.- fixed-vectorSame as ,? bu throws error is list doesn't have same length as vector.. fixed-vector=Convert list to continuation-based vector. Will fail with # if list doesn't have right length./ fixed-vectorConvert vector to the list0 fixed-vectorExecute monadic action for every element of vector. Synonym for .1 fixed-vector3Execute monadic action for every element of vector.2 fixed-vectorGenerate vector from function which maps element's index to its value.3 fixed-vectorGenerate vector from monadic function which maps element's index to its value.4 fixed-vectorUnfold vector.5 fixed-vectorUnit vector along Nth axis.> fixed-vectorMap over vector. Synonym for ? fixed-vectorDetermines whether any of element of vector satisfy predicate.k fixed-vectorThe k 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.l fixed-vectorGeneric  " which could work with any vector.m fixed-vectorGeneric   which could work with any vector. Since vector can only have one constructor argument for constructor is ignored.| fixed-vectorNote 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.  fixed-vector Fold function fixed-vectorExtract result of fold fixed-vector Initial value fixed-vectorReduction function fixed-vectorGet value to apply to function fixed-vector Initial value fixed-vectorGet value to apply to function fixed-vector Initial value fixed-vectorGet value to apply to function fixed-vector Initial value fixed-vectorN-ary function fixed-vectorGet value to apply to function fixed-vector Initial value  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm  !"#$&%  '()X*,-./012345+KLMN6789:;<=>?@ABCDEFGHIJOPQRSTUVWZ[\Y]ab^c_`defghijklmNone+( fixed-vectorMap over vector fixed-vector?F fixed-vectorN-ary constructor. Despite scary signature it's just N-ary function with additional type parameter which is used to fix type of vector being constructed. It could be used as: ,v = mkN (Proxy :: Proxy (Int,Int,Int)) 1 2 3 or using TypeApplications syntax: %v = mkN (Proxy @ (Int,Int,Int)) 1 2 3or if type of v is fixed elsewhere v = mkN [v] 1 2 3 fixed-vectorReplicate 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"] fixed-vector3Execute 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 [(),()] fixed-vectorUnit 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] fixed-vectorUnfold vector. fixed-vectorGenerate 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] fixed-vectorGenerate vector from monadic function which maps element's index to its value. fixed-vectorFirst element of vector. Examples:%import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Inthead x1 fixed-vectorTail of vector. Examples:import Data.Complextail (1,2,3) :: Complex Double 2.0 :+ 3.0 fixed-vectorCons element to the vector fixed-vectorAppend element to the vector fixed-vector'Reverse order of elements in the vector fixed-vectorRetrieve vector's element at index. Generic implementation is O(n). but more efficient one is used when possible. fixed-vector1Get element from vector at statically known index fixed-vectorSet n'th element in the vector fixed-vector/Twan van Laarhoven's lens for element of vector fixed-vectorTwan van Laarhoven's lens for element of vector with statically known index. fixed-vectorLeft fold over vector fixed-vectorRight fold over vector fixed-vectorLeft fold over vector fixed-vectorCombine the elements of a structure using a monoid. Similar to  fixed-vectorMap each element of the structure to a monoid, and combine the results. Similar to  fixed-vectorRight fold over vector fixed-vectorLeft fold over vector. Function is applied to each element and its index. fixed-vectorMonadic fold over vector. fixed-vectorLeft monadic fold over vector. Function is applied to each element and its index. fixed-vectorSum all elements in the vector. fixed-vectorMaximal element of vector. Examples:%import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Int maximum x3 fixed-vectorMinimal element of vector. Examples:%import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Int minimum x1 fixed-vector(Conjunction of all elements of a vector. fixed-vector(Disjunction of all elements of a vector. fixed-vectorDetermines whether any of element of vector satisfy predicate. fixed-vectorThe  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. fixed-vectorTest 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 fixed-vector&Lexicographic ordering of two vectors. fixed-vectorMap over vector fixed-vector7Evaluate every action in the vector from left to right. fixed-vectorEvaluate every action in the vector from left to right and ignore result fixed-vectorEffectful map over vector. fixed-vectorApply monadic action to each element of vector and ignore result. fixed-vector?H fixed-vector Empty tuple. fixed-vectorSingle-element tuple. fixed-vectorStandard GADT-based vector with statically known length parametrized by Peano numbers. fixed-vectorType-based vector with statically known length parametrized by GHC's type naturals '*+Y  '+Y*None ./?W fixed-vector Type class for immutable vectors fixed-vectorConvert vector to immutable state. Mutable vector must not be modified afterwards. fixed-vectorO(1) Unsafely convert immutable vector to mutable without copying. Note that this is a very dangerous function and generally it's only safe to read from the resulting vector. In this case, the immutable vector could be used safely as well.Problems with mutation happen because GHC has a lot of freedom to introduce sharing. As a result mutable vectors produced by  unsafeThaw? may or may not share the same underlying buffer. For example: foo = do let vec = F.generate 10 id mvec <- M.unsafeThaw vec do_something mvecHere GHC could lift vec/ outside of foo which means that all calls to  do_something will use same buffer with possibly disastrous results. Whether such aliasing happens or not depends on the program in question, optimization levels, and GHC flags.4All in all, attempts to modify a vector produced by  unsafeThaw fall out of domain of software engineering and into realm of black magic, dark rituals, and unspeakable horrors. The only advice that could be given is: "Don't attempt to mutate a vector produced by  unsafeThaw unless you know how to prevent GHC from aliasing buffers accidentally. We don't." fixed-vector4Get element at specified index without bounds check. fixed-vectorType class for mutable vectors. fixed-vectorCopy vector. The two vectors may not overlap. Since vectors' length is encoded in the type there is no need in runtime checks. fixed-vectorCopy vector. The two vectors may overlap. Since vectors' length is encoded in the type there is no need in runtime checks. fixed-vectorAllocate new vector fixed-vector)Read value at index without bound checks. fixed-vector*Write value at index without bound checks. fixed-vectorDimension for mutable vector. fixed-vector+Mutable counterpart of fixed-length vector. fixed-vectorLength of mutable vector. Function doesn't evaluate its argument. fixed-vectorCreate copy of vector. Examples:import Control.Monad.ST (runST)import Data.Vector.Fixed (mk3)%import Data.Vector.Fixed.Boxed (Vec3)/import qualified Data.Vector.Fixed.Mutable as Mlet x = runST (do { v <- M.replicate 100; v' <- clone v; M.write v' 0 2; M.unsafeFreeze v' }) :: Vec3 IntxfromList [2,100,100] fixed-vector&Read value at index with bound checks. fixed-vector'Write value at index with bound checks. fixed-vector7Create new vector with all elements set to given value. fixed-vectorCreate new vector with all elements are generated by provided monadic action. fixed-vector:Create new vector with using function from index to value. fixed-vectorCreate new vector with using monadic function from index to value. fixed-vector(Loop which calls function for each index fixed-vector+Safely convert mutable vector to immutable. fixed-vector+Safely convert immutable vector to mutable. fixed-vector7Generic inspect implementation for array-based vectors. fixed-vector9Generic construct implementation for array-based vectors. fixed-vectorTarget fixed-vectorSource fixed-vectorTarget fixed-vectorSourceNone/23>?X fixed-vector(Mutable unboxed vector with fixed length fixed-vector2Vector with fixed length which can hold any value.None/23>?Yz fixed-vector(Mutable unboxed vector with fixed length fixed-vector Unboxed vector with fixed lengthNone/23>?Z fixed-vector/Storable-based mutable vector with fixed length fixed-vector'Storable-based vector with fixed length fixed-vectorGet underlying pointer. Data may not be modified through pointer. fixed-vector&Construct vector from foreign pointer.  None./23>?[: !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz {|}~  E F G H I J K L  ? @ D C A B i Y Z \ ] ^ j  k  l q p   r m n o s u t v w x y z   M U V O Q N P R S T   W X _ ` c d a b e f       > ; < = ?@ABj  +fixed-vector-1.2.1.0-ERCj9lBqiquGYpJXoyB6ROData.Vector.Fixed.StorableData.Vector.Fixed.PrimitiveData.Vector.Fixed.ContData.Vector.Fixed.GenericData.Vector.FixedData.Vector.Fixed.MutableData.Vector.Fixed.BoxedData.Vector.Fixed.Unboxed! Data.DatagfoldlgunfoldlData.Vector.Fixed.InternalbaseForeign.StorableStorable(primitive-0.7.3.0-GaTKHWlkxwrBb07qgsmPECData.Primitive.TypesPrim CVecPeanoContVecVectorNVector constructinspect basicIndexDim ArityPeanoaccumapplyFun applyFunMreverseFgunfoldFArityFununFunFnAddPeanoPeanoNumZSapplyapplyMarityconstFun curryFirst uncurryFirst curryLast curryManyapLastwithFun shuffleFunlength consPeano toContVeccvecemptyfromList fromList' fromListMtoList replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mk6mk7mk8mapimapmapMimapMmapM_imapM_scanlscanl1sequence sequence_ distributecollecttailconsconsVsnocconcatreversezipWithzipWith3izipWith izipWith3zipWithM zipWithM_ izipWithM izipWithM_ runContVecvectorheadindexelementfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyfindgunfold $fArityPeanoS $fArityPeanoZ $fMonadFun$fApplicativeFun $fFunctorFun$fFoldableContVec$fApplicativeContVec$fFunctorContVec$fVectorProxya$fVector(,,,,,,)a$fVector(,,,,,)a$fVector(,,,,)a$fVector(,,,)a $fVector(,,)a $fVector(,)a$fVectorIdentitya$fVectorComplexa$fTraversableContVec$fVectorNContVecna$fVectorContVecamapGimapGmapMGimapMGzipWithG zipWithMG izipWithG izipWithMGmk0mkNset elementTyfoldfoldMapeqord sequenceAtraversedefaultAlignemnt defaultSizeOf defaultPeek defaultPoke defaultRnfconvert fromFoldableTuple5Tuple4Tuple3Tuple2EmptyOnlyVecPeanoNilConsVecListV4V3V2$fStorableVecList$fSemigroupVecList$fMonoidVecList$fTraversableVecList$fFoldableVecList$fApplicativeVecList$fFunctorVecList $fOrdVecList $fEqVecList $fShowVecList$fVectorNVecListna$fNFDataVecList$fVectorVecLista$fStorableOnly $fVectorOnlya $fNFDataOnly$fSemigroupOnly $fMonoidOnly$fVectorEmptya $fNFDataEmpty $fShowEmpty $fEqEmpty $fOrdEmpty $fDataEmpty$fFunctorEmpty$fFoldableEmpty$fTraversableEmpty $fShowOnly$fEqOnly $fOrdOnly $fDataOnly $fFunctorOnly$fFoldableOnly$fTraversableOnlyIVector unsafeFreeze unsafeThaw unsafeIndexMVectorcopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwriteforIfreezethaw inspectVec constructVecVec5Vec4Vec3Vec2Vec1MVecVec$fTraversableVec $fFoldableVec$fApplicativeVec $fFunctorVec$fSemigroupVec $fMonoidVec$fOrdVec$fEqVec$fVectorNVecna $fVectorVeca $fNFDataVec $fShowVec $fStorableVec $fDataVec $fIVectorVeca$fMVectorMVecaunsafeToForeignPtrunsafeFromForeignPtr unsafeWithUnbox$fIVectorVecAll$fMVectorMVecAll$fIVectorVecAny$fMVectorMVecAny$fIVectorVec(,,)$fMVectorMVec(,,)$fIVectorVec(,)$fMVectorMVec(,)$fIVectorVecComplex$fMVectorMVecComplex$fIVectorVecDouble$fMVectorMVecDouble$fIVectorVecFloat$fMVectorMVecFloat$fIVectorVecChar$fMVectorMVecChar$fIVectorVecWord64$fMVectorMVecWord64$fIVectorVecWord32$fMVectorMVecWord32$fIVectorVecWord16$fMVectorMVecWord16$fIVectorVecWord8$fMVectorMVecWord8$fIVectorVecWord$fMVectorMVecWord$fIVectorVecInt64$fMVectorMVecInt64$fIVectorVecInt32$fMVectorMVecInt32$fIVectorVecInt16$fMVectorMVecInt16$fIVectorVecInt8$fMVectorMVecInt8$fIVectorVecInt$fMVectorMVecInt$fIVectorVecBool$fMVectorMVecBool$fIVectorVec()$fMVectorMVec() $fUnboxnAll $fUnboxnAny$fIVectorVecProduct$fMVectorMVecProduct$fUnboxnProduct$fIVectorVecSum$fMVectorMVecSum $fUnboxnSum$fIVectorVecDual$fMVectorMVecDual $fUnboxnDual$fIVectorVecDown$fMVectorMVecDown $fUnboxnDown$fIVectorVecIdentity$fMVectorMVecIdentity$fUnboxnIdentity$fIVectorVecConst$fMVectorMVecConst $fUnboxnConst $fUnboxn(,,) $fUnboxn(,)$fUnboxnComplex$fUnboxnDouble $fUnboxnFloat $fUnboxnChar$fUnboxnWord64$fUnboxnWord32$fUnboxnWord16 $fUnboxnWord8 $fUnboxnWord $fUnboxnInt64 $fUnboxnInt32 $fUnboxnInt16 $fUnboxnInt8 $fUnboxnInt $fUnboxnBool $fUnboxn() GHC.MaybeNothingGHC.Basepurefmap Data.FoldableData.Traversable Traversable alignmentsizeOfpeekpokedeepseq-1.4.4.0Control.DeepSeqrnfNFDataFoldable showsPrecGHC.ShowrunIndex