-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A writer monad for multi-line string literals
--   
--   <a>https://github.com/sol/stringbuilder#readme</a>
@package stringbuilder
@version 0.5.1


-- | The <a>build</a> function can be used to construct multi-line string
--   literals in a monadic way:
--   
--   <pre>
--   {-# LANGUAGE OverloadedStrings #-}
--   
--   import Data.String.Builder
--   
--   mystring :: String
--   mystring = build $ do
--     "foo"
--     "bar"
--     "baz"
--   </pre>
module Data.String.Builder

-- | Run a builder.
build :: Builder -> String

-- | Add a literal string.
literal :: String -> Builder
type Builder = BuilderM ()

-- | A writer monad for string literals.
data BuilderM a
instance GHC.Internal.Base.Applicative Data.String.Builder.BuilderM
instance GHC.Internal.Base.Functor Data.String.Builder.BuilderM
instance (a GHC.Types.~ ()) => GHC.Internal.Data.String.IsString (Data.String.Builder.BuilderM a)
instance GHC.Internal.Base.Monad Data.String.Builder.BuilderM
instance GHC.Internal.Base.Monoid Data.String.Builder.Builder
instance GHC.Internal.Base.Semigroup Data.String.Builder.Builder
