text-show-instances-0.3.0.1: src/Text/Show/Text/Control/Applicative/Trans.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-|
Module: Text.Show.Text.Control.Applicative.Trans
Copyright: (C) 2014-2015 Ryan Scott
License: BSD-style (see the file LICENSE)
Maintainer: Ryan Scott
Stability: Experimental
Portability: GHC
Monomorphic 'Show' functions for applicative functor transformers.
/Since: 0.1/
-}
module Text.Show.Text.Control.Applicative.Trans (
showbBackwardsPrec
, showbLiftPrec
) where
import Control.Applicative.Backwards (Backwards(..))
import Control.Applicative.Lift (Lift(..))
import Prelude hiding (Show)
import Text.Show.Text (Show(showbPrec), Show1(showbPrec1), Builder,
showbUnary, showbUnary1)
#include "inline.h"
-- | Convert a 'Backwards' value to a 'Builder' with the given precedence.
--
-- /Since: 0.1/
showbBackwardsPrec :: (Show1 f, Show a) => Int -> Backwards f a -> Builder
showbBackwardsPrec p (Backwards x) = showbUnary1 "Backwards" p x
{-# INLINE showbBackwardsPrec #-}
-- | Convert a 'Lift' value to a 'Builder' with the given precedence.
--
-- /Since: 0.1/
showbLiftPrec :: (Show1 f, Show a) => Int -> Lift f a -> Builder
showbLiftPrec p (Pure x) = showbUnary "Pure" p x
showbLiftPrec p (Other y) = showbUnary1 "Other" p y
{-# INLINE showbLiftPrec #-}
instance (Show1 f, Show a) => Show (Backwards f a) where
showbPrec = showbBackwardsPrec
INLINE_INST_FUN(showbPrec)
instance Show1 f => Show1 (Backwards f) where
showbPrec1 = showbBackwardsPrec
INLINE_INST_FUN(showbPrec1)
instance (Show1 f, Show a) => Show (Lift f a) where
showbPrec = showbLiftPrec
INLINE_INST_FUN(showbPrec)
instance Show1 f => Show1 (Lift f) where
showbPrec1 = showbLiftPrec
INLINE_INST_FUN(showbPrec1)