{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
#if __GLASGOW_HASKELL__ >= 706
{-# LANGUAGE PolyKinds #-}
#endif
{-# OPTIONS -fno-warn-orphans #-}
module TextShow.Data.Tagged (liftShowbTaggedPrec) where
import Data.Tagged (Tagged(..))
import TextShow (TextShow(..), TextShow1(..), TextShow2(..),
Builder, showbPrec1, showbUnaryWith)
liftShowbTaggedPrec :: (Int -> b -> Builder) -> Int -> Tagged s b -> Builder
liftShowbTaggedPrec sp p (Tagged b) = showbUnaryWith sp "Tagged" p b
{-# INLINE liftShowbTaggedPrec #-}
instance TextShow b => TextShow (Tagged s b) where
showbPrec = showbPrec1
{-# INLINE showbPrec #-}
instance TextShow1 (Tagged s) where
liftShowbPrec sp _ = liftShowbTaggedPrec sp
{-# INLINE liftShowbPrec #-}
instance TextShow2 Tagged where
liftShowbPrec2 _ _ sp _ = liftShowbTaggedPrec sp
{-# INLINE liftShowbPrec2 #-}