module Decoder: sig .. end
val p_message : (MrMime_header.header *
        (MrMime_message.encoding, MrMime_message.content) MrMime_message.message)
       MrMime_parser.t
 : (MrMime_header.header * MrMime_content.t *
        [ `Bcc of Rfc5322.address list
        | `Cc of Rfc5322.address list
        | `Comments of Rfc5322.unstructured
        | `Content of string * Rfc5322.unstructured
        | `ContentDescription of Rfc5322.unstructured
        | `ContentEncoding of Rfc2045.mechanism
        | `ContentID of Rfc822.msg_id
        | `ContentType of Rfc2045.content
        | `Date of Rfc5322.date
        | `Field of string * Rfc5322.unstructured
        | `From of Rfc5322.mailbox list
        | `InReplyTo of Rfc5322.phrase_or_msg_id list
        | `Keywords of Rfc5322.phrase list
        | `MessageID of Rfc822.msg_id
        | `MimeVersion of Rfc2045.version
        | `References of Rfc5322.phrase_or_msg_id list
        | `ReplyTo of Rfc5322.address list
        | `ResentBcc of Rfc5322.address list
        | `ResentCc of Rfc5322.address list
        | `ResentDate of Rfc5322.date
        | `ResentFrom of Rfc5322.mailbox list
        | `ResentMessageID of Rfc822.msg_id
        | `ResentReplyTo of Rfc5322.address list
        | `ResentSender of Rfc5322.mailbox
        | `ResentTo of Rfc5322.address list
        | `Sender of Rfc5322.mailbox
        | `Skip of string
        | `Subject of Rfc5322.unstructured
        | `To of Rfc5322.address list
        | `Trace of
            (Rfc822.local * (Rfc5322.domain * Rfc5322.domain list)) option *
            ([ `Addr of Rfc822.local * (Rfc5322.domain * Rfc5322.domain list)
             | `Domain of Rfc5322.domain
             | `Word of Rfc822.word ] list * Rfc5322.date option)
            list
        | `Unsafe of string * Rfc5322.unstructured ] list)
       MrMime_parser.t
val p_first_part : MrMime_content.t ->
       (MrMime_content.t *
        [ `Bcc of Rfc5322.address list
        | `Cc of Rfc5322.address list
        | `Comments of Rfc5322.unstructured
        | `Content of string * Rfc5322.unstructured
        | `ContentDescription of Rfc5322.unstructured
        | `ContentEncoding of Rfc2045.mechanism
        | `ContentID of Rfc822.msg_id
        | `ContentType of Rfc2045.content
        | `Date of Rfc5322.date
        | `Field of string * Rfc5322.unstructured
        | `From of Rfc5322.mailbox list
        | `InReplyTo of Rfc5322.phrase_or_msg_id list
        | `Keywords of Rfc5322.phrase list
        | `MessageID of Rfc822.msg_id
        | `MimeVersion of Rfc2045.version
        | `References of Rfc5322.phrase_or_msg_id list
        | `ReplyTo of Rfc5322.address list
        | `ResentBcc of Rfc5322.address list
        | `ResentCc of Rfc5322.address list
        | `ResentDate of Rfc5322.date
        | `ResentFrom of Rfc5322.mailbox list
        | `ResentMessageID of Rfc822.msg_id
        | `ResentReplyTo of Rfc5322.address list
        | `ResentSender of Rfc5322.mailbox
        | `ResentTo of Rfc5322.address list
        | `Sender of Rfc5322.mailbox
        | `Skip of string
        | `Subject of Rfc5322.unstructured
        | `To of Rfc5322.address list
        | `Trace of
            (Rfc822.local * (Rfc5322.domain * Rfc5322.domain list)) option *
            ([ `Addr of Rfc822.local * (Rfc5322.domain * Rfc5322.domain list)
             | `Domain of Rfc5322.domain
             | `Word of Rfc822.word ] list * Rfc5322.date option)
            list
        | `Unsafe of string * Rfc5322.unstructured ] list)
       MrMime_parser.t
val p_next_part : MrMime_content.t ->
       (MrMime_content.t *
        [ `Bcc of Rfc5322.address list
        | `Cc of Rfc5322.address list
        | `Comments of Rfc5322.unstructured
        | `Content of string * Rfc5322.unstructured
        | `ContentDescription of Rfc5322.unstructured
        | `ContentEncoding of Rfc2045.mechanism
        | `ContentID of Rfc822.msg_id
        | `ContentType of Rfc2045.content
        | `Date of Rfc5322.date
        | `Field of string * Rfc5322.unstructured
        | `From of Rfc5322.mailbox list
        | `InReplyTo of Rfc5322.phrase_or_msg_id list
        | `Keywords of Rfc5322.phrase list
        | `MessageID of Rfc822.msg_id
        | `MimeVersion of Rfc2045.version
        | `References of Rfc5322.phrase_or_msg_id list
        | `ReplyTo of Rfc5322.address list
        | `ResentBcc of Rfc5322.address list
        | `ResentCc of Rfc5322.address list
        | `ResentDate of Rfc5322.date
        | `ResentFrom of Rfc5322.mailbox list
        | `ResentMessageID of Rfc822.msg_id
        | `ResentReplyTo of Rfc5322.address list
        | `ResentSender of Rfc5322.mailbox
        | `ResentTo of Rfc5322.address list
        | `Sender of Rfc5322.mailbox
        | `Skip of string
        | `Subject of Rfc5322.unstructured
        | `To of Rfc5322.address list
        | `Trace of
            (Rfc822.local * (Rfc5322.domain * Rfc5322.domain list)) option *
            ([ `Addr of Rfc822.local * (Rfc5322.domain * Rfc5322.domain list)
             | `Domain of Rfc5322.domain
             | `Word of Rfc822.word ] list * Rfc5322.date option)
            list
        | `Unsafe of string * Rfc5322.unstructured ] list)
       MrMime_parser.t
val p_bound_of_content : MrMime_content.t -> unit MrMime_parser.t * unit MrMime_parser.t
val p_store_part : MrMime_content.t ->
       MrMime_content.t ->
       [ `End of MrMime_message.encoding option
       | `Next of MrMime_message.encoding option ] MrMime_parser.t
val p_discard_part : MrMime_content.t -> [ `End | `Next ] MrMime_parser.t
val p_end_of_part : MrMime_content.t -> [ `End | `Next ] MrMime_parser.t