module Elm.Common where
import Text.PrettyPrint.Leijen.Text hiding ((<$>), (<>))
import Data.Monoid
import Data.Text (Text)
import qualified Data.Text.Lazy as LT
import Formatting hiding (text)
data Options = Options
{ fieldLabelModifier :: Text -> Text
}
defaultOptions :: Options
defaultOptions = Options {fieldLabelModifier = id}
cr :: Format r r
cr = now "\n"
mintercalate
:: Monoid m
=> m -> [m] -> m
mintercalate _ [] = mempty
mintercalate _ [x] = x
mintercalate seperator (x:xs) = x <> seperator <> mintercalate seperator xs
pprinter :: Doc -> Text
pprinter = LT.toStrict . displayT . renderPretty 0.4 100
stext :: Data.Text.Text -> Doc
stext = text . LT.fromStrict
spaceparens :: Doc -> Doc
spaceparens doc = "(" <+> doc <+> ")"