sig   type day = Rfc5322.day = Mon | Tue | Wed | Thu | Fri | Sat | Sun   type month =     Rfc5322.month =       Jan     | Feb     | Mar     | Apr     | May     | Jun     | Jul     | Aug     | Sep     | Oct     | Nov     | Dec   type zone =     Rfc5322.zone =       UT     | GMT     | EST     | EDT     | CST     | CDT     | MST     | MDT     | PST     | PDT     | Military_zone of char     | TZ of int   type date =     Rfc5322.date = {     day : MrMime_date.day option;     date : int * MrMime_date.month * int;     time : int * int * int option;     zone : MrMime_date.zone;   }   val pp_zone : Format.formatter -> MrMime_date.zone -> unit   val pp_month : Format.formatter -> MrMime_date.month -> unit   val pp_day : Format.formatter -> MrMime_date.day -> unit   val pp : Format.formatter -> MrMime_date.date -> unit   module Encoder :     sig       val w_day :         (MrMime_date.day,          ([> `Partial of Bytes.t * int * int * (int -> 'a) ] as 'a)          Encoder.partial)         Wrap.k1       val w_time :         (int * int * int option,          ([> `Partial of Bytes.t * int * int * (int -> 'a) ] as 'a)          Encoder.partial)         Wrap.k1       val w_zone :         (MrMime_date.zone,          ([> `Partial of Bytes.t * int * int * (int -> 'a) ] as 'a)          Encoder.partial)         Wrap.k1       val w_date :         (MrMime_date.date,          ([> `Partial of Bytes.t * int * int * (int -> 'a) ] as 'a)          Encoder.partial)         Wrap.k1     end   module Decoder :     sig       val p_hour : int MrMime_parser.t       val p_minute : int MrMime_parser.t       val p_second : int MrMime_parser.t       val p_year : int MrMime_parser.t       val p_day : int MrMime_parser.t       val p_month : MrMime_date.month MrMime_parser.t       val p_day_of_week : MrMime_date.day MrMime_parser.t       val p_zone : MrMime_date.zone MrMime_parser.t       val p_time :         ((int * int * int option) * MrMime_date.zone) MrMime_parser.t       val p_date : (int * MrMime_date.month * int) MrMime_parser.t       val p_date_time : MrMime_date.date MrMime_parser.t     end   val to_string : MrMime_date.date -> string   val of_string : ?chunk:int -> string -> MrMime_date.date option   val of_string_raw :     ?chunk:int -> string -> int -> int -> (MrMime_date.date * int) option   val equal : MrMime_date.date -> MrMime_date.date -> bool end