diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-12-02 14:19:04 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-12-02 14:19:04 +0100 |
| commit | a7b64fe342524e82194d73af852b5f2f1bc5bab3 (patch) | |
| tree | 73fb2b9484d33e7400e92a67388227a75adf56c9 /src/Data/Array/Nested/Shaped.hs | |
| parent | 9f47aa6a2bcd772388a5d5150ca7254e4eb95bc2 (diff) | |
Generalize also mgenerate to potentially avoid @fmap fromIntegral@mgenerate-integral
Diffstat (limited to 'src/Data/Array/Nested/Shaped.hs')
| -rw-r--r-- | src/Data/Array/Nested/Shaped.hs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Data/Array/Nested/Shaped.hs b/src/Data/Array/Nested/Shaped.hs index 075549d..e842c18 100644 --- a/src/Data/Array/Nested/Shaped.hs +++ b/src/Data/Array/Nested/Shaped.hs @@ -69,7 +69,9 @@ sindexPartial sarr@(Shaped arr) idx = -- | __WARNING__: All values returned from the function must have equal shape. -- See the documentation of 'mgenerate' for more details. -sgenerate :: forall sh a. KnownElt a => ShS sh -> (IIxS sh -> a) -> Shaped sh a +{-# INLINEABLE sgenerate #-} +sgenerate :: forall sh a i. (KnownElt a, Integral i) + => ShS sh -> (IxS sh i -> a) -> Shaped sh a sgenerate sh f = Shaped (mgenerate (shxFromShS sh) (f . ixsFromIxX sh)) {-# INLINE sgeneratePrim #-} |
