module Text.Show.Text.Data.Array (showbArrayPrec) where
import Data.Array (Array, assocs, bounds)
import Data.Ix (Ix)
import Data.Text.Lazy.Builder (Builder)
import GHC.Show (appPrec, appPrec1)
import Prelude hiding (Show)
import Text.Show.Text.Class (Show(showbPrec), showbParen)
import Text.Show.Text.Data.List ()
import Text.Show.Text.Data.Tuple ()
import Text.Show.Text.Utils ((<>), s)
showbArrayPrec :: (Show i, Show e, Ix i) => Int -> Array i e -> Builder
showbArrayPrec p a = showbParen (p > appPrec) $
"array "
<> showbPrec appPrec1 (bounds a)
<> s ' '
<> showbPrec appPrec1 (assocs a)
instance (Show i, Show e, Ix i) => Show (Array i e) where
showbPrec = showbArrayPrec