diff options
| author | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2025-12-09 15:46:26 +0100 |
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@funktory.com> | 2026-01-31 10:41:26 +0100 |
| commit | f80a2cd3a5718065950341a320689ea7810935ab (patch) | |
| tree | 791348ce742fe7a1b618d467cf876c10ad835ae2 /src/Data/Array/Nested/Ranked/Base.hs | |
| parent | b5333de1a1b2f670f2a181f2c6dc506a93061926 (diff) | |
Add method mvecsUnsafeFreeze and use it
Diffstat (limited to 'src/Data/Array/Nested/Ranked/Base.hs')
| -rw-r--r-- | src/Data/Array/Nested/Ranked/Base.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Data/Array/Nested/Ranked/Base.hs b/src/Data/Array/Nested/Ranked/Base.hs index 11a8ffb..defd72f 100644 --- a/src/Data/Array/Nested/Ranked/Base.hs +++ b/src/Data/Array/Nested/Ranked/Base.hs @@ -176,6 +176,14 @@ instance Elt a => Elt (Ranked n a) where (coerce @(MixedVecs s sh (Ranked n a)) @(MixedVecs s sh (Mixed (Replicate n Nothing) a)) vecs) + mvecsUnsafeFreeze :: forall sh s. IShX sh -> MixedVecs s sh (Ranked n a) -> ST s (Mixed sh (Ranked n a)) + mvecsUnsafeFreeze sh vecs = + coerce @(Mixed sh (Mixed (Replicate n Nothing) a)) + @(Mixed sh (Ranked n a)) + <$> mvecsUnsafeFreeze sh + (coerce @(MixedVecs s sh (Ranked n a)) + @(MixedVecs s sh (Mixed (Replicate n Nothing) a)) + vecs) instance (KnownNat n, KnownElt a) => KnownElt (Ranked n a) where memptyArrayUnsafe :: forall sh. IShX sh -> Mixed sh (Ranked n a) |
