diff options
| -rw-r--r-- | src/Data/Array/Nested/Convert.hs | 1 | ||||
| -rw-r--r-- | src/Data/Array/Nested/Mixed/Shape.hs | 13 | ||||
| -rw-r--r-- | src/Data/Array/Nested/Shaped/Base.hs | 4 | ||||
| -rw-r--r-- | src/Data/Array/Nested/Shaped/Shape.hs | 4 | 
4 files changed, 12 insertions, 10 deletions
| diff --git a/src/Data/Array/Nested/Convert.hs b/src/Data/Array/Nested/Convert.hs index 837e482..de4a3e2 100644 --- a/src/Data/Array/Nested/Convert.hs +++ b/src/Data/Array/Nested/Convert.hs @@ -24,7 +24,6 @@ module Data.Array.Nested.Convert (    rtoMixed, rcastToMixed, rcastToShaped,    stoMixed, scastToMixed, stoRanked,    mcast, mcastToShaped, mtoRanked, -  ) where  import Control.Category diff --git a/src/Data/Array/Nested/Mixed/Shape.hs b/src/Data/Array/Nested/Mixed/Shape.hs index 60be42f..8e0c274 100644 --- a/src/Data/Array/Nested/Mixed/Shape.hs +++ b/src/Data/Array/Nested/Mixed/Shape.hs @@ -31,7 +31,6 @@ import Data.Functor.Const  import Data.Functor.Product  import Data.Kind (Constraint, Type)  import Data.Monoid (Sum(..)) -import Data.Proxy  import Data.Type.Equality  import GHC.Exts (withDict)  import GHC.Generics (Generic) @@ -392,10 +391,10 @@ shxSize :: IShX sh -> Int  shxSize ZSX = 1  shxSize (n :$% sh) = fromSMayNat' n * shxSize sh -shxFromList :: StaticShX sh -> [Int] -> ShX sh Int +shxFromList :: StaticShX sh -> [Int] -> IShX sh  shxFromList topssh topl = go topssh topl    where -    go :: StaticShX sh' -> [Int] -> ShX sh' Int +    go :: StaticShX sh' -> [Int] -> IShX sh'      go ZKX [] = ZSX      go (SKnown sn :!% sh) (i : is)        | i == fromSNat' sn = SKnown sn :$% go sh is @@ -411,7 +410,7 @@ shxToList ZSX = []  shxToList (smn :$% sh) = fromSMayNat' smn : shxToList sh  -- | This may fail if @sh@ has @Nothing@s in it. -shxFromSSX' :: StaticShX sh -> Maybe (IShX sh) +shxFromSSX' :: StaticShX sh -> Maybe (ShX sh i)  shxFromSSX' ZKX = Just ZSX  shxFromSSX' (SKnown n :!% sh) = (SKnown n :$%) <$> shxFromSSX' sh  shxFromSSX' (SUnknown _ :!% _) = Nothing @@ -440,7 +439,7 @@ shxInit = coerce (listxInit @(SMayNat i SNat))  shxLast :: forall n sh i. ShX (n : sh) i -> SMayNat i SNat (Last (n : sh))  shxLast = coerce (listxLast @(SMayNat i SNat)) -shxTakeSSX :: forall sh sh' i. Proxy sh' -> ShX (sh ++ sh') i -> StaticShX sh -> ShX sh i +shxTakeSSX :: forall sh sh' i proxy. proxy sh' -> ShX (sh ++ sh') i -> StaticShX sh -> ShX sh i  shxTakeSSX _ = flip go    where      go :: StaticShX sh1 -> ShX (sh1 ++ sh') i -> ShX sh1 i @@ -458,7 +457,7 @@ shxCompleteZeros ZKX = ZSX  shxCompleteZeros (SUnknown () :!% ssh) = SUnknown 0 :$% shxCompleteZeros ssh  shxCompleteZeros (SKnown n :!% ssh) = SKnown n :$% shxCompleteZeros ssh -shxSplitApp :: Proxy sh' -> StaticShX sh -> ShX (sh ++ sh') i -> (ShX sh i, ShX sh' i) +shxSplitApp :: proxy sh' -> StaticShX sh -> ShX (sh ++ sh') i -> (ShX sh i, ShX sh' i)  shxSplitApp _ ZKX idx = (ZSX, idx)  shxSplitApp p (_ :!% ssh) (i :$% idx) = first (i :$%) (shxSplitApp p ssh idx) @@ -564,7 +563,7 @@ ssxIotaFrom :: Int -> StaticShX sh -> [Int]  ssxIotaFrom _ ZKX = []  ssxIotaFrom i (_ :!% ssh) = i : ssxIotaFrom (i+1) ssh -ssxFromShX :: IShX sh -> StaticShX sh +ssxFromShX :: ShX sh i -> StaticShX sh  ssxFromShX ZSX = ZKX  ssxFromShX (n :$% sh) = fromSMayNat (\_ -> SUnknown ()) SKnown n :!% ssxFromShX sh diff --git a/src/Data/Array/Nested/Shaped/Base.hs b/src/Data/Array/Nested/Shaped/Base.hs index ddd44bf..a24a91a 100644 --- a/src/Data/Array/Nested/Shaped/Base.hs +++ b/src/Data/Array/Nested/Shaped/Base.hs @@ -246,9 +246,9 @@ sshape :: forall sh a. Elt a => Shaped sh a -> ShS sh  sshape (Shaped arr) = shsFromShX (mshape arr)  -- Needed already here, but re-exported in Data.Array.Nested.Convert. -shsFromShX :: forall sh. IShX (MapJust sh) -> ShS sh +shsFromShX :: forall sh i. ShX (MapJust sh) i -> ShS sh  shsFromShX ZSX = castWith (subst1 (unsafeCoerceRefl :: '[] :~: sh)) ZSS -shsFromShX (SKnown n@SNat :$% (idx :: IShX mjshT)) = +shsFromShX (SKnown n@SNat :$% (idx :: ShX mjshT i)) =    castWith (subst1 (lem Refl)) $      n :$$ shsFromShX @(Tail sh) (castWith (subst2 (unsafeCoerceRefl :: mjshT :~: MapJust (Tail sh)))                                     idx) diff --git a/src/Data/Array/Nested/Shaped/Shape.hs b/src/Data/Array/Nested/Shaped/Shape.hs index 20a7a7a..d34f3ec 100644 --- a/src/Data/Array/Nested/Shaped/Shape.hs +++ b/src/Data/Array/Nested/Shaped/Shape.hs @@ -50,6 +50,8 @@ import Data.Array.Nested.Types  -- * Shaped lists +-- | Note: The 'KnownNat' constraint on '(::$)' is deprecated and should be +-- removed in a future release.  type role ListS nominal representational  type ListS :: [Nat] -> (Nat -> Type) -> Type  data ListS sh f where @@ -193,6 +195,8 @@ newtype IxS sh i = IxS (ListS sh (Const i))  pattern ZIS :: forall sh i. () => sh ~ '[] => IxS sh i  pattern ZIS = IxS ZS +-- | Note: The 'KnownNat' constraint on '(:.$)' is deprecated and should be +-- removed in a future release.  pattern (:.$)    :: forall {sh1} {i}.       forall n sh. (KnownNat n, n : sh ~ sh1) | 
