úÎ1‘,'0      !"#$%&'()*+,-./None!"'(+-./02346=JKM(Compute the size of an index Convert a 0 to a type-level  Peano numbers*Types that support static range operations NSelect whether to generate an unrolled loop or just the loop at compile-time. each n = an index of all n$The number of dimensions in an indexThe size of the index1/Reify a type-level index into a value-level one/Reify a type-level index into a value-level one"Increment by one. Wraps around to 2 when 3 is given."Decrement by one. Wraps around to 3 when 2 is given. Create an 4 index.Create an index from its 4 representation.%Ensure an index is within its bounds.51Ensure the "head" dimension is within its bounds.6See 37 Similar to 8x. This will take the modulus of your input. The first argument to the inputted function is the max bound at that index.9Same as 7#, but it doesn't check whether the 4gs you generate are valid. The first argument to the inputted function is the max bound at that index.:[Map over indices. The first argument to the inputted functions is the bound at that index.;ƒMap over indices. The first argument to the inputted functions is the bound at that index. The output is not checked to be valid.+Retain the rank, but change the upper bound>The zero index, used to end indices, just as '[]' ends a list. Index constructor, analogous to :The < and =u instances multiply in their bind operations, and their 'return'/'pure' creates an index whose first dimension is 1.You might prefer to use (You might prefer to use ) The range of an index!Lazy right fold over a range."Lazy right fold over a range.#Compute something from a range$Strict left fold over the raw 4 indices under a range%Lazy right fold over the raw 4 indices under a range&Compute something using the raw indices under a range' Expands to a >V with the phantom type being the dimension specified. Works in types and expressions. Examples: 5 id [dim|3 4 5|] ==> id (Proxy :: Proxy (3:.4:.5:.Z)) 6 Proxy :: [dim|3 4 5|] ==> Proxy :: Proxy (3:.4:.5:.Z)(Same as ', but create an   instead of a >.)Same as ', but create a   instead of a >..3Create a bound for use with e.g. "Data.Array.array"/  fromInteger . natVal?\The indices in an Ix instance are always bound by (0, t), where t is the type of the index.@Rank^ABCDEF 1G5679:; H!"#$%&IJKL'()*+,-MNOP./QRS?TUVWXYZ[\]^_`abcd@e5fg>hi  !"#$%&'()*+,-./0  "!#$%&. *+,-/'()@ABCDEF   1G5679:; H!"#$%&IJKL'()*+,-MNOP./QRS?TUVWXYZ[\]^_`abcd@e  j      !"#$%&'()*+,-./0123045046789:;<0=>?@A0BC0DE0FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn0Fo0FG0Fp0Fpq indices-1.6.0 Data.IndexRangeAndInRangeSizeToPeanoPeanoSuccZeroRangedModeRollUnrollDimeachranksizereflectnextprevtoIndex fromIndexcorrectRanksetBoundZ:.zerounrollroll modeProxyrange foldrRange foldlRange withRangefoldlRangeIndicesfoldrRangeIndiceswithRangeIndicesdimdimudimrdimHeaddimTailpdimHeadpdimTailboundscnatbase GHC.TypeLitsNatreflect'GHC.EnumminBoundmaxBoundghc-prim GHC.TypesInt correctOncelastDimzipDimsGHC.ListzipWith unsafeZipDimsmapDim unsafeMapDimControl.Applicative ApplicativeGHC.BaseMonad Data.ProxyProxy$fIx:. $fRank:.:. swithRange_ sfoldrRange_ sfoldlRange_swithRangeIndices_sfoldrRangeIndices_sfoldlRangeIndices_ fromIndex'proxyOfzipModunsafeZipDims'mapModdimQQ nextTagged nextTaggedItagPeano tagPeanoI $fRangeSucc $fRangeZero $fRangedn$fIxZ $fMonad:.$fApplicative:. $fMonoid:. $fMonoidZ $fBounded:. $fBoundedZ $fIntegral:. $fIntegralZ$fEnum:.$fEnumZ$fReal:.$fRealZ$fNum:.$fNumZ$fDim:.$fDimZ$fRankZZ asProxyTypeOfKProxy