prettyPrintReport :: String
                  -> SMTPReport
                  -> String
prettyPrintReport indentation r = case r of
    SMTPReportInfo     {} -> prettyPrintString   indentation time "INF" (smtpReportReport r)
    SMTPReportError    {} -> prettyPrintString   indentation time "ERR" (smtpReportReport r)
    SMTPReportCommand  {} -> prettyPrintCommand  indentation time       (smtpReportCmd r)
    SMTPReportResponse {} -> prettyPrintResponse indentation time       (smtpReportRespCode r)
  where
    time :: String
    time = timePrint "EPOCH.p6" $ smtpReportDate r
prettyPrintReport :: String
                  -> SMTPReport
                  -> String
prettyPrintReport indentation r = case r of
    SMTPReportInfo     {} -> prettyPrintString   indentation time "INF" (smtpReportReport r)
    SMTPReportError    {} -> prettyPrintString   indentation time "ERR" (smtpReportReport r)
    SMTPReportCommand  {} -> prettyPrintCommand  indentation time       (smtpReportCmd r)
    SMTPReportResponse {} -> prettyPrintResponse indentation time       (smtpReportRespCode r)
  where
    time :: String
    time = timePrint "EPOCH.p6" $ smtpReportDate r
prettyPrintReport indentation r = case r of
    SMTPReportInfo     {} -> prettyPrintString   indentation time "INF" (smtpReportReport r)
    SMTPReportError    {} -> prettyPrintString   indentation time "ERR" (smtpReportReport r)
    SMTPReportCommand  {} -> prettyPrintCommand  indentation time       (smtpReportCmd r)
    SMTPReportResponse {} -> prettyPrintResponse indentation time       (smtpReportRespCode r)
  where
    time :: String
    time = timePrint "EPOCH.p6" $ smtpReportDate r