    class
    	LINKED_DFA

    General
    	cluster: lex
    	description: "Deterministic finite automata, implemented as lists"
    	create: link_make, make

    Ancestors
    	DFA*
    	LINKED_AUTOMATON [S -> STATE]

    Queries
    	after: BOOLEAN
    	before: BOOLEAN
    	changeable_comparison_criterion: BOOLEAN
    	count: INTEGER_32
    	cursor: LINKED_LIST_CURSOR [STATE_OF_DFA]
    	duplicate (n: INTEGER_32): [like Current] LINKED_DFA
    	exhausted: BOOLEAN
    	Extendible: BOOLEAN
    	find_successor (source, input_doc: INTEGER_32): STATE_OF_DFA
    	first: [like item] STATE_OF_DFA
    	for_all (test: FUNCTION [ANY, TUPLE [STATE_OF_DFA], BOOLEAN]): BOOLEAN
    	Full: BOOLEAN
    	greatest_input: INTEGER_32
    	has (v: [like item] STATE_OF_DFA): BOOLEAN
    	i_th alias "[]" (i: INTEGER_32): [like item] STATE_OF_DFA
    	index: INTEGER_32
    	index_of (v: [like item] STATE_OF_DFA; i: INTEGER_32): INTEGER_32
    	index_set: INTEGER_INTERVAL
    	infix "@" (i: INTEGER_32): [like item] STATE_OF_DFA
    	is_empty: BOOLEAN
    	is_equal (other: [like Current] LINKED_DFA): BOOLEAN
    	is_inserted (v: STATE_OF_DFA): BOOLEAN
    	isfirst: BOOLEAN
    	islast: BOOLEAN
    	item: STATE_OF_DFA
    	last: [like item] STATE_OF_DFA
    	lcopy: FIXED_DFA
    	linear_representation: LINEAR [STATE_OF_DFA]
    	nb_states: INTEGER_32
    	object_comparison: BOOLEAN
    	occurrences (v: [like item] STATE_OF_DFA): INTEGER_32
    	off: BOOLEAN
    	possible_tokens (l: LINKED_LIST [INTEGER_32]): ARRAY [INTEGER_32]
    	prunable: BOOLEAN
    	readable: BOOLEAN
    	recognize (l: LINKED_LIST [INTEGER_32]): INTEGER_32
    	sequential_occurrences (v: [like item] STATE_OF_DFA): INTEGER_32
    	start_number: INTEGER_32
    	there_exists (test: FUNCTION [ANY, TUPLE [STATE_OF_DFA], BOOLEAN]): BOOLEAN
    	valid_cursor (p: CURSOR): BOOLEAN
    	valid_cursor_index (i: INTEGER_32): BOOLEAN
    	valid_index (i: INTEGER_32): BOOLEAN
    	writable: BOOLEAN

    Commands
    	append (s: SEQUENCE [STATE_OF_DFA])
    	back
    	compare_objects
    	compare_references
    	copy (other: [like Current] LINKED_DFA)
    	do_all (action: PROCEDURE [ANY, TUPLE [STATE_OF_DFA]])
    	do_if (action: PROCEDURE [ANY, TUPLE [STATE_OF_DFA]]; test: FUNCTION [ANY, TUPLE [STATE_OF_DFA], BOOLEAN])
    	extend (v: [like item] STATE_OF_DFA)
    	fill (other: CONTAINER [STATE_OF_DFA])
    	finish
    	force (v: [like item] STATE_OF_DFA)
    	forth
    	go_i_th (i: INTEGER_32)
    	go_to (p: CURSOR)
    	l_set_final (state, f: INTEGER_32)
    	make (i: INTEGER_32)
    	merge_left (other: [like Current] LINKED_DFA)
    	merge_right (other: [like Current] LINKED_DFA)
    	move (i: INTEGER_32)
    	prune (v: [like item] STATE_OF_DFA)
    	prune_all (v: [like item] STATE_OF_DFA)
    	put (v: [like item] STATE_OF_DFA)
    	put_front (v: [like item] STATE_OF_DFA)
    	put_i_th (v: [like item] STATE_OF_DFA; i: INTEGER_32)
    	put_left (v: [like item] STATE_OF_DFA)
    	put_right (v: [like item] STATE_OF_DFA)
    	remove
    	remove_left
    	remove_right
    	replace (v: [like item] STATE_OF_DFA)
    	search (v: [like item] STATE_OF_DFA)
    	set_final (state, f: INTEGER_32)
    	set_start (n: INTEGER_32)
    	set_state
    	set_transition (source, input_doc, target: INTEGER_32)
    	start
    	swap (i: INTEGER_32)
    	wipe_out

    Constraints
    	nb states right