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 : day option;     date : int * month * int;     time : int * int * int option;     zone : zone;   }   val pp_zone : Format.formatter -> zone -> unit   val pp_month : Format.formatter -> month -> unit   val pp_day : Format.formatter -> day -> unit   val pp : Format.formatter -> date -> unit   module Encoder :     sig       val w_day :         (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 :         (zone,          ([> `Partial of Bytes.t * int * int * (int -> 'a) ] as 'a)          Encoder.partial)         Wrap.k1       val w_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 : month MrMime_parser.t       val p_day_of_week : day MrMime_parser.t       val p_zone : zone MrMime_parser.t       val p_time : ((int * int * int option) * zone) MrMime_parser.t       val p_date : (int * month * int) MrMime_parser.t       val p_date_time : date MrMime_parser.t     end   val to_string : date -> string   val of_string : ?chunk:int -> string -> date option   val of_string_raw :     ?chunk:int -> string -> int -> int -> (date * int) option   val equal : date -> date -> bool end