{-# LANGUAGE MagicHash #-} -- | -- Module : Data.Text.Internal.Builder.Functions -- Copyright : (c) 2011 MailRank, Inc. -- -- License : BSD-style -- Maintainer : bos@serpentine.com -- Stability : experimental -- Portability : GHC -- -- /Warning/: this is an internal module, and does not have a stable -- API or name. Functions in this module may not check or enforce -- preconditions expected by public modules. Use at your own risk! -- -- Useful functions and combinators. module Data.Text.Internal.Builder.Functions ( (<>) , i2d ) where import Data.Monoid (mappend) import Data.Text.Lazy.Builder (Builder) import GHC.Base (chr#,ord#,(+#),Int(I#),Char(C#)) import Prelude () -- | Unsafe conversion for decimal digits. {-# INLINE i2d #-} i2d :: Int -> Char i2d :: Int -> Char i2d (I# Int# i#) = Char# -> Char C# (Int# -> Char# chr# (Char# -> Int# ord# Char# '0'# Int# -> Int# -> Int# +# Int# i#)) -- | The normal 'mappend' function with right associativity instead of -- left. (<>) :: Builder -> Builder -> Builder <> :: Builder -> Builder -> Builder (<>) = forall a. Monoid a => a -> a -> a mappend {-# INLINE (<>) #-} infixr 4 <>