    class
    	RAW_FILE

    General
    	cluster: base
    	description: "Files, viewed as persistent sequences of bytes"
    	create: make, make_open_read, make_open_append, make_open_read_append, make_open_write, make_open_read_write, make_create_read_write

    Ancestors
    	FILE*

    Queries
    	access_date: INTEGER_32
    	access_exists: BOOLEAN
    	after: BOOLEAN
    	before: BOOLEAN
    	bytes_read: INTEGER_32
    	change_date: INTEGER_32
    	changeable_comparison_criterion: BOOLEAN
    	count: INTEGER_32
    	date: INTEGER_32
    	descriptor: INTEGER_32
    	descriptor_available: BOOLEAN
    	end_of_file: BOOLEAN
    	exhausted: BOOLEAN
    	exists: BOOLEAN
    	extendible: BOOLEAN
    	file_info: UNIX_FILE_INFO
    	file_pointer: POINTER
    	file_readable: BOOLEAN
    	file_writable: BOOLEAN
    	for_all (test: FUNCTION [ANY, TUPLE [CHARACTER_8], BOOLEAN]): BOOLEAN
    	Full: BOOLEAN
    	group_id: INTEGER_32
    	has (v: [like item] CHARACTER_8): BOOLEAN
    	index_of (v: [like item] CHARACTER_8; i: INTEGER_32): INTEGER_32
    	inode: INTEGER_32
    	is_access_executable: BOOLEAN
    	is_access_owner: BOOLEAN
    	is_access_readable: BOOLEAN
    	is_access_writable: BOOLEAN
    	is_block: BOOLEAN
    	is_character: BOOLEAN
    	is_closed: BOOLEAN
    	is_creatable: BOOLEAN
    	is_device: BOOLEAN
    	is_directory: BOOLEAN
    	is_empty: BOOLEAN
    	is_executable: BOOLEAN
    	is_fifo: BOOLEAN
    	is_inserted (v: CHARACTER_8): BOOLEAN
    	is_open_append: BOOLEAN
    	is_open_read: BOOLEAN
    	is_open_write: BOOLEAN
    	is_owner: BOOLEAN
    	is_plain: BOOLEAN
    	is_plain_text: BOOLEAN
    	is_readable: BOOLEAN
    	is_setgid: BOOLEAN
    	is_setuid: BOOLEAN
    	is_socket: BOOLEAN
    	is_sticky: BOOLEAN
    	is_symlink: BOOLEAN
    	is_writable: BOOLEAN
    	item: CHARACTER_8
    	last_character: CHARACTER_8
    	last_double: REAL_64
    	last_integer: INTEGER_32
    	last_integer_16: INTEGER_16
    	last_integer_32: INTEGER_32
    	last_integer_64: INTEGER_64
    	last_integer_8: INTEGER_8
    	last_natural: NATURAL_32
    	last_natural_16: NATURAL_16
    	last_natural_32: NATURAL_32
    	last_natural_64: NATURAL_64
    	last_natural_8: NATURAL_8
    	last_real: REAL_32
    	last_string: STRING_8
    	lastchar: CHARACTER_8
    	lastdouble: REAL_64
    	lastint: INTEGER_32
    	lastreal: REAL_32
    	laststring: STRING_8
    	linear_representation: LINEAR [CHARACTER_8]
    	links: INTEGER_32
    	name: STRING_8
    	object_comparison: BOOLEAN
    	occurrences (v: [like item] CHARACTER_8): INTEGER_32
    	off: BOOLEAN
    	owner_name: STRING_8
    	path_exists: BOOLEAN
    	position: INTEGER_32
    	protection: INTEGER_32
    	prunable: BOOLEAN
    	readable: BOOLEAN
    	retrieved: ANY
    	same_file (fn: STRING_8): BOOLEAN
    	separator: CHARACTER_8
    	Support_storable: BOOLEAN
    	there_exists (test: FUNCTION [ANY, TUPLE [CHARACTER_8], BOOLEAN]): BOOLEAN
    	user_id: INTEGER_32
    	writable: BOOLEAN

    Commands
    	add_permission (who, what: STRING_8)
    	append (f: [like Current] RAW_FILE)
    	back
    	basic_store (object: ANY)
    	change_group (new_group_id: INTEGER_32)
    	change_mode (mask: INTEGER_32)
    	change_name (new_name: STRING_8)
    	change_owner (new_owner_id: INTEGER_32)
    	close
    	compare_objects
    	compare_references
    	copy_to (file: [like Current] RAW_FILE)
    	create_read_write
    	delete
    	dispose
    	do_all (action: PROCEDURE [ANY, TUPLE [CHARACTER_8]])
    	do_if (action: PROCEDURE [ANY, TUPLE [CHARACTER_8]]; test: FUNCTION [ANY, TUPLE [CHARACTER_8], BOOLEAN])
    	extend (v: CHARACTER_8)
    	fd_open_append (fd: INTEGER_32)
    	fd_open_read (fd: INTEGER_32)
    	fd_open_read_append (fd: INTEGER_32)
    	fd_open_read_write (fd: INTEGER_32)
    	fd_open_write (fd: INTEGER_32)
    	fill (other: CONTAINER [CHARACTER_8])
    	finish
    	flush
    	force (v: [like item] CHARACTER_8)
    	forth
    	general_store (object: ANY)
    	go (abs_position: INTEGER_32)
    	independent_store (object: ANY)
    	link (fn: STRING_8)
    	make (fn: STRING_8)
    	make_create_read_write (fn: STRING_8)
    	make_open_append (fn: STRING_8)
    	make_open_read (fn: STRING_8)
    	make_open_read_append (fn: STRING_8)
    	make_open_read_write (fn: STRING_8)
    	make_open_write (fn: STRING_8)
    	move (offset: INTEGER_32)
    	new_line
    	next_line
    	open_append
    	open_read
    	open_read_append
    	open_read_write
    	open_write
    	prune_all (v: [like item] CHARACTER_8)
    	put (v: [like item] CHARACTER_8)
    	put_boolean (b: BOOLEAN)
    	put_character (c: CHARACTER_8)
    	put_double (d: REAL_64)
    	put_integer (i: INTEGER_32)
    	put_integer_16 (i: INTEGER_16)
    	put_integer_32 (i: INTEGER_32)
    	put_integer_64 (i: INTEGER_64)
    	put_integer_8 (i: INTEGER_8)
    	put_managed_pointer (p: MANAGED_POINTER; start_pos, nb_bytes: INTEGER_32)
    	put_natural (i: NATURAL_32)
    	put_natural_16 (i: NATURAL_16)
    	put_natural_32 (i: NATURAL_32)
    	put_natural_64 (i: NATURAL_64)
    	put_natural_8 (i: NATURAL_8)
    	put_new_line
    	put_real (r: REAL_32)
    	put_string (s: STRING_8)
    	putbool (b: BOOLEAN)
    	putchar (c: CHARACTER_8)
    	putdouble (d: REAL_64)
    	putint (i: INTEGER_32)
    	putreal (r: REAL_32)
    	putstring (s: STRING_8)
    	read_character
    	read_double
    	read_integer
    	read_integer_16
    	read_integer_32
    	read_integer_64
    	read_integer_8
    	read_line
    	read_natural
    	read_natural_16
    	read_natural_32
    	read_natural_64
    	read_natural_8
    	read_real
    	read_stream (nb_char: INTEGER_32)
    	read_to_managed_pointer (p: MANAGED_POINTER; start_pos, nb_bytes: INTEGER_32)
    	read_word
    	readchar
    	readdouble
    	readint
    	readline
    	readreal
    	readstream (nb_char: INTEGER_32)
    	readword
    	recede (abs_position: INTEGER_32)
    	recreate_read_write (fname: STRING_8)
    	remove_permission (who, what: STRING_8)
    	reopen_append (fname: STRING_8)
    	reopen_read (fname: STRING_8)
    	reopen_read_append (fname: STRING_8)
    	reopen_read_write (fname: STRING_8)
    	reopen_write (fname: STRING_8)
    	reset (fn: STRING_8)
    	search (v: [like item] CHARACTER_8)
    	set_access (time: INTEGER_32)
    	set_date (time: INTEGER_32)
    	stamp (time: INTEGER_32)
    	start
    	touch
    	wipe_out

    Constraints
    	not plain text