type date = {year : int;month : int;day : int;
}val is_leap_year : int -> boolval days_in_month : int -> int -> intval is_valid : date -> boolval days_from_civil : date -> intval civil_from_days : int -> dateval month_name : int -> stringval weekday_name : int -> stringval to_string : date -> string