diff options
Diffstat (limited to 'src/Data/Array/Nested/Mixed')
| -rw-r--r-- | src/Data/Array/Nested/Mixed/Shape.hs | 13 | 
1 files changed, 6 insertions, 7 deletions
| 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 | 
