From ba5a31c976f80421464af1af8d6ab1e2a154cd83 Mon Sep 17 00:00:00 2001 From: Mikolaj Konarski Date: Tue, 2 Dec 2025 05:38:41 +0100 Subject: Define mgeneratePrim as a fast special case variant --- src/Data/Array/Nested/Shaped.hs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/Data/Array/Nested/Shaped.hs') diff --git a/src/Data/Array/Nested/Shaped.hs b/src/Data/Array/Nested/Shaped.hs index 82dfc91..31a7706 100644 --- a/src/Data/Array/Nested/Shaped.hs +++ b/src/Data/Array/Nested/Shaped.hs @@ -72,6 +72,9 @@ sindexPartial sarr@(Shaped arr) idx = sgenerate :: forall sh a. KnownElt a => ShS sh -> (IIxS sh -> a) -> Shaped sh a sgenerate sh f = Shaped (mgenerate (shxFromShS sh) (f . ixsFromIxX sh)) +sgeneratePrim :: forall sh a. PrimElt a => ShS sh -> (IIxS sh -> a) -> Shaped sh a +sgeneratePrim sh f = Shaped (mgeneratePrim (shxFromShS sh) (f . ixsFromIxX sh)) + -- | See the documentation of 'mlift'. slift :: forall sh1 sh2 a. Elt a => ShS sh2 -- cgit v1.2.3-70-g09d2