12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182open!ImportmoduletypeMonth=sigtypet=|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec[@@derivingbin_io,hash,equal,quickcheck,sexp,variants]includeComparable.S_binablewithtypet:=tincludeHashable.S_binablewithtypet:=t(** [of_string s] accepts three-character abbreviations with three capitalizations
(e.g. Jan, JAN, and jan). *)includeStringable.Swithtypet:=tvalall:tlist(** [of_int i] returns the [i]th month if [i] is in 1, 2, ... , 12. Otherwise it
returns [None]. *)valof_int:int->toptionvalof_int_exn:int->t(** [to_int t] returns an int in 1, 2, ... 12. *)valto_int:t->int(** [shift t i] goes forward (or backward) the specified number of months. *)valshift:t->int->tmoduleExport:sigtypemonth=t=|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec[@@deprecated"[since 2016-06] no longer needed since ocaml is now better at inferring the \
module where a constructor is defined"]endmoduleStable:sigmoduleV1:sigtypenonrect=t=|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec[@@derivingsexp,bin_io,compare,hash,equal]includeStable_module_types.S0withtypecomparator_witness=comparator_witnessandtypet:=tendendend