module Chatty.Extended.Printer where import Chatty.Printer data Tone = Green | Red | Yellow | Blue | Black | White | Cyan | Magenta data Colour = Dull Tone | Vivid Tone class MonadPrinter m => ExtendedPrinter m where ebracket :: Colour -> m a -> m a ebracket c m = do estart c; a <- m; efin; return a eprint :: Colour -> String -> m () eprint c = ebracket c . mprint eprintLn :: Colour -> String -> m () eprintLn c s = eprint c s >> mprintLn "" estart :: Colour -> m () efin :: m ()