{-# LANGUAGE TypeOperators #-}
module Text.Format.Internal
( (:=) (..)
, ferror
, errorArgFmt
, errorCloseTag
, errorTypeFmt
, errorMissingArg
) where
infixr 6 :=
data (:=) a = String := a
ferror :: String -> a
ferror s = errorWithoutStackTrace $ "format: " ++ s
errorArgFmt :: String -> a
errorArgFmt cs = ferror $ "bad arg format: " ++ cs
errorCloseTag :: a
errorCloseTag = ferror $ "close tag '}' missing"
errorTypeFmt :: String -> String -> a
errorTypeFmt ts cs = ferror $ ts ++ " not allowed for " ++ cs ++ " type(s)"
errorMissingArg :: a
errorMissingArg = ferror "argument missing"