module Data.Aviation.Casr.Logbook.Printer.Markdown ( Markdown(..) , printMarkdown , writeMarkdownFile ) where class Markdown s where markdown :: s -> String instance Markdown Char where markdown = pure instance Markdown Int where markdown = show instance Markdown a => Markdown [a] where markdown = (=<<) markdown printMarkdown :: Markdown s => s -> IO () printMarkdown = putStrLn . markdown writeMarkdownFile :: Markdown s => FilePath -> s -> IO () writeMarkdownFile p = writeFile p . markdown