packages feed

MicroHs-0.12.6.1: lib/Data/Text/Lazy/Builder.hs

-- Fake a builder
module Data.Text.Lazy.Builder
   ( Builder
   , LazyTextBuilder
   , toLazyText
   , toLazyTextWith
   , singleton
   , fromText
   , fromLazyText
   , fromString
   , flush
   ) where
import qualified Data.Text as S
import qualified Data.Text.Lazy as L
import Data.String

newtype Builder = B L.Text
  deriving newtype (Eq, Ord, {-Semigroup,-} Monoid, Show, IsString)

-- bug in newtype deriving
instance Semigroup Builder where
  B x <> B y = B (x <> y)

type LazyTextBuilder = Builder

toLazyText :: Builder -> L.Text
toLazyText (B t) = t

toLazyTextWith :: Int -> Builder -> L.Text
toLazyTextWith _ (B t) = t

singleton :: Char -> Builder
singleton c = B (L.singleton c)

fromText :: S.Text -> Builder
fromText = fromLazyText . L.toLazy

fromLazyText :: L.Text -> Builder
fromLazyText t = B t

flush :: Builder
flush = B L.empty