G=      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Conal Elliott 2009BSD3conal@conal.net experimentalSafe0CDQRProduct of type-level numbersSum of type-level numbers&Type-level representation of successor!Type-level representation of zero    676(c) Conal Elliott 2009-2012BSD3conal@conal.net experimentalSafe%&*9:;<=DOQRT Is n a natural number type?*A number under the given limit, with proof Proof that m < n% Interpret a  as a plain number& Equality test'Sum of naturals(Product of naturals.Peano's induction principle0/Increase the upper limit in an inequality proof7QIndex generation from integer. Can fail dynamically if the integer is too large.+ !"#$%&'()*+,-./0123456789:;<=>8  !"#$%&'()*+,-./01234567" $)*+,-!"#%&'(./01234567% !"#$%&'()*+,-./0123456789:;<=>4(c) Conal Elliott 2009BSD3conal@conal.net experimentalSafe%&09:;<=?CDLOQRTR:Vectors with type-determined length, having empty vector (S) and vector cons ('(:<)').UType-safe un-cons for vectorsVType-safe head for vectorsWType-safe tail for vectorsXEquivalent to monad join for vectorsYConcatenation of vectorsZIndices under n: 3 :< 4 :< ...[IVector of ints from 0 to n-1. Named for APL iota operation (but 0 based).dExtract elementeExtract elementsfExtract elementsgExtract elementshIExtract a vector element, taking a proof that the index is within bounds.mHUpdate a vector element, taking a proof that the index is within bounds.nIReplace a vector element, taking a proof that the index is within bounds.s Variant of hI in which the index size is checked at run-time instead of compile-time.t Variant of nI in which the index size is checked at run-time instead of compile-time.u6Flatten a vector of vectors (a 2D array) into a vectorv4Chunk a vector into a vector of vectors (a 2D array)w5Swizzling. Extract multiple elements simultaneously.xSplit a vectoryjDelete exactly one occurrence of an element from a vector, raising an error if the element isn't present.zHConvert a list into a vector. Error if the list is too short or too long{Zip two vectors into one. Like  '(,)', but the former requires IsNat n.|!Zip three vectors into one. Like liftA3 '(,)', but the former requires IsNat n.} Unzip one vector into two. Like , but the former requires IsNat n.~ Unzip one vector into two. Like , but the former requires IsNat n..Unzip a vector of pairs into a pair of vectors.Unzip a vector of pairs into a pair of vectorsYCross-product of two vectors, in the set-theory sense, not the geometric sense. You can u! the resulting vector of vectors.(Matrix transposition. Specialization of .o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiGet first elementjGet second elementkGet third elementlGet fourth elementmnoSet first elementpSet second elementqSet third elementrSet fourth elementstuvwxyz{|}~|  !"#$%&'()*+,-./01234567?@ABCDEFGHIJKLMNOPQRTSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~DRSTUVWXYZ[QPONMLKJIHGFEDCBA\]^_`abcdefghijklmnopqrstuvwxyz{}|~?@l?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~T5Y1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(type-unary-0.2.21-9lmXDpeeIlx3yDy0otEowzTypeUnary.TyNat TypeUnary.Nat TypeUnary.VecN16N15N14N13N12N11N10N9N8N7N6N5N4N3N2N1N0:-::*::+:SZIsNatnatIndex:<:ZLessSLessPlusZeroNatZeroSucc withIsNatnatSuccnatIsNatpredNnatToZnatEqnatAddnatMulzeroonetwothreefour inductionplusZerosuccLimunIndexsuccIindex0index1index2index3 coerceToIndex$fIsNatS$fIsNatZ $fNumIndex $fShowIndex $fEqIndex $fPlusZeron $fShowNatToVectoVecVec16Vec15Vec14Vec13Vec12Vec11Vec10Vec9Vec8Vec7Vec6Vec5Vec4Vec3Vec2Vec1Vec0VecZVec:<unConsVheadVtailVjoinV<+>indicesiotavec1vec2vec3vec4vec5vec6vec7vec8un1un2un3un4getget0get1get2get3updatesetset0set1set2set3getIsetIflattenVchunkVswizzlesplitdeleteVelemsVzipVzipV3zipWithV zipWithV3unzipVunzipV3cross transpose$fRealFloatVec $fRealFracVec $fFloatingVec$fFractionalVec $fIntegralVec $fRealVec$fNumVec $fEnumVec $fToVec[]na $fToVecVecna $fStorableVec$fInnerSpaceVec$fVectorSpaceVec$fAdditiveGroupVec$fNewtypeVec(,)$fNewtypeVec()$fTraversableVec $fFoldableVec $fMonadVec$fApplicativeVec $fFunctorVec $fMonoidVec $fShowVec$fOrdVec$fEqVeccoerceToIndex'noIndexbaseGHC.BaseliftA2Data.Traversable sequenceAcantcantVpureVinVecSinVecS2applyVpeekVpokeVpeekV'pokeV'indices' flattenV'chunkV'split'elemsV'toVecLresultnoOv