diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-02-10 11:48:45 +0100 |
|---|---|---|
| committer | Tom Smeding <tom@tomsmeding.com> | 2026-03-14 12:08:05 +0100 |
| commit | 1c99e9ff0d18e323fe159e54af9775c46d4abd76 (patch) | |
| tree | 7974f1c83e7947bfb880c81f4c6fe85c7611c333 /src/Data/Array/Nested/Ranked.hs | |
| parent | 01ecb3a74f3fd4fafebd47d8669136efe9aaad07 (diff) | |
Add mtoListPrimLinear and friends
Diffstat (limited to 'src/Data/Array/Nested/Ranked.hs')
| -rw-r--r-- | src/Data/Array/Nested/Ranked.hs | 12 |
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 |
