class
	DATE_SET

General
	cluster: time
	description: "Sets of compactly coded dates"
	create: make

Ancestors
	ARRAY [G]

Queries
	additional_space: INTEGER_32
	all_default: BOOLEAN
	area: SPECIAL [INTEGER_32]
	capacity: INTEGER_32
	changeable_comparison_criterion: BOOLEAN
	count: INTEGER_32
	entry (i: INTEGER_32): INTEGER_32
	extendible: BOOLEAN
	for_all (test: FUNCTION [ANY, TUPLE [INTEGER_32], BOOLEAN]): BOOLEAN
	full: BOOLEAN
	Growth_percentage: INTEGER_32
	has (v: INTEGER_32): BOOLEAN
	index_set: INTEGER_INTERVAL
	infix "@" (i: INTEGER_32): INTEGER_32
	is_empty: BOOLEAN
	is_equal (other: [like Current] DATE_SET): BOOLEAN
	is_inserted (v: INTEGER_32): BOOLEAN
	item (i: INTEGER_32): DATE
	item_array (i: INTEGER_32): INTEGER_32
	last: INTEGER_32
	linear_representation: LINEAR [INTEGER_32]
	lower: INTEGER_32
	Minimal_increase: INTEGER_32
	object_comparison: BOOLEAN
	occurrences (v: INTEGER_32): INTEGER_32
	prunable: BOOLEAN
	resizable: BOOLEAN
	same_items (other: [like Current] DATE_SET): BOOLEAN
	subarray (start_pos, end_pos: INTEGER_32): ARRAY [INTEGER_32]
	there_exists (test: FUNCTION [ANY, TUPLE [INTEGER_32], BOOLEAN]): BOOLEAN
	to_c: ANY
	to_cil: NATIVE_ARRAY [INTEGER_32]
	to_special: SPECIAL [INTEGER_32]
	upper: INTEGER_32
	valid_index (i: INTEGER_32): BOOLEAN
	valid_index_set: BOOLEAN

Commands
	automatic_grow
	clear_all
	compare_objects
	compare_references
	conservative_resize (min_index, max_index: INTEGER_32)
	copy (other: [like Current] DATE_SET)
	discard_items
	do_all (action: PROCEDURE [ANY, TUPLE [INTEGER_32]])
	do_if (action: PROCEDURE [ANY, TUPLE [INTEGER_32]]; test: FUNCTION [ANY, TUPLE [INTEGER_32], BOOLEAN])
	enter (v: [like item_array] INTEGER_32; i: INTEGER_32)
	fill (other: CONTAINER [INTEGER_32])
	force (v: [like item_array] INTEGER_32; i: INTEGER_32)
	grow (i: INTEGER_32)
	make (n: INTEGER_32)
	make_array (min_index, max_index: INTEGER_32)
	make_from_array (a: ARRAY [INTEGER_32])
	make_from_cil (na: NATIVE_ARRAY [[like item_array] INTEGER_32])
	prune_all (v: INTEGER_32)
	put (d: DATE)
	put_array (v: [like item_array] INTEGER_32; i: INTEGER_32)
	subcopy (other: ARRAY [[like item_array] INTEGER_32]; start_pos, end_pos, index_pos: INTEGER_32)

Constraints
	last non negative
	last small enough