sig
  val p_message :
    (MrMime_header.header *
     (MrMime_message.encoding, MrMime_message.content) MrMime_message.message)
    MrMime_parser.t
  val p_header :
    (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
end