class
	ACTION_SEQUENCE [EVENT_DATA -> TUPLE create make end]

General
	cluster: base.event
	description: "A sequence of actions to be performed on `call'"
	keywords: "event, action"
	create: make, default_create

Ancestors
	ARRAYED_LIST [G]

Action sequences
	duplicate (n: INTEGER): [like Current] ACTION_SEQUENCE [EVENT_DATA]

Queries
	infix "@" (i: INTEGER): PROCEDURE [ANY, EVENT_DATA]
	after: BOOLEAN
	before: BOOLEAN
	Blocked_state: INTEGER
	call_is_underway: BOOLEAN
	capacity: INTEGER
	changeable_comparison_criterion: BOOLEAN
	count: INTEGER
	cursor: CURSOR
	dummy_event_data: EVENT_DATA
	empty_actions: ARRAYED_LIST [PROCEDURE [ANY, TUPLE]]
	event_data_names: ARRAY [STRING]
	exhausted: BOOLEAN
	Extendible: BOOLEAN
	first: PROCEDURE [ANY, EVENT_DATA]
	for_all (test: FUNCTION [ANY, TUPLE [PROCEDURE [ANY, EVENT_DATA]], BOOLEAN]): BOOLEAN
	full: BOOLEAN
	has (v: [like item] PROCEDURE [ANY, EVENT_DATA]): BOOLEAN
	i_th (i: INTEGER): PROCEDURE [ANY, EVENT_DATA]
	index: INTEGER
	index_of (v: [like item] PROCEDURE [ANY, EVENT_DATA]; i: INTEGER): INTEGER
	index_set: INTEGER_INTERVAL
	is_empty: BOOLEAN
	is_equal (other: [like Current] ACTION_SEQUENCE [EVENT_DATA]): BOOLEAN
	is_inserted (v: PROCEDURE [ANY, EVENT_DATA]): BOOLEAN
	isfirst: BOOLEAN
	islast: BOOLEAN
	item: [like first] PROCEDURE [ANY, EVENT_DATA]
	last: [like first] PROCEDURE [ANY, EVENT_DATA]
	linear_representation: LINEAR [PROCEDURE [ANY, EVENT_DATA]]
	name: STRING
	Normal_state: INTEGER
	not_empty_actions: ARRAYED_LIST [PROCEDURE [ANY, TUPLE]]
	object_comparison: BOOLEAN
	occurrences (v: [like item] PROCEDURE [ANY, EVENT_DATA]): INTEGER
	off: BOOLEAN
	Paused_state: INTEGER
	prunable: BOOLEAN
	readable: BOOLEAN
	sequential_occurrences (v: PROCEDURE [ANY, EVENT_DATA]): INTEGER
	state: INTEGER
	there_exists (test: FUNCTION [ANY, TUPLE [PROCEDURE [ANY, EVENT_DATA]], BOOLEAN]): BOOLEAN
	valid_cursor (p: CURSOR): BOOLEAN
	valid_cursor_index (i: INTEGER): BOOLEAN
	valid_index (i: INTEGER): BOOLEAN
	writable: BOOLEAN

Commands
	abort
	append (s: SEQUENCE [PROCEDURE [ANY, EVENT_DATA]])
	arrayed_list_make (n: INTEGER)
	back
	block
	call (event_data: EVENT_DATA)
	compare_objects
	compare_references
	copy (other: [like Current] ACTION_SEQUENCE [EVENT_DATA])
	do_all (action: PROCEDURE [ANY, TUPLE [PROCEDURE [ANY, EVENT_DATA]]])
	do_if (action: PROCEDURE [ANY, TUPLE [PROCEDURE [ANY, EVENT_DATA]]]; test: FUNCTION [ANY, TUPLE [PROCEDURE [ANY, EVENT_DATA]], BOOLEAN])
	extend (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	fill (other: CONTAINER [PROCEDURE [ANY, EVENT_DATA]])
	finish
	flush
	force (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	forth
	go_i_th (i: INTEGER)
	go_to (p: CURSOR)
	make_filled (n: INTEGER)
	make_from_array (a: ARRAY [PROCEDURE [ANY, EVENT_DATA]])
	merge_left (other: ARRAYED_LIST [PROCEDURE [ANY, EVENT_DATA]])
	merge_right (other: ARRAYED_LIST [PROCEDURE [ANY, EVENT_DATA]])
	move (i: INTEGER)
	pause
	prune (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	prune_all (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	prune_when_called (an_action: [like item] PROCEDURE [ANY, EVENT_DATA])
	put (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	put_front (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	put_i_th (v: [like item] PROCEDURE [ANY, EVENT_DATA]; i: INTEGER)
	put_left (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	put_right (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	remove
	remove_left
	remove_right
	replace (v: [like first] PROCEDURE [ANY, EVENT_DATA])
	resume
	search (v: [like item] PROCEDURE [ANY, EVENT_DATA])
	start
	swap (i: INTEGER)
	wipe_out

Constraints
	is aborted stack not void
	call buffer not void
	not has void
	valid state
	call buffer consistent
	not empty actions not void
	empty actions not void