{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS -fno-warn-orphans #-} {-| Module: TextShow.Data.Tagged Copyright: (C) 2014-2015 Ryan Scott License: BSD-style (see the file LICENSE) Maintainer: Ryan Scott Stability: Provisional Portability: GHC Monomorphic 'TextShow' function for 'Tagged' values. /Since: 2/ -} module TextShow.Data.Tagged (showbTaggedPrecWith) where import Data.Tagged (Tagged(..)) import TextShow (TextShow(showbPrec), TextShow1(..), TextShow2(..), Builder, showbPrec1, showbUnaryWith) #include "inline.h" -- | Convert a 'Tagged' value to a 'Builder' with the given show function and precedence. -- -- /Since: 2/ showbTaggedPrecWith :: (Int -> b -> Builder) -> Int -> Tagged s b -> Builder showbTaggedPrecWith sp p (Tagged b) = showbUnaryWith sp "Tagged" p b {-# INLINE showbTaggedPrecWith #-} instance TextShow b => TextShow (Tagged s b) where showbPrec = showbPrec1 INLINE_INST_FUN(showbPrec) instance TextShow1 (Tagged s) where showbPrecWith = showbTaggedPrecWith INLINE_INST_FUN(showbPrecWith) instance TextShow2 Tagged where showbPrecWith2 _ = showbTaggedPrecWith INLINE_INST_FUN(showbPrecWith2)