aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikolaj Konarski <mikolaj.konarski@funktory.com>2025-05-16 13:42:47 +0200
committerMikolaj Konarski <mikolaj.konarski@funktory.com>2025-05-16 13:42:47 +0200
commit5c926beb1aeed724787812c35a70c5ae362bc1f7 (patch)
treee6f1501025268ffa8629aebd6eb5ce0f4e67cdc7
parentf969fb5d6172761a2148221b68a0384b53368f8c (diff)
Generalize some shape conversion functions
-rw-r--r--src/Data/Array/Nested/Convert.hs2
-rw-r--r--src/Data/Array/Nested/Ranked/Shape.hs14
-rw-r--r--src/Data/Array/Nested/Shaped/Shape.hs4
3 files changed, 10 insertions, 10 deletions
diff --git a/src/Data/Array/Nested/Convert.hs b/src/Data/Array/Nested/Convert.hs
index 92bc3b4..c5cd293 100644
--- a/src/Data/Array/Nested/Convert.hs
+++ b/src/Data/Array/Nested/Convert.hs
@@ -83,7 +83,7 @@ rcastToShaped (Ranked arr) targetsh
, Refl <- lemRankMapJust targetsh
= mcastToShaped targetsh arr
-ixrFromIxS :: IIxS sh -> IIxR (Rank sh)
+ixrFromIxS :: IxS sh i -> IxR (Rank sh) i
ixrFromIxS ZIS = ZIR
ixrFromIxS (i :.$ ix) = i :.: ixrFromIxS ix
diff --git a/src/Data/Array/Nested/Ranked/Shape.hs b/src/Data/Array/Nested/Ranked/Shape.hs
index 8f54673..aa89d88 100644
--- a/src/Data/Array/Nested/Ranked/Shape.hs
+++ b/src/Data/Array/Nested/Ranked/Shape.hs
@@ -213,14 +213,14 @@ ixrZero :: SNat n -> IIxR n
ixrZero SZ = ZIR
ixrZero (SS n) = 0 :.: ixrZero n
-ixrFromIxX :: IIxX sh -> IIxR (Rank sh)
+ixrFromIxX :: IxX sh i -> IxR (Rank sh) i
ixrFromIxX ZIX = ZIR
ixrFromIxX (n :.% idx) = n :.: ixrFromIxX idx
-ixxFromIxR :: IIxR n -> IIxX (Replicate n Nothing)
+ixxFromIxR :: IxR n i -> IxX (Replicate n Nothing) i
ixxFromIxR ZIR = ZIX
-ixxFromIxR (n :.: (idx :: IxR m Int)) =
- castWith (subst2 @IxX @Int (lemReplicateSucc @(Nothing @Nat) @m))
+ixxFromIxR (n :.: (idx :: IxR m i)) =
+ castWith (subst2 @IxX @i (lemReplicateSucc @(Nothing @Nat) @m))
(n :.% ixxFromIxR idx)
ixrHead :: IxR (n + 1) i -> i
@@ -288,10 +288,10 @@ shrFromShX2 sh
| Refl <- lemRankReplicate (Proxy @n)
= shrFromShX sh
-shxFromShR :: IShR n -> IShX (Replicate n Nothing)
+shxFromShR :: ShR n i -> ShX (Replicate n Nothing) i
shxFromShR ZSR = ZSX
-shxFromShR (n :$: (idx :: ShR m Int)) =
- castWith (subst2 @ShX @Int (lemReplicateSucc @(Nothing @Nat) @m))
+shxFromShR (n :$: (idx :: ShR m i)) =
+ castWith (subst2 @ShX @i (lemReplicateSucc @(Nothing @Nat) @m))
(SUnknown n :$% shxFromShR idx)
-- | This checks only whether the ranks are equal, not whether the actual
diff --git a/src/Data/Array/Nested/Shaped/Shape.hs b/src/Data/Array/Nested/Shaped/Shape.hs
index 5a1003f..ac85e0e 100644
--- a/src/Data/Array/Nested/Shaped/Shape.hs
+++ b/src/Data/Array/Nested/Shaped/Shape.hs
@@ -231,11 +231,11 @@ ixsZero :: ShS sh -> IIxS sh
ixsZero ZSS = ZIS
ixsZero (_ :$$ sh) = 0 :.$ ixsZero sh
-ixsFromIxX :: ShS sh -> IIxX (MapJust sh) -> IIxS sh
+ixsFromIxX :: ShS sh -> IxX (MapJust sh) i -> IxS sh i
ixsFromIxX ZSS ZIX = ZIS
ixsFromIxX (_ :$$ sh) (n :.% idx) = n :.$ ixsFromIxX sh idx
-ixxFromIxS :: IIxS sh -> IIxX (MapJust sh)
+ixxFromIxS :: IxS sh i -> IxX (MapJust sh) i
ixxFromIxS ZIS = ZIX
ixxFromIxS (n :.$ sh) = n :.% ixxFromIxS sh