layout-0.0.0.0: src/Text/Layout/Class.hs
module Text.Layout.Class where
import Data.List
import Data.Monoid
class (Monoid format) => IsFormat format where
formatVerbatim :: String -> format
fromShow :: (Show a) => a -> format
fromShow = formatVerbatim . show
class (IsFormat format) => Layout a format where
format :: a -> format
formatList :: [a] -> format -- required to implement exception for String
formatList as = formatVerbatim "[" `mappend`
(mconcat $ intersperse (formatVerbatim ", ") $ map format as) `mappend`
formatVerbatim "]"