class
	SEQ [G -> attached ANY]

General
	cluster: mathmodels
	description: 
		"Finite sequences of some elements of type G.
		A valid index is 1..count.
		Array notation can be used, as well as iteration (across).
		Empty sequences can be created, or creation can be from an array. 
		Sequences have a first item (the head), a tail and last item.
		Infix notation for prepended_by where x is of generic type G:
		seq1 |< x
		Infix notation for appended_by where x is of generic type G:
		seq1 |> x
		For concatenation we use infix: seq1 |++| seq2
		For queries, to assert that the state is not changed, 
		the postcondition is
		Current ~ old Current.deep_twin
		Class also has an inefficient implementation:"
	create: make_empty, make_from_array

Ancestors
	DEBUG_OUTPUT*
	ITERABLE* [G]

Queries
	appended alias "|->" (v: G): [like Current] SEQ [G]
	as_array: ARRAY [G]
	as_function: FUN [INTEGER_32, G]
	comprehension alias "|" (exp: PREDICATE [PAIR [INTEGER_32, G]]): [like Current] SEQ [G]
	concatenated alias "|++|" (other: [like Current] SEQ [G]): [like Current] SEQ [G]
	count alias "#": INTEGER_32
	debug_output: STRING_8
	first: G
	front: [like Current] SEQ [G]
	has (v: G): BOOLEAN
	hold_count (exp: PREDICATE [PAIR [INTEGER_32, G]]): INTEGER_32
	inserted (v: G; i: INTEGER_32): [like Current] SEQ [G]
	is_contiguous_subseq_of (other: [like Current] SEQ [G]): BOOLEAN
	is_empty: BOOLEAN
	is_equal (other: [like Current] SEQ [G]): BOOLEAN
	is_subsequence_of alias "|<:" (other: [like Current] SEQ [G]): BOOLEAN
	item alias "[]" (i: INTEGER_32): G
	last: G
	lower: INTEGER_32
	new_cursor: ITERATION_CURSOR [G]
	out: STRING_8
	overriden (v: G; i: INTEGER_32): [like Current] SEQ [G]
	prepended alias "|<-" (v: G): [like Current] SEQ [G]
	removed (i: INTEGER_32): [like Current] SEQ [G]
	reversed: [like Current] SEQ [G]
	slice (a_start, a_end, a_step: INTEGER_32): [like Current] SEQ [G]
	subsequenced (i, j: INTEGER_32): [like Current] SEQ [G]
	tail: [like Current] SEQ [G]
	twin2: [like Current] SEQ [G]
	upper: INTEGER_32
	valid_position (pos: INTEGER_32): BOOLEAN

Commands
	append (v: G)
	concatenate (other: [like Current] SEQ [G])
	insert (v: G; i: INTEGER_32)
	make_empty
	make_from_array (a: ARRAY [G])
	override (v: G; i: INTEGER_32)
	prepend (v: G)
	remove (i: INTEGER_32)
	reverse
	subsequence (i, j: INTEGER_32)

Constraints
	value semantics
	value semantics
	value semantics
	value semantics
	properties


Generated by ISE EiffelStudio