    class
    	DATE

    General
    	cluster: time
    	description: "Absolute dates"
    	create: make_month_day_year, make_by_compact_date, make_from_string, make_from_string_with_base, make_day_month_year, make_from_string_default, make_now, make_by_ordered_compact_date, make_now_utc, make_by_days, make, make_from_string_default_with_base

    Ancestors
    	ABSOLUTE*
    	DATE_VALIDITY_CHECKER
    	DATE_VALUE

    Queries
    	compact_date_valid (c_d: INTEGER_32): BOOLEAN
    	date_default_format_string: STRING_8
    	Date_time_tools: DATE_TIME_TOOLS
    	date_valid (s, code_string: STRING_8): BOOLEAN
    	date_valid_default (s: STRING_8): BOOLEAN
    	date_valid_default_with_base (s: STRING_8; base: INTEGER_32): BOOLEAN
    	date_valid_with_base (s, code_string: STRING_8; base: INTEGER_32): BOOLEAN
    	day: INTEGER_32
    	day_of_january_1st: INTEGER_32
    	day_of_the_week: INTEGER_32
    	days: INTEGER_32
    	days_at_month: INTEGER_32
    	days_from (y: INTEGER_32): INTEGER_32
    	days_in_i_th_month (i, y: INTEGER_32): INTEGER_32
    	Days_in_leap_year: INTEGER_32
    	days_in_month: INTEGER_32
    	Days_in_non_leap_year: INTEGER_32
    	Days_in_week: INTEGER_32
    	days_in_year: INTEGER_32
    	days_text: ARRAY [STRING_8]
    	default_format_string: STRING_8
    	duration: DATE_DURATION
    	formatted_out (s: STRING_8): STRING_8
    	infix "+" (d: DATE_DURATION): DATE
    	infix "-" (other: [like Current] DATE): INTERVAL [[like Current] DATE]
    	infix "<" (other: [like Current] DATE): BOOLEAN
    	infix "<=" (other: [like Current] DATE): BOOLEAN
    	infix ">" (other: [like Current] DATE): BOOLEAN
    	infix ">=" (other: [like Current] DATE): BOOLEAN
    	is_correct_date (y, m, d: INTEGER_32): BOOLEAN
    	is_equal (other: [like Current] DATE): BOOLEAN
    	is_leap_year (y: INTEGER_32): BOOLEAN
    	leap_year: BOOLEAN
    	long_days_text: ARRAY [STRING_8]
    	long_months_text: ARRAY [STRING_8]
    	max (other: [like Current] DATE): [like Current] DATE
    	Max_weeks_in_year: INTEGER_32
    	min (other: [like Current] DATE): [like Current] DATE
    	Mismatch_information: MISMATCH_INFORMATION
    	month: INTEGER_32
    	Months_in_year: INTEGER_32
    	months_text: ARRAY [STRING_8]
    	ordered_compact_date: INTEGER_32
    	ordered_compact_date_valid (c_d: INTEGER_32): BOOLEAN
    	Origin: DATE
    	out: STRING_8
    	relative_duration (other: [like Current] DATE): DATE_DURATION
    	three_way_comparison (other: [like Current] DATE): INTEGER_32
    	to_date_time: DATE_TIME
    	week_of_year: INTEGER_32
    	year: INTEGER_32
    	year_day: INTEGER_32

    Commands
    	add (d: DATE_DURATION)
    	correct_mismatch
    	day_add (d: INTEGER_32)
    	day_back
    	day_forth
    	make (y, m, d: INTEGER_32)
    	make_by_days (n: INTEGER_32)
    	make_by_ordered_compact_date (c_d: INTEGER_32)
    	make_day_month_year (d, m, y: INTEGER_32)
    	make_from_string (s, code: STRING_8)
    	make_from_string_default (s: STRING_8)
    	make_from_string_default_with_base (s: STRING_8; base: INTEGER_32)
    	make_from_string_with_base (s, code: STRING_8; base: INTEGER_32)
    	make_month_day_year (m, d, y: INTEGER_32)
    	make_now
    	make_now_utc
    	month_add (m: INTEGER_32)
    	month_back
    	month_forth
    	set_date (y, m, d: INTEGER_32)
    	set_day (d: INTEGER_32)
    	set_internal_ordered_compact_date (a_ordered_compact_date: [like ordered_compact_date] INTEGER_32)
    	set_month (m: INTEGER_32)
    	set_year (y: INTEGER_32)
    	year_add (y: INTEGER_32)
    	year_back
    	year_forth
    	year_month_add (y, m: INTEGER_32)

    Constraints
    	day large enough
    	day small enough
    	month large enough
    	month small enough
    	year small enough
    	year non negative