    class
    	ARRAY2 [G]

    General
    	cluster: base
    	description: "Two-dimensional arrays"
    	create: make

    Ancestors
    	ARRAY [G]

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

    Commands
    	automatic_grow
    	clear_all
    	compare_objects
    	compare_references
    	conservative_resize (min_index, max_index: INTEGER_32)
    	copy (other: [like Current] ARRAY2 [G])
    	discard_items
    	do_all (action: PROCEDURE [ANY, TUPLE [G]])
    	do_if (action: PROCEDURE [ANY, TUPLE [G]]; test: FUNCTION [ANY, TUPLE [G], BOOLEAN])
    	enter (v: [like array_item] G; i: INTEGER_32)
    	fill (other: CONTAINER [G])
    	force (v: [like item] G; row, column: INTEGER_32)
    	grow (i: INTEGER_32)
    	initialize (v: G)
    	make (nb_rows, nb_columns: INTEGER_32)
    	make_from_array (a: ARRAY [G])
    	make_from_cil (na: NATIVE_ARRAY [[like array_item] G])
    	prune_all (v: G)
    	put (v: [like item] G; row, column: INTEGER_32)
    	resize (nb_rows, nb_columns: INTEGER_32)
    	subcopy (other: ARRAY [[like array_item] G]; start_pos, end_pos, index_pos: INTEGER_32)
    	wipe_out

    Constraints
    	items number