aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array/Nested/Ranked.hs
diff options
context:
space:
mode:
authorMikolaj Konarski <mikolaj.konarski@funktory.com>2025-12-02 14:19:04 +0100
committerMikolaj Konarski <mikolaj.konarski@funktory.com>2025-12-02 14:19:04 +0100
commita7b64fe342524e82194d73af852b5f2f1bc5bab3 (patch)
tree73fb2b9484d33e7400e92a67388227a75adf56c9 /src/Data/Array/Nested/Ranked.hs
parent9f47aa6a2bcd772388a5d5150ca7254e4eb95bc2 (diff)
Generalize also mgenerate to potentially avoid @fmap fromIntegral@mgenerate-integral
Diffstat (limited to 'src/Data/Array/Nested/Ranked.hs')
-rw-r--r--src/Data/Array/Nested/Ranked.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Data/Array/Nested/Ranked.hs b/src/Data/Array/Nested/Ranked.hs
index 37925fb..22ca117 100644
--- a/src/Data/Array/Nested/Ranked.hs
+++ b/src/Data/Array/Nested/Ranked.hs
@@ -62,7 +62,9 @@ rindexPartial (Ranked arr) idx =
-- | __WARNING__: All values returned from the function must have equal shape.
-- See the documentation of 'mgenerate' for more details.
-rgenerate :: forall n a. KnownElt a => IShR n -> (IIxR n -> a) -> Ranked n a
+{-# INLINEABLE rgenerate #-}
+rgenerate :: forall n a i. (KnownElt a, Integral i)
+ => IShR n -> (IxR n i -> a) -> Ranked n a
rgenerate sh f
| sn@SNat <- shrRank sh
, Dict <- lemKnownReplicate sn