úÎ!=è8Ø[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZNone&',-.=>?DHSUVXbí numhask-array@Reduces axis i in shape s. Does not maintain singlton dimension. numhask-array8Reduces axis i in shape s. Maintains singlton dimension    Safe =?DHVb Å  numhask-array1Not everything that has a shape is representable.Atodo: Structure is a useful alternative concept/naming convention  None .Db [None&'-.=>?@ADHMVXbk7´ numhask-arrayYa sweet class of container with attributes necessary to supply the set of operations here numhask-array7an array with dimensions represented at the value level numhask-array+an array polymorphic in container and shapea[[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]]  numhask-array;convert an array with type-level shape to value-level shape! numhask-array.convert from n-dim shape index to a flat indexind [2,3,4] [1,1,1]17" numhask-array*convert from a flat index to a shape indexunind [2,3,4] 17[1,1,1]# numhask-array5convert the top layer of a SomeArray to a [SomeArray]$ numhask-array outer product$todo: reconcile with numhask versionv NumHask.Array.>< v [[1, 2, 3], [2, 4, 6], [3, 6, 9]]% numhask-arraymatrix multiplication,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]]& numhask-arrayextract the row of a matrix* numhask-arrayextract the column of a matrix+ numhask-arrayunsafeIndex a [0,2,1]10, numhask-array8unsafeSlice [[0,1],[2],[1,2]] a :: Array [] '[2,1,2] Int [[[10, 11]], [[22, 23]]]- numhask-array<todo: an ambiguous type variable has snuck in here somewhere /slice (Proxy :: Proxy '[ '[0,1],'[2],'[1,2]]) a [[10, 11],[22, 23]]. numhask-arrayDfoldAlong (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/ numhask-array5todo: No instance for (Container (Array [] '[]) error 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]]0 numhask-array"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]]]1 numhask-arrayNumHask.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]]]2 numhask-array,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]]]5 numhask-arrayfrom flat list[ numhask-array3instance where dimensions are known at compile time$ !"#$%&'()*+,-./0123$ !"#$%&'()*+,-./0123\      !""##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a+numhask-array-0.3.0.1-WBKEKpBIGQ8HNPP5n4tnf NumHask.ShapeNumHask.Array.Constraints NumHask.ArrayNumHask.Array.Example&adjunctions-4.4-8bRLL7xgtlhC6qVUyvWhTgData.Functor.RepindextabulateRep Representable HeadModule TailModuleFold FoldAlong Concatenate TransposeIsValidTransposeSqueeze IsValidConcatHasShapeShapeshapeMatrixVector ContainergenerateidxcslicezipWith chunkItUpcfoldl'cfoldrcconcatAnyArrayArray _getContaineranyArrayindunindflatten1><mmultrow rank2Shape unsafeRow unsafeColcol unsafeIndex unsafeSliceslice foldAlongmapAlong concatenate transposesqueeze singleton$fNormedArraya $fIsListArray $fEqArray$fHasShapeArray $fNFDataArray$fBoundedMeetSemiLatticeArray$fBoundedJoinSemiLatticeArray$fMeetSemiLatticeArray$fJoinSemiLatticeArray$fTensorProductArray$fHilbertArray$fDivisiveActionArray$fMultiplicativeActionArray$fSubtractiveActionArray$fAdditiveActionArray$fHadamardDivisionArraya$fHadamardMultiplicationArraya$fIntegralArray$fMetricArraya$fEpsilonArray $fSignedArray$fLowerBoundedFieldArray$fUpperBoundedFieldArray$fExpFieldArray $fFieldArray$fIntegralDomainArray$fDistributiveArray$fDivisiveArray$fMultiplicativeArray$fSubtractiveArray$fAdditiveArray $fShowArray$fShowAnyArray$fRepresentableArray$fDistributiveArray0 $fContainer[]$fContainerVector$fFunctorArray$fFoldableArrayD:R:ArrayNatcdst0