Îõ³h$ôå6      !"#$%&'()*+,-./012345None-/>?ÀÁÂÉÔ×Ù:TypeNatNat n is less than or equal to nat m×. Comes with functions to do type-directed computation for Nat-indexed datatypes.TypeNat4A constrint which includes LTE k m for every k <= m.TypeNatÚProof that a given type is a Nat. With this fact, you can do type-directed computation.TypeNatNatural numbersTypeNatÃThe parameter l is fixed by any call to lteInduction, but due to the StrongLTE m l constraint, we have LTE j l for every j <= m. This allows us to implement the nontrivial case in the LTE p q => LTE p (S q)8 instance, where we need to use this function to get x :: d p and then again to get f x :: d (S p) . So long as p and S p are both less or equal to l, this can be done.  None'(/2ÉTypeNat6Nat-indexed list, where the nat determines the length.TypeNatA kind of fmap for Vect.TypeNatVCons to the end of a Vect.TypeNat Show a Vect. TypeNat9Drop the length index from a Vect, giving a typical list.!TypeNatøTry to produce a Vect from a list. The nat index must be fixed somehow, perhaps with the help of ScopedTypeVariables.  ! !None'(/ɯ'TypeNatFinite set datatype.4TypeNatSafely index a Vect.5TypeNatSafely update a Vect.# '()*+,-./012345'()*+,-./0123456      !"#$%&'()*+,-./0123456789:%TypeNat-0.5.0.1-FeVIIgsIfLrvkn3KWB5yDData.TypeNat.NatData.TypeNat.VectData.TypeNat.FinLTE lteInduction lteRecursion StrongLTEIsNat natRecursionTenNineEightSevenSixFiveFourThreeTwoOneZeroNatZS$fOrdNat$fEqNat$fIsNatS$fIsNatZ$fLTEnS$fLTEnnVectVNilVConsvectMapvectSnocshowVect vectToList listToVect$fTraversableVect$fFoldableVect $fFunctorVect $fShowVect$fEqVectFinFZFSix1ix2ix3ix4ix5ix6ix7ix8ix9ix10 safeIndex safeUpdate