{-# LANGUAGE TypeFamilies #-}
module Numeric.LAPACK.Shape.Private where

import qualified Data.Array.Comfort.Shape as Shape


newtype Unchecked sh = Unchecked {Unchecked sh -> sh
deconsUnchecked :: sh}
   deriving (Int -> Unchecked sh -> ShowS
[Unchecked sh] -> ShowS
Unchecked sh -> String
(Int -> Unchecked sh -> ShowS)
-> (Unchecked sh -> String)
-> ([Unchecked sh] -> ShowS)
-> Show (Unchecked sh)
forall sh. Show sh => Int -> Unchecked sh -> ShowS
forall sh. Show sh => [Unchecked sh] -> ShowS
forall sh. Show sh => Unchecked sh -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Unchecked sh] -> ShowS
$cshowList :: forall sh. Show sh => [Unchecked sh] -> ShowS
show :: Unchecked sh -> String
$cshow :: forall sh. Show sh => Unchecked sh -> String
showsPrec :: Int -> Unchecked sh -> ShowS
$cshowsPrec :: forall sh. Show sh => Int -> Unchecked sh -> ShowS
Show)

instance Eq (Unchecked sh) where
   Unchecked sh
_ == :: Unchecked sh -> Unchecked sh -> Bool
== Unchecked sh
_   =  Bool
True

instance (Shape.C sh) => Shape.C (Unchecked sh) where
   size :: Unchecked sh -> Int
size (Unchecked sh
sh) = sh -> Int
forall sh. C sh => sh -> Int
Shape.size sh
sh
   uncheckedSize :: Unchecked sh -> Int
uncheckedSize (Unchecked sh
sh) = sh -> Int
forall sh. C sh => sh -> Int
Shape.uncheckedSize sh
sh