class
	TIME_DURATION

General
	cluster: time
	description: "Durations of time"
	create: make_by_seconds, make_fine, make_by_fine_seconds, make

Ancestors
	DOUBLE_MATH
	DURATION*
	TIME_MEASUREMENT*

Queries
	canonical: BOOLEAN
	Date_time_tools: DATE_TIME_TOOLS
	default_format_string: STRING_8
	fine_second: REAL_64
	fine_seconds_count: REAL_64
	fractional_second: REAL_64
	hour: INTEGER_32
	Hours_in_day: INTEGER_32
	infix "+" (other: [like Current] TIME_DURATION): [like Current] TIME_DURATION
	infix "-" (other: [like Current] TIME_DURATION): [like Current] TIME_DURATION
	infix "<" (other: [like Current] TIME_DURATION): BOOLEAN
	infix "<=" (other: [like Current] TIME_DURATION): BOOLEAN
	infix ">" (other: [like Current] TIME_DURATION): BOOLEAN
	infix ">=" (other: [like Current] TIME_DURATION): BOOLEAN
	is_equal (other: [like Current] TIME_DURATION): BOOLEAN
	is_negative: BOOLEAN
	is_positive: BOOLEAN
	is_zero: BOOLEAN
	minute: INTEGER_32
	Minutes_in_hour: INTEGER_32
	prefix "+": [like Current] TIME_DURATION
	prefix "-": [like Current] TIME_DURATION
	second: INTEGER_32
	seconds_count: INTEGER_32
	Seconds_in_day: INTEGER_32
	Seconds_in_hour: INTEGER_32
	Seconds_in_minute: INTEGER_32
	time_default_format_string: STRING_8
	time_modulo_day: [like Current] TIME_DURATION
	to_canonical: [like Current] TIME_DURATION
	to_days: INTEGER_32
	Zero: TIME_DURATION

Commands
	fine_second_add (s: REAL_64)
	hour_add (h: INTEGER_32)
	make (h, m, s: INTEGER_32)
	make_by_fine_seconds (s: REAL_64)
	make_by_seconds (s: INTEGER_32)
	make_fine (h, m: INTEGER_32; s: REAL_64)
	minute_add (m: INTEGER_32)
	second_add (s: INTEGER_32)
	set_fine_second (s: REAL_64)
	set_fractionals (f: REAL_64)
	set_hour (h: INTEGER_32)
	set_minute (m: INTEGER_32)
	set_second (s: INTEGER_32)

Constraints
	fractionals large enough
	fractionals small enough
	fractional and second same sign
	equal signs