diff options
| author | Mikolaj Konarski <mikolaj.konarski@gmail.com> | 2024-07-21 18:47:51 +0200 | 
|---|---|---|
| committer | Mikolaj Konarski <mikolaj.konarski@gmail.com> | 2024-07-21 18:47:51 +0200 | 
| commit | 774730c3b2742c59bea532e32f43fa12397a3a15 (patch) | |
| tree | 73ec436184637423a397534b21a2b8b45e6947ce /src/Data | |
| parent | 9e675915525cf1b19269a0fec474a2537d2033d7 (diff) | |
Add an awkward extra Typeable constraint that helps comparing shapes
Diffstat (limited to 'src/Data')
| -rw-r--r-- | src/Data/Array/Nested/Internal/Shape.hs | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/src/Data/Array/Nested/Internal/Shape.hs b/src/Data/Array/Nested/Internal/Shape.hs index 7077053..0d75b04 100644 --- a/src/Data/Array/Nested/Internal/Shape.hs +++ b/src/Data/Array/Nested/Internal/Shape.hs @@ -38,6 +38,7 @@ import GHC.IsList (IsList)  import GHC.IsList qualified as IsList  import GHC.TypeLits  import GHC.TypeNats qualified as TN +import Type.Reflection (Typeable)  import Data.Array.Mixed.Lemmas  import Data.Array.Mixed.Permutation @@ -541,7 +542,7 @@ shsProduct (n :$$ sh) = n `snatMul` shsProduct sh  -- | Evidence for the static part of a shape. This pops up only when you are  -- polymorphic in the element type of an array.  type KnownShS :: [Nat] -> Constraint -class KnownShS sh where knownShS :: ShS sh +class Typeable sh => KnownShS sh where knownShS :: ShS sh  instance KnownShS '[] where knownShS = ZSS  instance (KnownNat n, KnownShS sh) => KnownShS (n : sh) where knownShS = natSing :$$ knownShS | 
