Skip to content

Commit

Permalink
using the text builder.
Browse files Browse the repository at this point in the history
  • Loading branch information
kazu-yamamoto committed Feb 4, 2011
1 parent 36f0692 commit 9301570
Showing 1 changed file with 3 additions and 12 deletions.
15 changes: 3 additions & 12 deletions src/Builder.hs
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,18 @@ module Builder (
) where

import Data.Monoid
import Data.String
import qualified Data.Text.Lazy as L

data Builder = Builder (L.Text -> L.Text)

instance IsString Builder where
fromString s = Builder (L.pack s +++)

instance Monoid Builder where
mempty = Builder id
mappend (Builder x) (Builder y) = Builder (x . y)
import Data.Text.Lazy.Builder

(+++) :: Monoid m => m -> m -> m
(+++) = mappend
infixr 5 +++

toB :: L.Text -> Builder
toB txt = Builder (txt `L.append`)
toB = fromLazyText

mcatmap :: (a -> Builder) -> [a] -> Builder
mcatmap f = mconcat . map f

build :: Builder -> L.Text
build (Builder f) = f L.empty
build = toLazyText

0 comments on commit 9301570

Please sign in to comment.