    class
    	EV_RECTANGLE

    General
    	cluster: interface
    	description: "Rectangular areas."
    	create: make, set, default_create

    Ancestors
    	ANY

    Queries
    	bottom: INTEGER_32
    	has (c: EV_COORDINATE): BOOLEAN
    	has_x_y (a_x, a_y: INTEGER_32): BOOLEAN
    	height: INTEGER_32
    	intersects (other: [like Current] EV_RECTANGLE): BOOLEAN
    	left: INTEGER_32
    	lower_left: EV_COORDINATE
    	lower_right: EV_COORDINATE
    	out: STRING_8
    	right: INTEGER_32
    	top: INTEGER_32
    	upper_left: EV_COORDINATE
    	upper_right: EV_COORDINATE
    	width: INTEGER_32
    	x: INTEGER_32
    	y: INTEGER_32

    Commands
    	grow_bottom (i: INTEGER_32)
    	grow_left (i: INTEGER_32)
    	grow_right (i: INTEGER_32)
    	grow_top (i: INTEGER_32)
    	include (a_x, a_y: INTEGER_32)
    	include_point (c: EV_COORDINATE)
    	merge (other: [like Current] EV_RECTANGLE)
    	move (a_x, a_y: INTEGER_32)
    	move_and_resize (a_x, a_y, a_width, a_height: INTEGER_32)
    	resize (a_width, a_height: INTEGER_32)
    	set_bottom (i: INTEGER_32)
    	set_height (new_height: INTEGER_32)
    	set_left (i: INTEGER_32)
    	set_right (i: INTEGER_32)
    	set_top (i: INTEGER_32)
    	set_width (new_width: INTEGER_32)
    	set_x (new_x: INTEGER_32)
    	set_y (new_y: INTEGER_32)

    Constraints
    	width positive
    	height positive