    class
    	ECOM_ARRAY [G]

    General
    	cluster: structures
    	description: "Multi-dimensional array"
    	create: make_from_array, make_empty, make

    Ancestors
    	ANY
    	ARRAY [G]

    Queries
    	are_element_counts_consistent: BOOLEAN
    	are_element_counts_valid (some_element_counts: ARRAY [INTEGER_32]): BOOLEAN
    	are_indices_large_enough (some_indices: ARRAY [INTEGER_32]): BOOLEAN
    	are_indices_valid (some_indices: ARRAY [INTEGER_32]): BOOLEAN
    	area: SPECIAL [G]
    	array_item (i: INTEGER_32): G
    	changeable_comparison_criterion: BOOLEAN
    	count: INTEGER_32
    	dimension_count: INTEGER_32
    	element_counts: ARRAY [INTEGER_32]
    	is_equal (other: [like Current] ECOM_ARRAY [G]): BOOLEAN
    	item (some_indices: ARRAY [INTEGER_32]): G
    	lower_indices: ARRAY [INTEGER_32]
    	object_comparison: BOOLEAN
    	total_count (some_element_counts: ARRAY [INTEGER_32]): INTEGER_32
    	upper_indices: ARRAY [INTEGER_32]
    	valid_index (i: INTEGER_32): BOOLEAN

    Commands
    	compare_objects
    	compare_references
    	copy (other: [like Current] ECOM_ARRAY [G])
    	discard_items
    	force (v: [like item] G; some_indices: ARRAY [INTEGER_32])
    	initialize (v: G)
    	put (v: [like item] G; some_indices: ARRAY [INTEGER_32])
    	resize (n_upper_indices: ARRAY [INTEGER_32])

    Constraints
    	consistent upper indices
    	consistent lower indices
    	consistent element counts
    	consistent size
    	non negative count