úÎ8g2ÉR      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQNone%&*+,9:;@DOQRT[^@Reduces axis i in shape s. Does not maintain singlton dimension.8Reduces axis i in shape s. Maintains singlton dimension!RS TU VWXYZ[\]^_`abcde    RS TU VWXYZ[\]^_`abcdeNone%&+,2459:;<=@DIQRT^fAllLT xs n = All (n >) xsgSlice xs = Map Length xsBan n-dimensional array where shape is specified at the value level°an n-dimensional array where shape is specified at the type level The main purpose of this, beyond safe typing, is to supply the Representable instance with an initial object.a[[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]]h convert a  to a , losing the type level shapei.convert from n-dim shape index to a flat indexind [2,3,4] [1,1,1]17j*convert from a flat index to a shape indexunind [2,3,4] 17[1,1,1]k5convert the top layer of a SomeArray to a [SomeArray] outer product$todo: reconcile with numhask versionv >< v [[1, 2, 3], [2, 4, 6], [3, 6, 9]]matrix multiplication for a  '2-Array')let a = [1, 2, 3, 4] :: Array '[2, 2] Int)let b = [5, 6, 7, 8] :: Array '[2, 2] Inta[[1, 2], [3, 4]]b[[5, 6], [7, 8]] mmult a b [[19, 22], [43, 50]]extract the row of a matrixextract the column of a matrixunsafeIndex a [0,2,1]10 5unsafeSlice [[0,1],[2],[1,2]] a :: Array '[2,1,2] Int [[[10, 11]], [[22, 23]]]!/slice (Proxy :: Proxy '[ '[0,1],'[2],'[1,2]]) a [[[10, 11]], [[22, 23]]]#AfoldAlong (Proxy :: Proxy 1) (\_ -> ([0..3] :: Array '[4] Int)) a[[0, 1, 2, 3], [0, 1, 2, 3]]©todo: resolution of a primitive and a scalar eg Expected type: Array '[10] Int -> Array '[] Int Actual type: Array '[10] (Array '[] Int) -> Array '[] Int$CmapAlong (Proxy :: Proxy 0) (\x -> NumHask.Array.zipWith (*) x x) a[[[1, 4, 9, 16], [25, 36, 49, 64], [81, 100, 121, 144]], [[169, 196, 225, 256], [289, 324, 361, 400], [441, 484, 529, 576]]]%"concatenate (Proxy :: Proxy 2) a a[[[1, 2, 3, 4, 1, 2, 3, 4], [5, 6, 7, 8, 5, 6, 7, 8]," [9, 10, 11, 12, 9, 10, 11, 12]],# [[13, 14, 15, 16, 13, 14, 15, 16],# [17, 18, 19, 20, 17, 18, 19, 20],$ [21, 22, 23, 24, 21, 22, 23, 24]]]&NumHask.Array.transpose a [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]], [[19, 20], [21, 22], [23, 24]]]')let a = [1..24] :: Array '[2,1,3,4,1] Inta[[[[[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]]]], [[[[13], [14], [15], [16]], [[17], [18], [19], [20]], [[21], [22], [23], [24]]]]] squeeze a[[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]]Efrom flat list<lfghijk !m"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH !"#$%&'! #$%"&':lfghijk !m"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHNone,@^n     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst*numhask-array-0.0.2-2lUyhulk8QKGaYUY0rlcHX NumHask.ArrayNumHask.Array.ConstraintsNumHask.Array.ExamplebaseGHC.ExtsfromList dimShuffle%adjunctions-4.3-X2U0XIVJySEv6aJWzZmLLData.Functor.Repindex HeadModule TailModuleFold FoldAlong Concatenate TransposeIsValidTransposeSqueeze IsValidConcat$fOrdNat$fEqNat DimShuffle*$fSuppressUnusedWarnings(->)DimShuffleSym0*$fSuppressUnusedWarnings(->)DimShuffleSym1S$fSuppressUnusedWarnings(->)Let6989586621679108046Scrutinee_6989586621679105664Sym0S$fSuppressUnusedWarnings(->)Let6989586621679108046Scrutinee_6989586621679105664Sym1S$fSuppressUnusedWarnings(->)Let6989586621679108046Scrutinee_6989586621679105664Sym2S$fSuppressUnusedWarnings(->)Let6989586621679108046Scrutinee_6989586621679105664Sym3 SomeArrayArray><mmultrow unsafeRowcol unsafeCol unsafeIndex unsafeSliceslicezipWith foldAlongmapAlong concatenate transposesqueeze$fHilbertArraya$fIntegralArray$fMetricArraya$fEpsilonArray$fNormedArraya $fSignedArray$fBoundedFieldArray$fExpFieldArray $fFieldArray $fCRingArray $fRingArray$fSemiringArray$fDistributionArray$fMultiplicativeGroupArray$fMultiplicativeArray$fMultiplicativeInvertibleArray $fMultiplicativeCommutativeArray $fMultiplicativeAssociativeArray$fMultiplicativeUnitalArray$fMultiplicativeMagmaArray$fAdditiveGroupArray$fAdditiveArray$fAdditiveInvertibleArray$fAdditiveCommutativeArray$fAdditiveAssociativeArray$fAdditiveUnitalArray$fAdditiveMagmaArray $fShowArray$fShowSomeArray $fIsListArray$fRepresentableArray$fDistributiveArray$fHasShapeArray$fFunctorArray $fEqArray$fFoldableArray$fGenericArray$fGeneric1Array $fNFDataArray$fFunctorSomeArray $fEqSomeArray$fFoldableSomeArrayCase_6989586621679108065 AddDimensionDropDim!!DimShuffleSym0DimShuffleSym0KindInferenceDimShuffleSym1DimShuffleSym1KindInferenceDimShuffleSym23Let6989586621679108046Scrutinee_69895866216791056647Let6989586621679108046Scrutinee_6989586621679105664Sym0DLet6989586621679108046Scrutinee_6989586621679105664Sym0KindInference7Let6989586621679108046Scrutinee_6989586621679105664Sym1DLet6989586621679108046Scrutinee_6989586621679105664Sym1KindInference7Let6989586621679108046Scrutinee_6989586621679105664Sym2DLet6989586621679108046Scrutinee_6989586621679105664Sym2KindInference7Let6989586621679108046Scrutinee_6989586621679105664Sym3DLet6989586621679108046Scrutinee_6989586621679105664Sym3KindInference7Let6989586621679108046Scrutinee_6989586621679105664Sym4D:R:Apply[](->)DimShuffleSym0l0 AllLTSym0Slice someArrayindunindflatten1 AllLTSym1 chunkItUp