{-|
Module:      TextShow
Copyright:   (C) 2014-2015 Ryan Scott
License:     BSD-style (see the file LICENSE)
Maintainer:  Ryan Scott
Stability:   Provisional
Portability: GHC

Efficiently convert from values to 'Text' via 'Builder's.

/Since: 2/
-}
module TextShow (
      -- * The @TextShow@ classes
      -- ** 'TextShow'
      TextShow(..)
    , showt
    , showtl
    , showtPrec
    , showtlPrec
    , showtList
    , showtlList
    , showbParen
    , showbSpace
      -- ** 'TextShow1'
    , TextShow1(..)
    , showbPrec1
    , showbUnaryWith
      -- ** 'TextShow2'
    , TextShow2(..)
    , showbPrec2
    , showbBinaryWith
      -- * 'Builder's
      -- ** The 'Builder' type
    , Builder
    , toText
    , toLazyText
    , toLazyTextWith
    , toString
      -- ** Constructing 'Builder's
    , singleton
    , fromText
    , fromLazyText
    , fromString
      -- ** Flushing the buffer state
    , flush
      -- ** 'Builder' utility functions
    , lengthB
    , unlinesB
    , unwordsB
      -- * Printing values
    , printT
    , printTL
    , hPrintT
    , hPrintTL
      -- * Conversion between 'TextShow' and string @Show@
    , FromStringShow(..)
    , FromTextShow(..)
    , showsToShowb
    , showbToShows
    ) where

import Data.Text.Lazy.Builder

import Prelude ()

import TextShow.Classes
import TextShow.FromStringTextShow
import TextShow.Instances ()
import TextShow.Utils (toString, toText, lengthB, unlinesB, unwordsB)