tS      !"#$%&'()*+,-./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       None2<Vector based on the lists. Not very useful by itself but is ! necessary for implementation. 0Vector 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. *Type class for vectors with fixed length. (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 "?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  /=Apply function to every element of the vector and its index. 0Monadic map over vector. 1EApply monadic function to every element of the vector and its index. 2O(1) Tail of vector. 3O(1) Prepend element to vector 4(Zip two vector together using function. 5AZip two vector together using function which takes element index  as well. 60Zip two vector together using monadic function. 7CZip two vector together using monadic function which takes element  index as well.. 85Run continuation vector using non-monadic finalizer. 91Run 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. @$Left fold over continuation vector. A,Monadic left fold over continuation vector. B,Monadic left fold over continuation vector. C Left fold. D$Right fold over continuation vector E$Right fold over continuation vector F Sum all elements in the vector. GMinimal element of vector. HMaximal element of vector. I%Conjunction of elements of a vector. J)Disjunction of all elements of a vector. K=Determines whether all elements of vector satisfy predicate. L?Determines whether any of element of vector satisfy predicate. e &Function to extract result from monad !"#$%&'()*+,-./012345678finalizer function vector 9finalizer function vector :;<=>?@ABCDEFGHIJKL= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL=!"#$%&'()*+,-./0123 456789:=>;<?CD@EABFGHIJKLR !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNoneM!Type class for immutable vectors N>Convert vector to immutable state. Mutable vector must not be  modified afterwards. O?Convert immutable vector to mutable. Immutable vector must not  be used afterwards. PGet element at specified index QType class for mutable vectors RChecks whether vectors' buffers overlaps S;Copy vector. The two vectors may not overlap. Since vectors' E length is encoded in the type there is no need in runtime checks. T7Copy vector. The two vectors may overlap. Since vectors' length > is encoded in the type there is no need in runtime checks. UAllocate new vector V*Read value at index without bound checks. W+Write value at index without bound checks. XDimension for mutable vector Y+Mutable counterpart of fixed-length vector ZLength of mutable vector [ Clone vector \'Read value at index with bound checks. ](Write value at index with bound checks. ^Length of immutable vector `,Safely convert mutable vector to immutable. a,Safely convert immutable vector to mutable. bGeneric inspect cGeneric construct MNOPQRSTarget Source TTarget Source UVWXYZ[\]^_`abcMNOPQRSTUVWXYZ[\]^_`abcYXQRSTUVWZ\][MNOP_^`acbMNOPQRSTUVWXYZ[\]^_`abc None+d;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 f and vector 4 elements could be added from left to right using g operator. 1 Finally it could be converted to vector using e 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.0e,Convert fully applied constructor to vector fSeed constructor g Apply another element to vector mReplicate 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"]n4Execute 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 [(),()]o;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]pUnfold vector. q0Generate 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]r8Generate vector from monadic function which maps element's index  to its value. sFirst element of vector.  Examples: %import Data.Vector.Fixed.Boxed (Vec3)let x = mk3 1 2 3 :: Vec3 Inthead x1tTail of vector.  Examples: import Data.Complextail (1,2,3) :: Complex Double 2.0 :+ 3.0uRetrieve vector'.s element at index. Generic implementation is  O(n)/ but more efficient one is used when possible. vLeft fold over vector wLeft fold over vector xLeft fold over vector yLeft fold over vector z?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. (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. 3defghijklmnopqrstuvwxyz{|}~3defghijklmnopqrstuvwxyz{|}~2defghijklmnopqrstuvwxyz{|}~NoneC defghijklmnopqrstuvwxyz{|}~C hijkldefgmnqrpostuvwxzy{|}~None)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   NoneA      !"#$%&'()*+,-./0123A      !"#$%&'()*+,-./0123None0Storable-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. 456789:;< 456789:;<=  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklLmnop q r s t 7 8 9 : ; 1 2 6 5 3 4 K @ M R Q S N O P T V U W X Y Z u < v w > x = ? y B D C E z { 0|}~|}~  | } ~ |}~~ $& q ~~ fixed-vector-0.3.0.1Data.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.BoxedData.Vector.Fixed.Unboxed!Data.Vector.Fixed.InternalbaseForeign.StorableStorableprimitive-0.5.0.1Data.Primitive.TypesPrimIdrunIDArityaccumaccumMapplyapplyMarityFunFnN6N5N4N3N2N1SZVecListContVecContVecTVectorNVector constructinspect basicIndexDimlength changeMonadcvecfromList replicate replicateMgenerate generateMunfoldrbasismk1mk2mk3mk4mk5mapimapmapMimapMtailconszipWithizipWithzipWithM izipWithM runContVecT runContVecM runContVecvectorvectorMheadindexfoldlifoldlfoldMifoldMfoldl1foldrifoldrsumminimummaximumandorallanyIVector unsafeFreeze unsafeThaw unsafeIndexMVectoroverlapscopymovenew unsafeRead unsafeWriteDimMMutablelengthMclonereadwritelengthIfreezethaw inspectVec constructVecNewveccon|>eqsequence sequence_mapM_imapM_converttoListVec3Vec2MVecVecUnboxunsafeToForeignPtrunsafeFromForeignPtr unsafeWith $fMonadIdT_fmap$fArityS$fArityZ $fFunctorFunControl.ApplicativepureGHC.BasefmapT_listFlipT_ifoldrT_foldl1T_ifoldlT_IndexT_headT_izipT_mapT_basis T_unfoldr T_generate T_replicateT_flist convertContimapFimapFM izipWithF izipWithFM$fVector(,,,,,,)a$fVector(,,,,,)a$fVector(,,,,)a$fVector(,,,)a $fVector(,,)a $fVector(,)a$fVectorComplexa$fVectorNVecListna$fVectorVecLista$fApplicativeContVecT$fFunctorContVecTT_newT_idxstepf2nrunIndex uninitialised$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