alms-0.4.10: src/Message/AST.hs
{-# LANGUAGE
EmptyDataDecls,
GADTs
#-}
module Message.AST (
Message(..),
V, H, MessageV, MessageH,
StackStyle(..)
) where
import PprClass
-- | Simple message markup
data Message d where
Words :: String -> Message d
Flow :: [Message H] -> Message d
Exact :: String -> Message d
Surround :: String -> String -> Message d -> Message d
Quote :: Message d -> Message d
Block :: Message H -> Message V
Stack :: StackStyle -> [Message V] -> Message V
Table :: [(String, Message V)] -> Message V
Indent :: Message V -> Message V
Printable :: Ppr a => a -> Message d
Showable :: Show a => a -> Message d
AntiMsg :: String -> String -> Message d
data V
data H
-- | Vertical mode message
type MessageV = Message V
-- | Horizontal mode message
type MessageH = Message H
-- | Types of lists
data StackStyle
= Numbered
| Bulleted
| Separated
| Broken