{-# LANGUAGE OverloadedStrings #-} 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 <+> ")"