aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array/Nested/Ranked.hs
diff options
context:
space:
mode:
authorMikolaj Konarski <mikolaj.konarski@funktory.com>2026-02-10 11:48:45 +0100
committerTom Smeding <tom@tomsmeding.com>2026-03-14 12:08:05 +0100
commit1c99e9ff0d18e323fe159e54af9775c46d4abd76 (patch)
tree7974f1c83e7947bfb880c81f4c6fe85c7611c333 /src/Data/Array/Nested/Ranked.hs
parent01ecb3a74f3fd4fafebd47d8669136efe9aaad07 (diff)
Add mtoListPrimLinear and friends
Diffstat (limited to 'src/Data/Array/Nested/Ranked.hs')
-rw-r--r--src/Data/Array/Nested/Ranked.hs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/Data/Array/Nested/Ranked.hs b/src/Data/Array/Nested/Ranked.hs
index 42bd76b..f668c3e 100644
--- a/src/Data/Array/Nested/Ranked.hs
+++ b/src/Data/Array/Nested/Ranked.hs
@@ -203,17 +203,23 @@ rfromList1PrimN = coerce mfromList1PrimN
rfromListPrimLinear :: forall n a. PrimElt a => IShR n -> [a] -> Ranked n a
rfromListPrimLinear sh l = Ranked (mfromListPrimLinear (shxFromShR sh) l)
-rtoList :: Elt a => Ranked 1 a -> [a]
-rtoList = map runScalar . rtoListOuter
-
rtoListOuter :: forall n a. Elt a => Ranked (n + 1) a -> [Ranked n a]
rtoListOuter (Ranked arr)
| Refl <- lemReplicateSucc @(Nothing @Nat) (Proxy @n)
= coerce (mtoListOuter @a @Nothing @(Replicate n Nothing) arr)
+rtoList :: Elt a => Ranked 1 a -> [a]
+rtoList = map runScalar . rtoListOuter
+
rtoListLinear :: Elt a => Ranked n a -> [a]
rtoListLinear (Ranked arr) = mtoListLinear arr
+rtoListPrim :: PrimElt a => Ranked 1 a -> [a]
+rtoListPrim (Ranked arr) = mtoListPrim arr
+
+rtoListPrimLinear :: PrimElt a => Ranked n a -> [a]
+rtoListPrimLinear (Ranked arr) = mtoListPrimLinear arr
+
rfromOrthotope :: PrimElt a => SNat n -> S.Array n a -> Ranked n a
rfromOrthotope sn arr
| Refl <- lemRankReplicate sn