aboutsummaryrefslogtreecommitdiff
path: root/src/Data/Array/Nested
diff options
context:
space:
mode:
authorMikolaj Konarski <mikolaj.konarski@funktory.com>2026-03-15 10:34:19 +0100
committerMikolaj Konarski <mikolaj.konarski@funktory.com>2026-03-15 10:34:19 +0100
commit816249cd59a7e243bec82651e2def22f8c3b439c (patch)
treea072714ec78a238eb8aaa873530f6276cb209370 /src/Data/Array/Nested
parent7fbf7b2606f53e6497976c75092f01a11ba49060 (diff)
Work around the following GHC bug in GHC 9.10.3:
src/Data/Array/Nested/Mixed.hs:1045:13: error: [GHC-83865] • Couldn't match type ‘i0’ with ‘Int’ Expected: ShX sh i0 Actual: ShX sh1 Int ‘i0’ is untouchable inside the constraints: (n1 : sh1) ~ (AddMaybe (AddMaybe i n) k : sh) bound by UnkSkol (please report this as a bug) Call stack: CallStack (from HasCallStack): unkSkolAnon, called at compiler/GHC/Tc/Types/Origin.hs:331:42 in ghc-9.10.3-b4c3:GHC.Tc.Types.Origin unkSkol, called at compiler/GHC/Tc/Gen/Pat.hs:1275:49 in ghc-9.10.3-b4c3:GHC.Tc.Gen.Pat at src/Data/Array/Nested/Mixed.hs:1045:7-14
Diffstat (limited to 'src/Data/Array/Nested')
-rw-r--r--src/Data/Array/Nested/Mixed.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Data/Array/Nested/Mixed.hs b/src/Data/Array/Nested/Mixed.hs
index 0766e8c..a761503 100644
--- a/src/Data/Array/Nested/Mixed.hs
+++ b/src/Data/Array/Nested/Mixed.hs
@@ -1041,11 +1041,11 @@ msliceSN i n arr =
mslice :: forall i n k sh a. Elt a
=> SMayNat Int i -> SMayNat Int n -> SMayNat Int k -> Mixed (AddMaybe (AddMaybe i n) k : sh) a -> Mixed (n : sh) a
-mslice i n k arr =
- let _ :$% sh = mshape arr
- uarr = mcastPartial (ssxFromShX $ smnAddMaybe (smnAddMaybe i n) k :$% ZSX) (SUnknown () :!% ZKX) Proxy arr
- in mcastPartial (SUnknown () :!% ZKX) (ssxFromShX $ n :$% ZSX) Proxy
- $ mlift (SUnknown () :!% ssxFromShX sh) (\_ -> X.sliceU (fromSMayNat' i) (fromSMayNat' n)) uarr
+mslice i n k arr = case mshape arr of
+ _ :$% sh ->
+ let uarr = mcastPartial (ssxFromShX $ smnAddMaybe (smnAddMaybe i n) k :$% ZSX) (SUnknown () :!% ZKX) Proxy arr
+ in mcastPartial (SUnknown () :!% ZKX) (ssxFromShX $ n :$% ZSX) Proxy
+ $ mlift (SUnknown () :!% ssxFromShX sh) (\_ -> X.sliceU (fromSMayNat' i) (fromSMayNat' n)) uarr
mrev1 :: Elt a => Mixed (n : sh) a -> Mixed (n : sh) a
mrev1 arr = mlift (ssxFromShX (mshape arr)) (\_ -> X.rev1) arr