{-# LANGUAGE CPP #-} {-# LANGUAGE TemplateHaskell #-} {-# OPTIONS_GHC -fno-warn-orphans #-} {-| Module: Text.Show.Text.Data.Semigroup Copyright: (C) 2014-2015 Ryan Scott License: BSD-style (see the file LICENSE) Maintainer: Ryan Scott Stability: Experimental Portability: GHC Monomorphic 'Show' functions for @Semigroup@ data types. /Since: 0.1/ -} module Text.Show.Text.Data.Semigroup ( showbMinPrec , showbMaxPrec , showbFirstPrec , showbLastPrec , showbWrappedMonoidPrec , showbOptionPrec , showbArgPrec ) where import Data.Semigroup (Min, Max, First, Last, WrappedMonoid, Option, Arg) import Prelude hiding (Show) import Text.Show.Text (Show(showbPrec), Show1(showbPrec1), Builder) import Text.Show.Text.TH (deriveShowPragmas, defaultInlineShowbPrec) #include "inline.h" -- | Convert a 'Min' value to a 'Builder' with the given precedence. -- -- /Since: 0.1/ showbMinPrec :: Show a => Int -> Min a -> Builder showbMinPrec = showbPrec {-# INLINE showbMinPrec #-} -- | Convert a 'Max' value to a 'Builder' with the given precedence. -- -- /Since: 0.1/ showbMaxPrec :: Show a => Int -> Max a -> Builder showbMaxPrec = showbPrec {-# INLINE showbMaxPrec #-} -- | Convert a 'First' value to a 'Builder' with the given precedence. -- -- /Since: 0.1/ showbFirstPrec :: Show a => Int -> First a -> Builder showbFirstPrec = showbPrec {-# INLINE showbFirstPrec #-} -- | Convert a 'Last' value to a 'Builder' with the given precedence. -- -- /Since: 0.1/ showbLastPrec :: Show a => Int -> Last a -> Builder showbLastPrec = showbPrec {-# INLINE showbLastPrec #-} -- | Convert a 'WrappedMonoid' to a 'Builder' with the given precedence. -- -- /Since: 0.1/ showbWrappedMonoidPrec :: Show m => Int -> WrappedMonoid m -> Builder showbWrappedMonoidPrec = showbPrec {-# INLINE showbWrappedMonoidPrec #-} -- | Convert an 'Option' value to a 'Builder' with the given precedence. -- -- /Since: 0.1/ showbOptionPrec :: Show a => Int -> Option a -> Builder showbOptionPrec = showbPrec {-# INLINE showbOptionPrec #-} -- | Convert an 'Arg' value to a 'Builder' with the given precedence. -- -- /Since: 0.3/ showbArgPrec :: (Show a, Show b) => Int -> Arg a b -> Builder showbArgPrec = showbPrec {-# INLINE showbArgPrec #-} $(deriveShowPragmas defaultInlineShowbPrec ''Min) $(deriveShowPragmas defaultInlineShowbPrec ''Max) $(deriveShowPragmas defaultInlineShowbPrec ''First) $(deriveShowPragmas defaultInlineShowbPrec ''Last) $(deriveShowPragmas defaultInlineShowbPrec ''WrappedMonoid) $(deriveShowPragmas defaultInlineShowbPrec ''Option) $(deriveShowPragmas defaultInlineShowbPrec ''Arg) instance Show1 Min where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1) instance Show1 Max where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1) instance Show1 First where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1) instance Show1 Last where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1) instance Show1 WrappedMonoid where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1) instance Show1 Option where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1) instance Show a => Show1 (Arg a) where showbPrec1 = showbPrec INLINE_INST_FUN(showbPrec1)