+ toWash xs
+toWash ((Bold d):xs) = do
+ b (toWash d)
+ toWash xs
+toWash ((Emph d):xs) = do
+ em (toWash d)
+ toWash xs
+toWash ((Underline d):xs) = do
+ u (toWash d)
+ toWash xs
+toWash ((Strike d):xs) = do
+ strike (toWash d)
+ toWash xs
+toWash ((Heading n d):xs) = do
+ heading n $ toWash d
+ toWash xs
+toWash ((Url l):xs) = do
+ hlink (URL {unURL = (l)}) (text $ stripMailto l)
+ toWash xs
+toWash ((Pre s):xs) = do
+ pre $ toWash s
+ toWash xs
+toWash ((List o l):xs) = do
+ listType o $ mapM (\s -> li $ toWash s) l
+ toWash xs
+
+listType True = ol
+listType False = ul
+
+stripMailto ('m':'a':'i':'l':'t':'o':':':xs) = xs
+stripMailto xs = xs