Classes
	ABSTRACT_SPECIAL*
			-- Ancestor of SPECIAL to perform queries on SPECIAL without knowing its actual generic type.

	ABSTRACT_SPECIAL*
			-- Ancestor of SPECIAL to perform queries on SPECIAL without knowing its actual generic type.

	ACTION_SEQUENCE [EVENT_DATA -> detachable TUPLE create default_create end]
			-- A sequence of actions to be performed on call.

	ACTION_SEQUENCE [EVENT_DATA -> detachable TUPLE create default_create end]
			-- A sequence of actions to be performed on call.

	ACTIVE* [G]
			-- Active data structures, which at every stage have
			-- a possibly undefined current item.
			-- Basic access and modification operations apply to the current item.

	ACTIVE* [G]
			-- Active data structures, which at every stage have
			-- a possibly undefined current item.
			-- Basic access and modification operations apply to the current item.

	ACTIVE_INTEGER_INTERVAL
			-- Contiguous integer interval that calls an action sequence
			-- when it changes.

	ACTIVE_INTEGER_INTERVAL
			-- Contiguous integer interval that calls an action sequence
			-- when it changes.

	ACTIVE_LIST [G]
			-- Sequential, one-way linked lists that call an action
			-- sequence when an item is removed or added.

	ACTIVE_LIST [G]
			-- Sequential, one-way linked lists that call an action
			-- sequence when an item is removed or added.

	ADDRESS_APPLIED_TO_MELTED_FEATURE
			-- Exception raised when $ is applied to melted feature

	ADDRESS_APPLIED_TO_MELTED_FEATURE
			-- Exception raised when $ is applied to melted feature

	AGENT_TRACING_HANDLER
			-- Abstract class used by TRACE_MANAGER to dispatch tracing events to user using STRING data via an agent.

	AGENT_TRACING_HANDLER
			-- Abstract class used by TRACE_MANAGER to dispatch tracing events to user using STRING data via an agent.

	ANY
			-- Project-wide universal properties.
			-- This class is an ancestor to all developer-written classes.
			-- ANY may be customized for individual projects or teams.

	ANY
			-- Project-wide universal properties.
			-- This class is an ancestor to all developer-written classes.
			-- ANY may be customized for individual projects or teams.

	ARGUMENTS
			-- Access to command-line arguments. This class 
			-- may be used as ancestor by classes needing its facilities.

	ARGUMENTS
			-- Access to command-line arguments. This class 
			-- may be used as ancestor by classes needing its facilities.

	ARGUMENTS_32
			-- Access to command-line arguments. This class 
			-- may be used as ancestor by classes needing its facilities.

	ARGUMENTS_32
			-- Access to command-line arguments. This class 
			-- may be used as ancestor by classes needing its facilities.

	ARRAY [G]
			-- Sequences of values, all of the same type or of a conforming one,
			-- accessible through integer indices in a contiguous interval.

	ARRAY [G]
			-- Sequences of values, all of the same type or of a conforming one,
			-- accessible through integer indices in a contiguous interval.

	ARRAY2 [G]
			-- Two-dimensional arrays

	ARRAY2 [G]
			-- Two-dimensional arrays

	ARRAYED_CIRCULAR [G]
			-- Circular chains implemented by resizable arrays

	ARRAYED_CIRCULAR [G]
			-- Circular chains implemented by resizable arrays

	ARRAYED_LIST [G]
			-- Lists implemented by resizable arrays

	ARRAYED_LIST [G]
			-- Lists implemented by resizable arrays

	ARRAYED_LIST_CURSOR
			-- Cursors for arrayed lists

	ARRAYED_LIST_CURSOR
			-- Cursors for arrayed lists

	ARRAYED_LIST_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for ARRAYED_LIST.

	ARRAYED_LIST_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for ARRAYED_LIST.

	ARRAYED_QUEUE [G]
			-- Unbounded queues, implemented by resizable arrays

	ARRAYED_QUEUE [G]
			-- Unbounded queues, implemented by resizable arrays

	ARRAYED_QUEUE_ITERATION_CURSOR [G]
			-- External iteration cursor for ARRAYED_QUEUE.

	ARRAYED_QUEUE_ITERATION_CURSOR [G]
			-- External iteration cursor for ARRAYED_QUEUE.

	ARRAYED_SET [G]
			-- Sets represented as arrayed lists

	ARRAYED_SET [G]
			-- Sets represented as arrayed lists

	ARRAYED_STACK [G]
			-- Stacks implemented by resizable arrays

	ARRAYED_STACK [G]
			-- Stacks implemented by resizable arrays

	ARRAYED_TREE [G]
			-- Trees where the children of each node are kept in an array

	ARRAYED_TREE [G]
			-- Trees where the children of each node are kept in an array

	ARRAY_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for ARRAY.

	ARRAY_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for ARRAY.

	ASCII
			-- The ASCII character set.
			-- This class may be used as ancestor by classes needing its facilities.

	ASCII
			-- The ASCII character set.
			-- This class may be used as ancestor by classes needing its facilities.

	ASSERTION_VIOLATION*
			-- Exception represents an assertion violation.

	ASSERTION_VIOLATION*
			-- Exception represents an assertion violation.

	AUDIO_3D_OBJECT*
			-- A 3d object for the 3d audio library.

	AUDIO_3D_OBJECT*
			-- A 3d object for the 3d audio library.

	AUDIO_ANY*
			-- Every AUDIO_* class must inherit this

	AUDIO_ANY*
			-- Every AUDIO_* class must inherit this

	AUDIO_CAPTURE_CONTROLLER
			-- Tools to capture audio from a capturing audio device

	AUDIO_CAPTURE_CONTROLLER
			-- Tools to capture audio from a capturing audio device

	AUDIO_DEVICE
			-- Represent an audio device

	AUDIO_DEVICE
			-- Represent an audio device

	AUDIO_EXTERNAL
			-- External C feature for Audio libraries.

	AUDIO_EXTERNAL
			-- External C feature for Audio libraries.

	AUDIO_LIBRARY_CONTROLLER
			-- Controller for the audio library.

	AUDIO_LIBRARY_CONTROLLER
			-- Controller for the audio library.

	AUDIO_LIBRARY_SHARED*
			-- Inherit from this class to use the AUDIO_LIBRARY_CONTROLLER singleton named audio_library

	AUDIO_LIBRARY_SHARED*
			-- Inherit from this class to use the AUDIO_LIBRARY_CONTROLLER singleton named audio_library

	AUDIO_LISTENER
			-- The 3d object that receive the sound emit by sound sources.

	AUDIO_LISTENER
			-- The 3d object that receive the sound emit by sound sources.

	AUDIO_OPENAL_ERROR_MANAGER*
			-- Error manager for the audio library. 
			-- All OpenAL Class inherit from it to access error in the C library.
			-- 
			-- TODO: get individual error by name.

	AUDIO_OPENAL_ERROR_MANAGER*
			-- Error manager for the audio library. 
			-- All OpenAL Class inherit from it to access error in the C library.
			-- 
			-- TODO: get individual error by name.

	AUDIO_SND_FILES_CONSTANTS*
			-- Summary description for AUDIO_SND_FILES_CONSTANTS.

	AUDIO_SND_FILES_CONSTANTS*
			-- Summary description for AUDIO_SND_FILES_CONSTANTS.

	AUDIO_SND_FILES_EXTERNAL
			-- External C feature for Audio snd files libraries.

	AUDIO_SND_FILES_EXTERNAL
			-- External C feature for Audio snd files libraries.

	AUDIO_SND_FILES_EXTERNAL_IMP
			-- External C feature for Audio snd files libraries.

	AUDIO_SND_FILES_EXTERNAL_IMP
			-- External C feature for Audio snd files libraries.

	AUDIO_SOUND*
			-- A sound to be played by an audio source.

	AUDIO_SOUND*
			-- A sound to be played by an audio source.

	AUDIO_SOUND_CPF
			-- A {GAME_SOUND} loaded from a sound sub-file inside a custom package file.

	AUDIO_SOUND_CPF
			-- A {GAME_SOUND} loaded from a sound sub-file inside a custom package file.

	AUDIO_SOUND_CUSTOM
			-- Class that holds information for a sound and fills a buffer to play it.

	AUDIO_SOUND_CUSTOM
			-- Class that holds information for a sound and fills a buffer to play it.

	AUDIO_SOUND_FILE
			-- A {GAME_SOUND} loaded from a sound file.

	AUDIO_SOUND_FILE
			-- A {GAME_SOUND} loaded from a sound file.

	AUDIO_SOUND_FILE_IMP*
			-- A {GAME_SOUND} loaded from a sound file.

	AUDIO_SOUND_FILE_IMP*
			-- A {GAME_SOUND} loaded from a sound file.

	AUDIO_SOUND_GENERATOR
			-- Class that generates sound using lists of INTEGER_16

	AUDIO_SOUND_GENERATOR
			-- Class that generates sound using lists of INTEGER_16

	AUDIO_SOUND_STREAMING
			-- An AUDIO_SOUND used to stream audio buffers

	AUDIO_SOUND_STREAMING
			-- An AUDIO_SOUND used to stream audio buffers

	AUDIO_SOUND_WAV_CPF
			-- An AUDIO_SOUND witch data come from a WAV sub-file included inside a custom package file.

	AUDIO_SOUND_WAV_CPF
			-- An AUDIO_SOUND witch data come from a WAV sub-file included inside a custom package file.

	AUDIO_SOUND_WAV_FILE
			-- An AUDIO_SOUND witch data came from a WAV file.

	AUDIO_SOUND_WAV_FILE
			-- An AUDIO_SOUND witch data came from a WAV file.

	AUDIO_SOURCE
			-- A sound source in a 3d environment.
			-- 
			-- If a stereo sound is queued in the source, the 3d environment
			-- is not applied.
			-- 
			-- 16 bit buffers are signed and 0 is the silent position
			-- 8 bit buffers are unsigned and 128 is the silent position
			-- for stereo formats the left channel comes first
			-- 

	AUDIO_SOURCE
			-- A sound source in a 3d environment.
			-- 
			-- If a stereo sound is queued in the source, the 3d environment
			-- is not applied.
			-- 
			-- 16 bit buffers are signed and 0 is the silent position
			-- 8 bit buffers are unsigned and 128 is the silent position
			-- for stereo formats the left channel comes first
			-- 

	BAD_INSPECT_VALUE
			-- Exception raised by inspect value which is not one
			-- of the inspect constants, if there is no Else_part.

	BAD_INSPECT_VALUE
			-- Exception raised by inspect value which is not one
			-- of the inspect constants, if there is no Else_part.

	BAG* [G]
			-- Collections of items, where each item may occur zero
			-- or more times, and the number of occurrences is meaningful.

	BAG* [G]
			-- Collections of items, where each item may occur zero
			-- or more times, and the number of occurrences is meaningful.

	BASIC_ROUTINES
			-- Some useful facilities on objects of basic types.

	BASIC_ROUTINES
			-- Some useful facilities on objects of basic types.

	BILINEAR* [G]
			-- Structures that may be traversed forward and backward

	BILINEAR* [G]
			-- Structures that may be traversed forward and backward

	BINARY_SEARCH_TREE [G -> COMPARABLE]
			-- Binary search trees; left child item is less than current item,
			-- right child item is greater

	BINARY_SEARCH_TREE [G -> COMPARABLE]
			-- Binary search trees; left child item is less than current item,
			-- right child item is greater

	BINARY_SEARCH_TREE_SET [G -> COMPARABLE]
			-- Sorted sets implemented as binary search trees

	BINARY_SEARCH_TREE_SET [G -> COMPARABLE]
			-- Sorted sets implemented as binary search trees

	BINARY_TREE [G]
			-- Binary tree: each node may have a left child and a right child

	BINARY_TREE [G]
			-- Binary tree: each node may have a left child and a right child

	BI_LINKABLE [G]
			-- Linkable cells with a reference to the left and right neighbors

	BI_LINKABLE [G]
			-- Linkable cells with a reference to the left and right neighbors

	BOOLEAN
			-- Truth values, with the boolean operations.

	BOOLEAN
			-- Truth values, with the boolean operations.

	BOOLEAN_REF
			-- References to objects containing a boolean value.

	BOOLEAN_REF
			-- References to objects containing a boolean value.

	BOOL_STRING
			-- Packed boolean strings

	BOOL_STRING
			-- Packed boolean strings

	BOUNDED* [G]
			-- Bounded data structures, with a notion of capacity.

	BOUNDED* [G]
			-- Bounded data structures, with a notion of capacity.

	BOUNDED_QUEUE [G]
			-- Queues with a bounded physical size, implemented by arrays

	BOUNDED_QUEUE [G]
			-- Queues with a bounded physical size, implemented by arrays

	BOUNDED_STACK [G]
			-- Stacks with a bounded physical size, implemented by arrays

	BOUNDED_STACK [G]
			-- Stacks with a bounded physical size, implemented by arrays

	BOX* [G]
			-- Data structures of the most general kind,
			-- having the potential ability to become full,
			-- and characterized by their implementation properties.

	BOX* [G]
			-- Data structures of the most general kind,
			-- having the potential ability to become full,
			-- and characterized by their implementation properties.

	CELL [G]
			-- Cells containing an item

	CELL [G]
			-- Cells containing an item

	CHAIN* [G]
			-- Possibly circular sequences of items,
			-- without commitment to a particular representation

	CHAIN* [G]
			-- Possibly circular sequences of items,
			-- without commitment to a particular representation

	CHAIN_INDEXABLE_ITERATOR [G]
			-- Objects that are able to iterate over a CHAIN structures (forward and backward) 
			-- and the content can be addressed with integers key.
			-- Can be use to access a CHAIN in read only.

	CHAIN_INDEXABLE_ITERATOR [G]
			-- Objects that are able to iterate over a CHAIN structures (forward and backward) 
			-- and the content can be addressed with integers key.
			-- Can be use to access a CHAIN in read only.

	CHARACTER_32
			-- Unicode characters, with comparison operations

	CHARACTER_32
			-- Unicode characters, with comparison operations

	CHARACTER_32_REF
			-- References to objects containing a unicode character value

	CHARACTER_32_REF
			-- References to objects containing a unicode character value

	CHARACTER_8
			-- Characters, with comparison operations and an ASCII code

	CHARACTER_8
			-- Characters, with comparison operations and an ASCII code

	CHARACTER_8_REF
			-- References to objects containing a character value

	CHARACTER_8_REF
			-- References to objects containing a character value

	CHARACTER_PROPERTY
			-- Helper functions to provide property of a Unicode character of type CHARACTER_32.
			-- This includes finding out if a character is lower, upper, title case, or if it is a digit,
			-- a punctuation, a control or a space character.

	CHARACTER_PROPERTY
			-- Helper functions to provide property of a Unicode character of type CHARACTER_32.
			-- This includes finding out if a character is lower, upper, title case, or if it is a digit,
			-- a punctuation, a control or a space character.

	CHECK_VIOLATION
			-- Exception raised by violated checks

	CHECK_VIOLATION
			-- Exception raised by violated checks

	CIRCULAR* [G]
			-- Circular chains, without commitment to a particular representation

	CIRCULAR* [G]
			-- Circular chains, without commitment to a particular representation

	CIRCULAR_CURSOR
			-- Cursors for circular lists

	CIRCULAR_CURSOR
			-- Cursors for circular lists

	CLASS_NAME_TRANSLATIONS
			-- Translations of class names between a storing and a retrieving
			-- system. Values in this table are names of classes in the retrieving
			-- system, indexed by names of generating classes in the storing
			-- system (i.e. with no generic arguments). Values may have generic
			-- arguments (e.g. "MY_CLASS [REAL_64]"), thus allowing a very simple
			-- conversion of a non-generic class into a generic class. The
			-- presence of entries in this table affects all retrieve operations
			-- for objects stored using independent_store.

	CLASS_NAME_TRANSLATIONS
			-- Translations of class names between a storing and a retrieving
			-- system. Values in this table are names of classes in the retrieving
			-- system, indexed by names of generating classes in the storing
			-- system (i.e. with no generic arguments). Values may have generic
			-- arguments (e.g. "MY_CLASS [REAL_64]"), thus allowing a very simple
			-- conversion of a non-generic class into a generic class. The
			-- presence of entries in this table affects all retrieve operations
			-- for objects stored using independent_store.

	CODE_PAGE_CONSTANTS
			-- Code page constants for general encodings

	CODE_PAGE_CONSTANTS
			-- Code page constants for general encodings

	COLLECTION* [G]
			-- General container data structures, 
			-- characterized by the membership properties of their items.

	COLLECTION* [G]
			-- General container data structures, 
			-- characterized by the membership properties of their items.

	COMPARABLE*
			-- Objects that may be compared according to a total order relation
			-- 
			-- Note: The basic operation is < (less than); others are defined
			-- in terms of this operation and is_equal.

	COMPARABLE*
			-- Objects that may be compared according to a total order relation
			-- 
			-- Note: The basic operation is < (less than); others are defined
			-- in terms of this operation and is_equal.

	COMPARABLE_SET* [G -> COMPARABLE]
			-- Sets whose items may be compared according to a total order relation

	COMPARABLE_SET* [G -> COMPARABLE]
			-- Sets whose items may be compared according to a total order relation

	COMPARABLE_STRUCT* [G -> COMPARABLE]
			-- Data structures whose items may be compared
			-- according to a total order relation

	COMPARABLE_STRUCT* [G -> COMPARABLE]
			-- Data structures whose items may be compared
			-- according to a total order relation

	COM_FAILURE
			-- Exception for a COM error

	COM_FAILURE
			-- Exception for a COM error

	CONDITION_VARIABLE
			-- Condition variables allow threads to synchronize based on the content of a shared data, whereas
			-- mutexes only synchronize access to the data. In other words, a condition variable is a
			-- synchronization object that enables threads to wait until a particular condition occurs.
			-- 
			-- When a thread executes a wait call on a condition variable, it must hold an associated mutex
			-- (used for checking that condition). Then, it is immediately suspended and put into the waiting
			-- queue. The thread is suspended and is waiting for the condition to occur.
			-- 
			-- Eventually, when the condition has occurred, a thread will signal it. Two possible scenarios:
			-- - if there are threads waiting, then one of the waiting thread will resume its execution and
			--   will get the mutex in a locked state.
			-- - if there are no threads waiting, nothing is done
			-- 
			-- For the simple usage of a condition variable, it is very similar to using a semaphore.
			-- 
			-- In addition you have broadcast that will resume all waiting threads at once, and
			-- wait_with_timeout that will wait only a certain amount of time before abandonning the wait.
			-- 
			-- The signal and broadcast routines can be called by a thread whether or not it currently owns
			-- the mutex that threads calling wait or wait_with_timeout have associated with the condition
			-- variable during their waits. If, however, predictable scheduling behavior is required, then that
			-- mutex should be locked by the thread prior to calling signal or broadcast.
			-- 
			-- Assuming shared_data an INTEGER initially set to zero, then a typical usage of condition variable
			-- to wait until shared_data becomes one, could be written as followed in thread A:
			-- 
			-- mutex.lock
			-- from
			-- until
			-- shared_data = 1
			-- loop
			-- condition_variable.wait (mutex)
			-- end
			-- mutex.unlock
			-- 
			-- and in thread B:
			-- 
			-- mutex.lock
			-- shared_data := 1
			-- condition_variable.signal
			-- mutex.unlock
			-- 
			-- Thread A will be blocked until thread B signal that now shared_data is 1.

	CONDITION_VARIABLE
			-- Condition variables allow threads to synchronize based on the content of a shared data, whereas
			-- mutexes only synchronize access to the data. In other words, a condition variable is a
			-- synchronization object that enables threads to wait until a particular condition occurs.
			-- 
			-- When a thread executes a wait call on a condition variable, it must hold an associated mutex
			-- (used for checking that condition). Then, it is immediately suspended and put into the waiting
			-- queue. The thread is suspended and is waiting for the condition to occur.
			-- 
			-- Eventually, when the condition has occurred, a thread will signal it. Two possible scenarios:
			-- - if there are threads waiting, then one of the waiting thread will resume its execution and
			--   will get the mutex in a locked state.
			-- - if there are no threads waiting, nothing is done
			-- 
			-- For the simple usage of a condition variable, it is very similar to using a semaphore.
			-- 
			-- In addition you have broadcast that will resume all waiting threads at once, and
			-- wait_with_timeout that will wait only a certain amount of time before abandonning the wait.
			-- 
			-- The signal and broadcast routines can be called by a thread whether or not it currently owns
			-- the mutex that threads calling wait or wait_with_timeout have associated with the condition
			-- variable during their waits. If, however, predictable scheduling behavior is required, then that
			-- mutex should be locked by the thread prior to calling signal or broadcast.
			-- 
			-- Assuming shared_data an INTEGER initially set to zero, then a typical usage of condition variable
			-- to wait until shared_data becomes one, could be written as followed in thread A:
			-- 
			-- mutex.lock
			-- from
			-- until
			-- shared_data = 1
			-- loop
			-- condition_variable.wait (mutex)
			-- end
			-- mutex.unlock
			-- 
			-- and in thread B:
			-- 
			-- mutex.lock
			-- shared_data := 1
			-- condition_variable.signal
			-- mutex.unlock
			-- 
			-- Thread A will be blocked until thread B signal that now shared_data is 1.

	CONSOLE
			-- Commonly used console input and output mechanisms. 
			-- This class may be used as ancestor by classes needing its facilities.

	CONSOLE
			-- Commonly used console input and output mechanisms. 
			-- This class may be used as ancestor by classes needing its facilities.

	CONTAINER* [G]
			-- Data structures of the most general kind,
			-- used to hold zero or more items.

	CONTAINER* [G]
			-- Data structures of the most general kind,
			-- used to hold zero or more items.

	COUNTABLE* [G]
			-- Infinite containers whose items are in one-to-one 
			-- correspondence with the integers.

	COUNTABLE* [G]
			-- Infinite containers whose items are in one-to-one 
			-- correspondence with the integers.

	COUNTABLE_SEQUENCE* [G]
			-- Infinite sequences, indexed by integers

	COUNTABLE_SEQUENCE* [G]
			-- Infinite sequences, indexed by integers

	CPF_EXTERNAL
			-- External C function for the Custom Package File (CPF) Library.

	CPF_EXTERNAL
			-- External C function for the Custom Package File (CPF) Library.

	CPF_PACKAGE_FILE
			-- A package file.

	CPF_PACKAGE_FILE
			-- A package file.

	CPF_RESSOURCE_MANAGER*
			-- Every class that used CPF facility must inherit from this class

	CPF_RESSOURCE_MANAGER*
			-- Every class that used CPF facility must inherit from this class

	CREATE_ON_DEFERRED
			-- Exception raised when creating deferred classes

	CREATE_ON_DEFERRED
			-- Exception raised when creating deferred classes

	CURSOR
			-- Cursors for remembering positions in arbitrary data structures

	CURSOR
			-- Cursors for remembering positions in arbitrary data structures

	CURSOR_STRUCTURE* [G]
			-- Active structures, which always have a current position
			-- accessible through a cursor.

	CURSOR_STRUCTURE* [G]
			-- Active structures, which always have a current position
			-- accessible through a cursor.

	CURSOR_TREE* [G]
			-- Trees as active structures that may be traversed using a cursor

	CURSOR_TREE* [G]
			-- Trees as active structures that may be traversed using a cursor

	CURSOR_TREE_ITERATOR* [G]
			-- Objects that are able to iterate over cursor trees, 
			-- on which they can perform repeated actions and tests according
			-- to a number of predefined control structures such as if,
			-- until and others.

	CURSOR_TREE_ITERATOR* [G]
			-- Objects that are able to iterate over cursor trees, 
			-- on which they can perform repeated actions and tests according
			-- to a number of predefined control structures such as if,
			-- until and others.

	C_STRING
			-- A low-level string class to solve some garbage collector problems (mainly objects moving around) when interfacing with C APIs.

	C_STRING
			-- A low-level string class to solve some garbage collector problems (mainly objects moving around) when interfacing with C APIs.

	DATA_EXCEPTION*
			-- Deffered class of data exception from the runtime

	DATA_EXCEPTION*
			-- Deffered class of data exception from the runtime

	DEBUG_OUTPUT*
			-- Objects that provide an output in debugger

	DEBUG_OUTPUT*
			-- Objects that provide an output in debugger

	DECLARATOR
			-- Class used to ensure proper precompilation of EiffelBase. 
			-- Not to be used otherwise.

	DECLARATOR
			-- Class used to ensure proper precompilation of EiffelBase. 
			-- Not to be used otherwise.

	DEVELOPER_EXCEPTION
			-- Ancestor of all developer exceptions

	DEVELOPER_EXCEPTION
			-- Ancestor of all developer exceptions

	DIRECTORY
			-- Directories, in the Unix sense, with creation and exploration features

	DIRECTORY
			-- Directories, in the Unix sense, with creation and exploration features

	DIRECTORY_NAME
			-- Directory name abstraction

	DIRECTORY_NAME
			-- Directory name abstraction

	DISPENSER* [G]
			-- Dispensers: containers for which clients have no say
			-- as to what item they can access at a given time.
			-- Examples include stacks and queues.

	DISPENSER* [G]
			-- Dispensers: containers for which clients have no say
			-- as to what item they can access at a given time.
			-- Examples include stacks and queues.

	DISPOSABLE*
			-- Perform cleanup operations before current instance is reclaimed by garbage collection.

	DISPOSABLE*
			-- Perform cleanup operations before current instance is reclaimed by garbage collection.

	DOUBLE_MATH
			-- Basic mathematical operations, double-precision.
			-- This class may be used as ancestor by classes needing its facilities.

	DOUBLE_MATH
			-- Basic mathematical operations, double-precision.
			-- This class may be used as ancestor by classes needing its facilities.

	DYNAMIC_CHAIN* [G]
			-- Dynamically modifiable chains

	DYNAMIC_CHAIN* [G]
			-- Dynamically modifiable chains

	DYNAMIC_CIRCULAR* [G]
			-- Dynamically modifiable circular chains

	DYNAMIC_CIRCULAR* [G]
			-- Dynamically modifiable circular chains

	DYNAMIC_LIST* [G]
			-- Sequential, dynamically modifiable lists,
			-- without commitment to a particular representation

	DYNAMIC_LIST* [G]
			-- Sequential, dynamically modifiable lists,
			-- without commitment to a particular representation

	DYNAMIC_TABLE* [G, H]
			-- Dynamically modifiable table.

	DYNAMIC_TABLE* [G, H]
			-- Dynamically modifiable table.

	DYNAMIC_TREE* [G]
			-- Trees with a dynamically modifiable structure

	DYNAMIC_TREE* [G]
			-- Trees with a dynamically modifiable structure

	ECMA_INTERNAL
			-- Version of INTERNAL which does not use the mapping of STRING to STRING_8, INTEGER to INTEGER_32, etc...

	ECMA_INTERNAL
			-- Version of INTERNAL which does not use the mapping of STRING to STRING_8, INTEGER to INTEGER_32, etc...

	EIFFELSTUDIO_SPECIFIC_LANGUAGE_EXCEPTION*
			-- Deferred class representing EiffelStudio specific language exceptions.

	EIFFELSTUDIO_SPECIFIC_LANGUAGE_EXCEPTION*
			-- Deferred class representing EiffelStudio specific language exceptions.

	EIFFEL_RUNTIME_EXCEPTION*
			-- Eiffel runtime exception

	EIFFEL_RUNTIME_EXCEPTION*
			-- Eiffel runtime exception

	EIFFEL_RUNTIME_PANIC
			-- Eiffel runtime panic

	EIFFEL_RUNTIME_PANIC
			-- Eiffel runtime panic

	EIF_EXCEPTION*
			-- Deferred class for exceptions of Eiffel language, runtime and so on.

	EIF_EXCEPTION*
			-- Deferred class for exceptions of Eiffel language, runtime and so on.

	EMPTY_ITERATION_CURSOR [G]
			-- External iteration cursor for an ITERABLE without any elements.

	EMPTY_ITERATION_CURSOR [G]
			-- External iteration cursor for an ITERABLE without any elements.

	ENCODING
			-- Objects that represent encodings and that provide conversion methods.

	ENCODING
			-- Objects that represent encodings and that provide conversion methods.

	ENCODING_HELPER
			-- Helper routines for encoding conversion.

	ENCODING_HELPER
			-- Helper routines for encoding conversion.

	EXCEPTION
			-- Ancestor of all exception classes.

	EXCEPTION
			-- Ancestor of all exception classes.

	EXCEPTIONS
			-- Facilities for adapting the exception handling mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	EXCEPTIONS
			-- Facilities for adapting the exception handling mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	EXCEPTION_IN_SIGNAL_HANDLER_FAILURE
			-- Exception raised in signal handler

	EXCEPTION_IN_SIGNAL_HANDLER_FAILURE
			-- Exception raised in signal handler

	EXCEPTION_MANAGER
			-- Common exception operations and management.

	EXCEPTION_MANAGER
			-- Common exception operations and management.

	EXCEPTION_MANAGER_FACTORY
			-- Exception manager factory.

	EXCEPTION_MANAGER_FACTORY
			-- Exception manager factory.

	EXCEP_CONST
			-- Constants used for exception handling.
			-- This class may be used as ancestor by classes needing its facilities.

	EXCEP_CONST
			-- Constants used for exception handling.
			-- This class may be used as ancestor by classes needing its facilities.

	EXECUTION_ENVIRONMENT
			-- The objects available from the environment at time of execution

	EXECUTION_ENVIRONMENT
			-- The objects available from the environment at time of execution

	EXTERNAL_FAILURE
			-- Exception for operating system error
			-- which does not set the errno variable (Unix-specific)

	EXTERNAL_FAILURE
			-- Exception for operating system error
			-- which does not set the errno variable (Unix-specific)

	FIBONACCI
			-- The Fibonacci number sequence

	FIBONACCI
			-- The Fibonacci number sequence

	FILE*
			-- Sequential files, viewed as persistent sequences of characters

	FILE*
			-- Sequential files, viewed as persistent sequences of characters

	FILE_COMPARER
			-- Find out if two paths corresponds to exactly the same file.

	FILE_COMPARER
			-- Find out if two paths corresponds to exactly the same file.

	FILE_INFO
			-- Internal file information

	FILE_INFO
			-- Internal file information

	FILE_ITERATION_CURSOR
			-- External iteration cursor for a file.

	FILE_ITERATION_CURSOR
			-- External iteration cursor for a file.

	FILE_NAME
			-- File name abstraction

	FILE_NAME
			-- File name abstraction

	FILE_UTILITIES
			-- File utilities, for retrieving files and folders and formatting paths.

	FILE_UTILITIES
			-- File utilities, for retrieving files and folders and formatting paths.

	FINITE* [G]
			-- Structures with a finite item count

	FINITE* [G]
			-- Structures with a finite item count

	FIXED* [G]
			-- Finite structures whose item count cannot be changed

	FIXED* [G]
			-- Finite structures whose item count cannot be changed

	FIXED_LIST [G]
			-- Lists with fixed maximum numbers of items, implemented by arrays

	FIXED_LIST [G]
			-- Lists with fixed maximum numbers of items, implemented by arrays

	FIXED_TREE [G]
			-- Trees where each node has a fixed number of children.
			-- The number of children is arbitrary but cannot be
			-- changed once the node has been created.

	FIXED_TREE [G]
			-- Trees where each node has a fixed number of children.
			-- The number of children is arbitrary but cannot be
			-- changed once the node has been created.

	FLOATING_POINT_FAILURE
			-- Floating point failure

	FLOATING_POINT_FAILURE
			-- Floating point failure

	FORMAT_DOUBLE
			-- Formatter for non-integral numbers

	FORMAT_DOUBLE
			-- Formatter for non-integral numbers

	FORMAT_INTEGER
			-- Formatter for integral numbers

	FORMAT_INTEGER
			-- Formatter for integral numbers

	FUNCTION [OPEN_ARGS -> detachable TUPLE create default_create end, RESULT_TYPE]
			-- Objects representing delayed calls to a function,
			-- with some arguments possibly still open.
			-- 
			-- Note: Features are the same as those of ROUTINE,
			-- with apply made effective, and the addition
			-- of last_result and item.

	FUNCTION [OPEN_ARGS -> detachable TUPLE create default_create end, RESULT_TYPE]
			-- Objects representing delayed calls to a function,
			-- with some arguments possibly still open.
			-- 
			-- Note: Features are the same as those of ROUTINE,
			-- with apply made effective, and the addition
			-- of last_result and item.

	GAME_3D_OBJECT*
			-- A 3d object.

	GAME_3D_OBJECT*
			-- A 3d object.

	GAME_BATTERY
			-- Battery/power supply informations.
			-- You should never take a battery status as absolute truth. 
			-- Batteries (especially failing batteries) are delicate hardware, 
			-- and the values reported here are best estimates based on what that 
			-- hardware reports. It's not uncommon for older batteries to lose 
			-- stored power much faster than it reports, or completely drain when 
			-- reporting it has 20 percent left, etc.
			-- 
			-- Battery status can change at any time; if you are concerned with power state,
			-- you should call this function frequently, and perhaps ignore changes until
			-- they seem to be stable for a few seconds.

	GAME_BATTERY
			-- Battery/power supply informations.
			-- You should never take a battery status as absolute truth. 
			-- Batteries (especially failing batteries) are delicate hardware, 
			-- and the values reported here are best estimates based on what that 
			-- hardware reports. It's not uncommon for older batteries to lose 
			-- stored power much faster than it reports, or completely drain when 
			-- reporting it has 20 percent left, etc.
			-- 
			-- Battery status can change at any time; if you are concerned with power state,
			-- you should call this function frequently, and perhaps ignore changes until
			-- they seem to be stable for a few seconds.

	GAME_BLENDABLE*
			-- An object that can use alpha blending

	GAME_BLENDABLE*
			-- An object that can use alpha blending

	GAME_COLOR
			-- Representation of a RGBA color. Not for use with SDL. For SDL, use SDL_COLOR.

	GAME_COLOR
			-- Representation of a RGBA color. Not for use with SDL. For SDL, use SDL_COLOR.

	GAME_COLOR_PALETTE
			-- A color palette to be used in 8 bits per pixel surface

	GAME_COLOR_PALETTE
			-- A color palette to be used in 8 bits per pixel surface

	GAME_COLOR_READABLE
			-- A read only GAME_COLOR

	GAME_COLOR_READABLE
			-- A read only GAME_COLOR

	GAME_COMMON_EVENTS*
			-- Every high level events that are not attached to a specific
			-- component of the library (window, joystick, etc.)

	GAME_COMMON_EVENTS*
			-- Every high level events that are not attached to a specific
			-- component of the library (window, joystick, etc.)

	GAME_CURSOR
			-- A cursor representing the mouse in a window

	GAME_CURSOR
			-- A cursor representing the mouse in a window

	GAME_DISPLAY
			-- Informations about a display (a display is generally a screen)

	GAME_DISPLAY
			-- Informations about a display (a display is generally a screen)

	GAME_DISPLAY_MODE
			-- A mode (width, height, refresh rate, etc.) of a GAME_DISPLAY (screen)

	GAME_DISPLAY_MODE
			-- A mode (width, height, refresh rate, etc.) of a GAME_DISPLAY (screen)

	GAME_DOLLAR_GESTURE
			-- A complexe gesture similar to a template

	GAME_DOLLAR_GESTURE
			-- A complexe gesture similar to a template

	GAME_DOLLAR_GESTURE_MANAGER*
			-- Common ancestor to object that can manage touch device dollar gesture template.

	GAME_DOLLAR_GESTURE_MANAGER*
			-- Common ancestor to object that can manage touch device dollar gesture template.

	GAME_DRAWING_TOOLS
			-- Some tools that can be used to drawers.

	GAME_DRAWING_TOOLS
			-- Some tools that can be used to drawers.

	GAME_EFFECTS_EXTERNAL
			-- External of the SDL2_gfx library.

	GAME_EFFECTS_EXTERNAL
			-- External of the SDL2_gfx library.

	GAME_ERROR_MANAGER*
			-- A class taht has errors to manage

	GAME_ERROR_MANAGER*
			-- A class taht has errors to manage

	GAME_EVENTS*
			-- An abstract ancestor of every events managers

	GAME_EVENTS*
			-- An abstract ancestor of every events managers

	GAME_EVENTS_CONTROLLER
			-- Controler for the event. 
			-- It is important to call poll_event or wait_event regularly 
			-- if you want events to be launch.

	GAME_EVENTS_CONTROLLER
			-- Controler for the event. 
			-- It is important to call poll_event or wait_event regularly 
			-- if you want events to be launch.

	GAME_FILE
			-- Represent a file. With this, you can read information from a file

	GAME_FILE
			-- Represent a file. With this, you can read information from a file

	GAME_FINGERS_GESTURE
			-- A simple multi-touch fingers gesture (pinch, rotation, etc.)

	GAME_FINGERS_GESTURE
			-- A simple multi-touch fingers gesture (pinch, rotation, etc.)

	GAME_FINGER_EVENT
			-- An event that is trigger by a finger on a touch device

	GAME_FINGER_EVENT
			-- An event that is trigger by a finger on a touch device

	GAME_FINGER_STATE
			-- Snapshot of a finger state on a touch device

	GAME_FINGER_STATE
			-- Snapshot of a finger state on a touch device

	GAME_GESTURE*
			-- Common ancestor for every touch device gesture

	GAME_GESTURE*
			-- Common ancestor for every touch device gesture

	GAME_HAPTIC*
			-- Information and control of force feedback devices

	GAME_HAPTIC*
			-- Information and control of force feedback devices

	GAME_HAPTIC_CARTESIAN_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Direction is encoded by three position
			-- (X axis, Y axix and Z axis). Cardinal directions
			-- of the haptic device are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (0,-1,0)
			--                       ^
			--                       |
			--                       |
			-- (-1,0,0) West <----[ HAPTIC ]----> East (1,0,0)
			--                       |
			--                       |
			--                       v
			--                  South (0,1,0)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_CARTESIAN_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Direction is encoded by three position
			-- (X axis, Y axix and Z axis). Cardinal directions
			-- of the haptic device are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (0,-1,0)
			--                       ^
			--                       |
			--                       |
			-- (-1,0,0) West <----[ HAPTIC ]----> East (1,0,0)
			--                       |
			--                       |
			--                       v
			--                  South (0,1,0)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_CONDITION_EFFECT
			-- A GAME_HAPTIC_EFFECT that play depending on internal condition.

	GAME_HAPTIC_CONDITION_EFFECT
			-- A GAME_HAPTIC_EFFECT that play depending on internal condition.

	GAME_HAPTIC_CONSTANT_EFFECT
			-- A GAME_HAPTIC_EFFECT that play on a constant strength.

	GAME_HAPTIC_CONSTANT_EFFECT
			-- A GAME_HAPTIC_EFFECT that play on a constant strength.

	GAME_HAPTIC_CUSTOM_EFFECT
			-- GAME_HAPTIC_EFFECT that play at a custom strength.

	GAME_HAPTIC_CUSTOM_EFFECT
			-- GAME_HAPTIC_EFFECT that play at a custom strength.

	GAME_HAPTIC_DEVICE
			-- An haptic device uniquely identified with an index.

	GAME_HAPTIC_DEVICE
			-- An haptic device uniquely identified with an index.

	GAME_HAPTIC_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Cardinal directions of the haptic device
			-- are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (0,-1)
			--                       ^
			--                       |
			--                       |
			-- (-1,0) West <----[ HAPTIC ]----> East (1,0)
			--                       |
			--                       |
			--                       v
			--                  South (0,1)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Cardinal directions of the haptic device
			-- are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (0,-1)
			--                       ^
			--                       |
			--                       |
			-- (-1,0) West <----[ HAPTIC ]----> East (1,0)
			--                       |
			--                       |
			--                       v
			--                  South (0,1)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_EFFECT*
			-- An effect to play on a GAME_HAPTIC

	GAME_HAPTIC_EFFECT*
			-- An effect to play on a GAME_HAPTIC

	GAME_HAPTIC_EFFECT_COMPILED
			-- A GAME_HAPTIC_EFFECT that has been compiled for a GAME_HAPTIC

	GAME_HAPTIC_EFFECT_COMPILED
			-- A GAME_HAPTIC_EFFECT that has been compiled for a GAME_HAPTIC

	GAME_HAPTIC_EFFECT_DELAYED*
			-- A GAME_HAPTIC_EFFECT that have a starting delay and a restarting interval..

	GAME_HAPTIC_EFFECT_DELAYED*
			-- A GAME_HAPTIC_EFFECT that have a starting delay and a restarting interval..

	GAME_HAPTIC_EFFECT_ENVELOPE*
			-- A GAME_HAPTIC_EFFECT that has an envelope.
			-- An envelope contain a fade in and fade out effects
			-- that surround the haptic effect. Here is how it work
			-- (by using a {GAME_HAPTIC_EFFECT_CONSTANT}):
			-- 
			-- Strength
			-- ^
			-- |
			-- |     effect level -->  _________________
			-- |                      /                 \
			-- |                     /                   \
			-- |                    /                     \
			-- |                   /                       \ 
			-- | fade_in_level --> |                        \
			-- |                   |                        |  <---  fade_out_level
			-- | 
			-- +---------------------------------------------------> Time
			-- 
			--                     [--]                 [---]
			--                fade_in_length        fade_out_length
			--  
			--  [------------------][-----------------------]
			--        delay                 length

	GAME_HAPTIC_EFFECT_ENVELOPE*
			-- A GAME_HAPTIC_EFFECT that has an envelope.
			-- An envelope contain a fade in and fade out effects
			-- that surround the haptic effect. Here is how it work
			-- (by using a {GAME_HAPTIC_EFFECT_CONSTANT}):
			-- 
			-- Strength
			-- ^
			-- |
			-- |     effect level -->  _________________
			-- |                      /                 \
			-- |                     /                   \
			-- |                    /                     \
			-- |                   /                       \ 
			-- | fade_in_level --> |                        \
			-- |                   |                        |  <---  fade_out_level
			-- | 
			-- +---------------------------------------------------> Time
			-- 
			--                     [--]                 [---]
			--                fade_in_length        fade_out_length
			--  
			--  [------------------][-----------------------]
			--        delay                 length

	GAME_HAPTIC_EFFECT_INFINITE_LENGTH*
			-- A GAME_HAPTIC_EFFECT that can have an infinte length.

	GAME_HAPTIC_EFFECT_INFINITE_LENGTH*
			-- A GAME_HAPTIC_EFFECT that can have an infinte length.

	GAME_HAPTIC_JOYSTICK
			-- An haptic included inside a Joystick

	GAME_HAPTIC_JOYSTICK
			-- An haptic included inside a Joystick

	GAME_HAPTIC_LEFT_RIGHT_EFFECT
			-- A GAME_HAPTIC_EFFECT that can use a left and right motor.
			-- May be use also for Low and High frequency motors.

	GAME_HAPTIC_LEFT_RIGHT_EFFECT
			-- A GAME_HAPTIC_EFFECT that can use a left and right motor.
			-- May be use also for Low and High frequency motors.

	GAME_HAPTIC_MOUSE
			-- An haptic device inside a mouse

	GAME_HAPTIC_MOUSE
			-- An haptic device inside a mouse

	GAME_HAPTIC_PERIODIC_EFFECT
			-- A GAME_HAPTIC_EFFECT that play on a periodic strength.
			-- A periodic effect consists of a wave-shaped effect that
			-- repeats itself over time. Example:
			-- 
			-- button         period
			-- press          |     |
			--   ||      __    __    __    __    __    _
			--   ||     |  |  |  |  |  |  |  |  |  |   magnitude   __ Offset
			--   \/     |  |__|  |__|  |__|  |__|  |   _
			--     -----
			--       |
			--     delay          phase >>
			-- 
			-- -------------------------------------
			--               length
			-- ===================================================
			--                       interval

	GAME_HAPTIC_PERIODIC_EFFECT
			-- A GAME_HAPTIC_EFFECT that play on a periodic strength.
			-- A periodic effect consists of a wave-shaped effect that
			-- repeats itself over time. Example:
			-- 
			-- button         period
			-- press          |     |
			--   ||      __    __    __    __    __    _
			--   ||     |  |  |  |  |  |  |  |  |  |   magnitude   __ Offset
			--   \/     |  |__|  |__|  |__|  |__|  |   _
			--     -----
			--       |
			--     delay          phase >>
			-- 
			-- -------------------------------------
			--               length
			-- ===================================================
			--                       interval

	GAME_HAPTIC_POLAR_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Direction is encoded by hundredths of a
			-- degree starting north and turning clockwise. Cardinal directions
			-- of the haptic device are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (0)
			--                       ^
			--                       |
			--                       |
			-- (9000) West <----[ HAPTIC ]----> East (27000)
			--                       |
			--                       |
			--                       v
			--                  South (18000)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_POLAR_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Direction is encoded by hundredths of a
			-- degree starting north and turning clockwise. Cardinal directions
			-- of the haptic device are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (0)
			--                       ^
			--                       |
			--                       |
			-- (9000) West <----[ HAPTIC ]----> East (27000)
			--                       |
			--                       |
			--                       v
			--                  South (18000)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_RAMP_EFFECT
			-- A GAME_HAPTIC_EFFECT that have a linear ramp effect.

	GAME_HAPTIC_RAMP_EFFECT
			-- A GAME_HAPTIC_EFFECT that have a linear ramp effect.

	GAME_HAPTIC_SPHERICAL_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Direction is encoded by two rotation
			-- (the azimuth and inclination). Cardinal directions
			-- of the haptic device are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (27000)
			--                       ^
			--                       |
			--                       |
			-- (18000) West <----[ HAPTIC ]----> East (0)
			--                       |
			--                       |
			--                       v
			--                  South (9000)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_HAPTIC_SPHERICAL_DIRECTION
			-- Represent the direction that an effect come from (an not where
			-- it goes, be carefull). Direction is encoded by two rotation
			-- (the azimuth and inclination). Cardinal directions
			-- of the haptic device are relative to the positioning of the device. 
			-- North is considered to be away from the user, south is toward the user, 
			-- east is right, and west is left of the user:
			-- 
			--                .--.
			--                |__| .-------.
			--                |=.| |.-----.|
			--                |--| ||     ||
			--                |  | |'-----'|
			--                |__|~')_____('
			--                 [ COMPUTER ]
			-- 
			-- 
			--                  North (27000)
			--                       ^
			--                       |
			--                       |
			-- (18000) West <----[ HAPTIC ]----> East (0)
			--                       |
			--                       |
			--                       v
			--                  South (9000)
			-- 
			-- 
			--                  [ USER ]
			--                    \|||/
			--                    (o o)
			--              ---ooO-(_)-Ooo---

	GAME_IMAGE
			-- An image source used to create a GAME_SURFACE or a GAME_TEXTURE

	GAME_IMAGE
			-- An image source used to create a GAME_SURFACE or a GAME_TEXTURE

	GAME_IMAGE_BMP_CPF
			-- A bmp image from a custom package file.

	GAME_IMAGE_BMP_CPF
			-- A bmp image from a custom package file.

	GAME_IMAGE_BMP_FILE
			-- A image from a bmp image.

	GAME_IMAGE_BMP_FILE
			-- A image from a bmp image.

	GAME_JOYSTICK
			-- Joystick manager. Not tested. It is most probable that it does not work correctly

	GAME_JOYSTICK
			-- Joystick manager. Not tested. It is most probable that it does not work correctly

	GAME_JOYSTICK_EVENTS*
			-- Manage Joystick events

	GAME_JOYSTICK_EVENTS*
			-- Manage Joystick events

	GAME_JOYSTICK_HAT_STATE
			-- The state of a Joystick hat

	GAME_JOYSTICK_HAT_STATE
			-- The state of a Joystick hat

	GAME_KEY
			-- A keyboard key.

	GAME_KEY
			-- A keyboard key.

	GAME_KEY_EVENT
			-- Keyboard Events. To retreive the state of the keyboard. Must be return by an object of GAME_EVENT_CONTROLLER type.

	GAME_KEY_EVENT
			-- Keyboard Events. To retreive the state of the keyboard. Must be return by an object of GAME_EVENT_CONTROLLER type.

	GAME_KEY_MODIFIER*
			-- Common status report methods for types that hold a modifier value

	GAME_KEY_MODIFIER*
			-- Common status report methods for types that hold a modifier value

	GAME_LIBRARY_CONTROLLER
			-- Controller of the game library.

	GAME_LIBRARY_CONTROLLER
			-- Controller of the game library.

	GAME_LIBRARY_SHARED*
			-- Inherit from this class to use the GAME_LIBRARY_CONTROLLER singleton named game_library

	GAME_LIBRARY_SHARED*
			-- Inherit from this class to use the GAME_LIBRARY_CONTROLLER singleton named game_library

	GAME_MOUSE_BUTTON_EVENT*
			-- Encapsulates a mouse button event.
			-- Any instance represents one button only.

	GAME_MOUSE_BUTTON_EVENT*
			-- Encapsulates a mouse button event.
			-- Any instance represents one button only.

	GAME_MOUSE_BUTTON_MASK_COMMON*
			-- Common ancestor for mouse state and event with multiple mouse button recongnition

	GAME_MOUSE_BUTTON_MASK_COMMON*
			-- Common ancestor for mouse state and event with multiple mouse button recongnition

	GAME_MOUSE_BUTTON_PRESS_EVENT
			-- Encapsulates the press of a mouse button

	GAME_MOUSE_BUTTON_PRESS_EVENT
			-- Encapsulates the press of a mouse button

	GAME_MOUSE_BUTTON_RELEASE_EVENT
			-- Encapsulates the release of a mouse button

	GAME_MOUSE_BUTTON_RELEASE_EVENT
			-- Encapsulates the release of a mouse button

	GAME_MOUSE_COMMON*
			-- Common ancestor to mouse state and events

	GAME_MOUSE_COMMON*
			-- Common ancestor to mouse state and events

	GAME_MOUSE_EVENT
			-- The state of a mouse in an event context.

	GAME_MOUSE_EVENT
			-- The state of a mouse in an event context.

	GAME_MOUSE_EVENT_COMMON*
			-- Common interface for various mouse input events

	GAME_MOUSE_EVENT_COMMON*
			-- Common interface for various mouse input events

	GAME_MOUSE_MOTION_EVENT
			-- Encapsulates the state of a mouse during a movement

	GAME_MOUSE_MOTION_EVENT
			-- Encapsulates the state of a mouse during a movement

	GAME_MOUSE_STATE
			-- A snapshot of the state of a {GAME_MOUSE} at a certain time.
			-- Note that this information is not updated overtime.

	GAME_MOUSE_STATE
			-- A snapshot of the state of a {GAME_MOUSE} at a certain time.
			-- Note that this information is not updated overtime.

	GAME_PHYSICAL_KEY*
			-- A physical keyboard key.

	GAME_PHYSICAL_KEY*
			-- A physical keyboard key.

	GAME_PIXEL_BUFFER
			-- An internal array of pixels.

	GAME_PIXEL_BUFFER
			-- An internal array of pixels.

	GAME_PIXEL_FORMAT
			-- The way the pixels are store in memory.

	GAME_PIXEL_FORMAT
			-- The way the pixels are store in memory.

	GAME_PIXEL_FORMAT_READABLE
			-- Read-only version of a GAME_PIXEL_FORMAT.

	GAME_PIXEL_FORMAT_READABLE
			-- Read-only version of a GAME_PIXEL_FORMAT.

	GAME_PIXEL_READER
			-- Read access to an internal array of pixels.

	GAME_PIXEL_READER
			-- Read access to an internal array of pixels.

	GAME_PIXEL_READER_WRITER
			-- Read and write access to an internal array of pixels.

	GAME_PIXEL_READER_WRITER
			-- Read and write access to an internal array of pixels.

	GAME_PIXEL_WRITER
			-- Write access to an internal array of pixels.

	GAME_PIXEL_WRITER
			-- Write access to an internal array of pixels.

	GAME_RANDOM
			-- A simple random generator

	GAME_RANDOM
			-- A simple random generator

	GAME_RANDOM_SHARED*
			-- Inherit from this class to use the GAME_RANDOM singleton named game_library.
			-- Assign internal_random prior to use the random feature to set a custom
			-- GAME_RANDOM. May be quite useful for mock testing with a precise random seed.

	GAME_RANDOM_SHARED*
			-- Inherit from this class to use the GAME_RANDOM singleton named game_library.
			-- Assign internal_random prior to use the random feature to set a custom
			-- GAME_RANDOM. May be quite useful for mock testing with a precise random seed.

	GAME_RENDERER
			-- An object which does all the image rendering on a GAME_WINDOW

	GAME_RENDERER
			-- An object which does all the image rendering on a GAME_WINDOW

	GAME_RENDERER_DRIVER
			-- Information about a renderer driver.

	GAME_RENDERER_DRIVER
			-- Information about a renderer driver.

	GAME_RENDER_TARGET*
			-- Can be used by a renderer to draw on

	GAME_RENDER_TARGET*
			-- Can be used by a renderer to draw on

	GAME_RESSOURCE*
			-- A ressource manager. Must be herited from.

	GAME_RESSOURCE*
			-- A ressource manager. Must be herited from.

	GAME_RESSOURCE_MANAGER*
			-- A ressource manager. Must be herited from.

	GAME_RESSOURCE_MANAGER*
			-- A ressource manager. Must be herited from.

	GAME_SDL_ANY*
			-- Error manager for every class implemented by SDL2.

	GAME_SDL_ANY*
			-- Error manager for every class implemented by SDL2.

	GAME_SDL_COLOR
			-- GAME_COLOR to use with SDL

	GAME_SDL_COLOR
			-- GAME_COLOR to use with SDL

	GAME_SDL_EXTERNAL
			-- External of the SDL2 library.

	GAME_SDL_EXTERNAL
			-- External of the SDL2 library.

	GAME_SDL_SCANCODE
			-- Scancode values of the SDL2 library

	GAME_SDL_SCANCODE
			-- Scancode values of the SDL2 library

	GAME_SDL_VIRTUAL_KEY
			-- Keycodes enum of the SDL2 library.

	GAME_SDL_VIRTUAL_KEY
			-- Keycodes enum of the SDL2 library.

	GAME_SURFACE
			-- Representation of an image that can be paste on other image.

	GAME_SURFACE
			-- Representation of an image that can be paste on other image.

	GAME_SURFACE_ROTATE_ZOOM
			-- Create a GAME_SURFACE by applying an effect on another object of type GAME_SURFACE.

	GAME_SURFACE_ROTATE_ZOOM
			-- Create a GAME_SURFACE by applying an effect on another object of type GAME_SURFACE.

	GAME_TEXTURE
			-- A hardware accelerated picture in memory

	GAME_TEXTURE
			-- A hardware accelerated picture in memory

	GAME_TEXTURE_STREAMING
			-- A hardware accelerated picture in memory that can be quickly modified at run-time

	GAME_TEXTURE_STREAMING
			-- A hardware accelerated picture in memory that can be quickly modified at run-time

	GAME_TEXTURE_TARGET
			-- A hardware accelerated picture in memory that can be used as target of a GAME_RENDERER

	GAME_TEXTURE_TARGET
			-- A hardware accelerated picture in memory that can be used as target of a GAME_RENDERER

	GAME_TEXT_EXTERNAL
			-- External of the SDL2_ttf library.

	GAME_TEXT_EXTERNAL
			-- External of the SDL2_ttf library.

	GAME_TOUCH_DEVICE
			-- A touch input device that can detect finger pressure

	GAME_TOUCH_DEVICE
			-- A touch input device that can detect finger pressure

	GAME_TOUCH_DEVICE_EVENTS*
			-- Manage Touch device events

	GAME_TOUCH_DEVICE_EVENTS*
			-- Manage Touch device events

	GAME_VIRTUAL_KEY*
			-- A virtual keyboard key.

	GAME_VIRTUAL_KEY*
			-- A virtual keyboard key.

	GAME_WINDOW*
			-- A window.
			-- You need a renderer (see: GAME_WINDOW_RENDERED)
			-- or a window surface (see: GAME_WINDOW_SURFACED)
			-- to put thing on the window.

	GAME_WINDOW*
			-- A window.
			-- You need a renderer (see: GAME_WINDOW_RENDERED)
			-- or a window surface (see: GAME_WINDOW_SURFACED)
			-- to put thing on the window.

	GAME_WINDOW_BUILDER*
			-- A builder to create GAME_WINDOW

	GAME_WINDOW_BUILDER*
			-- A builder to create GAME_WINDOW

	GAME_WINDOW_EVENTS*
			-- Every events that can happend on a GAME_WINDOW

	GAME_WINDOW_EVENTS*
			-- Every events that can happend on a GAME_WINDOW

	GAME_WINDOW_GL
			-- A GAME_WINDOW that can be used directly with OpenGL.

	GAME_WINDOW_GL
			-- A GAME_WINDOW that can be used directly with OpenGL.

	GAME_WINDOW_GL_BUILDER
			-- A builder to create GAME_WINDOW_GL.

	GAME_WINDOW_GL_BUILDER
			-- A builder to create GAME_WINDOW_GL.

	GAME_WINDOW_MANAGER
			-- Represent the Window manager used by the operating system

	GAME_WINDOW_MANAGER
			-- Represent the Window manager used by the operating system

	GAME_WINDOW_RENDERED
			-- A GAME_WINDOW that is rendered by a GAME_RENDERER_DRIVER.

	GAME_WINDOW_RENDERED
			-- A GAME_WINDOW that is rendered by a GAME_RENDERER_DRIVER.

	GAME_WINDOW_RENDERED_BUILDER
			-- A builder to create GAME_WINDOW_RENDERED.

	GAME_WINDOW_RENDERED_BUILDER
			-- A builder to create GAME_WINDOW_RENDERED.

	GAME_WINDOW_SURFACED
			-- A GAME_WINDOW that directly use GAME_SURFACE to render.
			-- Note that GAME_WINDOW_SURFACED don't use hardware acceleration and is very slow.
			-- It should be use for slow application only. To use hardware acceleration,
			-- use the GAME_WINDOW_RENDERED type.

	GAME_WINDOW_SURFACED
			-- A GAME_WINDOW that directly use GAME_SURFACE to render.
			-- Note that GAME_WINDOW_SURFACED don't use hardware acceleration and is very slow.
			-- It should be use for slow application only. To use hardware acceleration,
			-- use the GAME_WINDOW_RENDERED type.

	GAME_WINDOW_SURFACED_BUILDER
			-- A builder to create GAME_WINDOW_SURFACED.

	GAME_WINDOW_SURFACED_BUILDER
			-- A builder to create GAME_WINDOW_SURFACED.

	GC_INFO
			-- Garbage collector statistics.
			-- This class may be used as ancestor by classes needing its facilities.
			-- Time accounting is relevant only if enable_time_accounting 
			-- (from MEMORY) has been called.

	GC_INFO
			-- Garbage collector statistics.
			-- This class may be used as ancestor by classes needing its facilities.
			-- Time accounting is relevant only if enable_time_accounting 
			-- (from MEMORY) has been called.

	GENERAL_SPECIAL_ITERATION_CURSOR* [G, H -> READABLE_INDEXABLE [G]]
			-- External forward one-step iteration cursor for structures that use SPECIAL for storage.

	GENERAL_SPECIAL_ITERATION_CURSOR* [G, H -> READABLE_INDEXABLE [G]]
			-- External forward one-step iteration cursor for structures that use SPECIAL for storage.

	HARDWARE_EXCEPTION*
			-- Deferred class for hardware exceptions

	HARDWARE_EXCEPTION*
			-- Deferred class for hardware exceptions

	HASHABLE*
			-- Values that may be hashed into an integer index, 
			-- for use as keys in hash tables

	HASHABLE*
			-- Values that may be hashed into an integer index, 
			-- for use as keys in hash tables

	HASH_TABLE [G, K -> detachable HASHABLE]
			-- Hash tables, used to store items identified by hashable keys

	HASH_TABLE [G, K -> detachable HASHABLE]
			-- Hash tables, used to store items identified by hashable keys

	HASH_TABLE_CURSOR
			-- Cursors for hash table traversal

	HASH_TABLE_CURSOR
			-- Cursors for hash table traversal

	HASH_TABLE_ITERATION_CURSOR [G, K -> detachable HASHABLE]
			-- An external iteration cursor for HASH_TABLE.

	HASH_TABLE_ITERATION_CURSOR [G, K -> detachable HASHABLE]
			-- An external iteration cursor for HASH_TABLE.

	HEAP_PRIORITY_QUEUE [G -> COMPARABLE]
			-- Priority queues implemented as heaps

	HEAP_PRIORITY_QUEUE [G -> COMPARABLE]
			-- Priority queues implemented as heaps

	HEAP_PRIORITY_QUEUE_ITERATION_CURSOR [G -> COMPARABLE]
			-- External iteration cursor for HEAP_PRIORITY_QUEUE.

	HEAP_PRIORITY_QUEUE_ITERATION_CURSOR [G -> COMPARABLE]
			-- External iteration cursor for HEAP_PRIORITY_QUEUE.

	HEXADECIMAL_STRING_TO_INTEGER_CONVERTER
			-- Convertor to do hexadecimal string to integer/natural conversion

	HEXADECIMAL_STRING_TO_INTEGER_CONVERTER
			-- Convertor to do hexadecimal string to integer/natural conversion

	HIERARCHICAL* [G]
			-- Hierarchical structures in which each item has zero or
			-- one immediate predecessor, and zero or more successors.

	HIERARCHICAL* [G]
			-- Hierarchical structures in which each item has zero or
			-- one immediate predecessor, and zero or more successors.

	IDENTIFIED
			-- Objects identified, uniquely during any session, by an integer

	IDENTIFIED
			-- Objects identified, uniquely during any session, by an integer

	IDENTIFIED_CONTROLLER
			-- Externals for managing the object id stack (see identified.e)

	IDENTIFIED_CONTROLLER
			-- Externals for managing the object id stack (see identified.e)

	IDENTIFIED_ROUTINES
			-- Objects identified, uniquely during any session, by an integer

	IDENTIFIED_ROUTINES
			-- Objects identified, uniquely during any session, by an integer

	IMG_ANY*
			-- A common ancestor for any image library classes

	IMG_ANY*
			-- A common ancestor for any image library classes

	IMG_CONTROLLER
			-- The controller of the game images files library.

	IMG_CONTROLLER
			-- The controller of the game images files library.

	IMG_IMAGE_CPF
			-- An image from a custom package file.

	IMG_IMAGE_CPF
			-- An image from a custom package file.

	IMG_IMAGE_FILE
			-- An image from an image file

	IMG_IMAGE_FILE
			-- An image from an image file

	IMG_LIBRARY_SHARED*
			-- The shared class to distribute the IMG_CONTROLLER singleton.
			-- Must inherit from this class.

	IMG_LIBRARY_SHARED*
			-- The shared class to distribute the IMG_CONTROLLER singleton.
			-- Must inherit from this class.

	IMG_SDL_IMAGE_EXTERNAL
			-- External of the SDL_image library.

	IMG_SDL_IMAGE_EXTERNAL
			-- External of the SDL_image library.

	IMMUTABLE_STRING_32
			-- Sequences of immutable 32-bit characters, accessible through integer indices
			-- in a contiguous range.

	IMMUTABLE_STRING_32
			-- Sequences of immutable 32-bit characters, accessible through integer indices
			-- in a contiguous range.

	IMMUTABLE_STRING_8
			-- Sequences of immutable 8-bit characters, accessible through integer indices
			-- in a contiguous range.

	IMMUTABLE_STRING_8
			-- Sequences of immutable 8-bit characters, accessible through integer indices
			-- in a contiguous range.

	IMMUTABLE_STRING_GENERAL*
			-- Common ancestors to all immutable STRING classes.

	IMMUTABLE_STRING_GENERAL*
			-- Common ancestors to all immutable STRING classes.

	INDEXABLE* [G, H -> INTEGER_32]
			-- Tables whose keys are integers in a contiguous interval

	INDEXABLE* [G, H -> INTEGER_32]
			-- Tables whose keys are integers in a contiguous interval

	INDEXABLE_ITERATION_CURSOR* [G]
			-- External iteration cursor for READABLE_INDEXABLE.

	INDEXABLE_ITERATION_CURSOR* [G]
			-- External iteration cursor for READABLE_INDEXABLE.

	INFINITE* [G]
			-- Infinite containers.

	INFINITE* [G]
			-- Infinite containers.

	INTEGER_16
			-- Integer values coded on 16 bits

	INTEGER_16
			-- Integer values coded on 16 bits

	INTEGER_16_REF
			-- References to objects containing an integer value coded on 16 bits

	INTEGER_16_REF
			-- References to objects containing an integer value coded on 16 bits

	INTEGER_32
			-- Integer values

	INTEGER_32
			-- Integer values

	INTEGER_32_REF
			-- References to objects containing an integer value coded on 32 bits

	INTEGER_32_REF
			-- References to objects containing an integer value coded on 32 bits

	INTEGER_64
			-- Integer values coded on 64 bits

	INTEGER_64
			-- Integer values coded on 64 bits

	INTEGER_64_REF
			-- References to objects containing an integer value coded on 64 bits

	INTEGER_64_REF
			-- References to objects containing an integer value coded on 64 bits

	INTEGER_8
			-- Integer values coded on 8 bits

	INTEGER_8
			-- Integer values coded on 8 bits

	INTEGER_8_REF
			-- References to objects containing an integer value coded on 8 bits

	INTEGER_8_REF
			-- References to objects containing an integer value coded on 8 bits

	INTEGER_INTERVAL
			-- Contiguous integer intervals

	INTEGER_INTERVAL
			-- Contiguous integer intervals

	INTEGER_OVERFLOW_CHECKER
			-- String - Integer/Natural conversion overflow checker

	INTEGER_OVERFLOW_CHECKER
			-- String - Integer/Natural conversion overflow checker

	INTERACTIVE_LIST* [G]
			-- Sequential, one-way linked lists that call add/remove features
			-- when an item is removed or added.

	INTERACTIVE_LIST* [G]
			-- Sequential, one-way linked lists that call add/remove features
			-- when an item is removed or added.

	INTERNAL
			-- Access to internal object properties.
			-- This class may be used as ancestor by classes needing its facilities.

	INTERNAL
			-- Access to internal object properties.
			-- This class may be used as ancestor by classes needing its facilities.

	INTERNAL_HELPER
			-- Helper for routines in REFLECTOR class.

	INTERNAL_HELPER
			-- Helper for routines in REFLECTOR class.

	INVARIANT_VIOLATION
			-- Exception representing an invariant violation

	INVARIANT_VIOLATION
			-- Exception representing an invariant violation

	IO_FAILURE
			-- IO failure

	IO_FAILURE
			-- IO failure

	IO_MEDIUM*
			-- Any medium that can perform input and/or output

	IO_MEDIUM*
			-- Any medium that can perform input and/or output

	ISE_EXCEPTION_MANAGER
			-- Exception manager. 
			-- The manager handles all common operations of exception mechanism and interaction with the ISE runtime.

	ISE_EXCEPTION_MANAGER
			-- Exception manager. 
			-- The manager handles all common operations of exception mechanism and interaction with the ISE runtime.

	ISE_RUNTIME
			-- Set of features to access ISE runtime functionality.
			-- To be used at your own risk.
			-- Interface may changed without notice.

	ISE_RUNTIME
			-- Set of features to access ISE runtime functionality.
			-- To be used at your own risk.
			-- Interface may changed without notice.

	ISE_SCOOP_RUNTIME
			-- Features to access and interact with the SCOOP runtime.

	ISE_SCOOP_RUNTIME
			-- Features to access and interact with the SCOOP runtime.

	ITERABLE* [G]
			-- Structure that can be iterated over using across...loop...end.

	ITERABLE* [G]
			-- Structure that can be iterated over using across...loop...end.

	ITERATION_CURSOR* [G]
			-- External iteration cursor used by across...loop...end.

	ITERATION_CURSOR* [G]
			-- External iteration cursor used by across...loop...end.

	ITERATOR* [G]
			-- Objects that are able to iterate over traversable structures,
			-- on which they can perform repeated actions and tests according
			-- to a number of predefined control structures such as if,
			-- until and others.

	ITERATOR* [G]
			-- Objects that are able to iterate over traversable structures,
			-- on which they can perform repeated actions and tests according
			-- to a number of predefined control structures such as if,
			-- until and others.

	LANGUAGE_EXCEPTION*
			-- Eiffel language exception

	LANGUAGE_EXCEPTION*
			-- Eiffel language exception

	LINEAR* [G]
			-- Structures whose items may be accessed sequentially, one-way

	LINEAR* [G]
			-- Structures whose items may be accessed sequentially, one-way

	LINEAR_ITERATOR [G]
			-- Objects that are able to iterate over linear structures

	LINEAR_ITERATOR [G]
			-- Objects that are able to iterate over linear structures

	LINEAR_SUBSET* [G]
			-- Subsets that are traversable linearly without commitment to a concrete
			-- implementation.

	LINEAR_SUBSET* [G]
			-- Subsets that are traversable linearly without commitment to a concrete
			-- implementation.

	LINKABLE [G]
			-- Linkable cells containing a reference to their right neighbor

	LINKABLE [G]
			-- Linkable cells containing a reference to their right neighbor

	LINKED_CIRCULAR [G]
			-- Circular chains implemented as linked lists

	LINKED_CIRCULAR [G]
			-- Circular chains implemented as linked lists

	LINKED_LIST [G]
			-- Sequential, one-way linked lists

	LINKED_LIST [G]
			-- Sequential, one-way linked lists

	LINKED_LIST_CURSOR [G]
			-- Cursors for linked lists

	LINKED_LIST_CURSOR [G]
			-- Cursors for linked lists

	LINKED_LIST_ITERATION_CURSOR [G]
			-- Concrete of an external iteration cursor for LINKED_LIST. Reversed traversal has a (n (n + 1)) / 2 operations cost.

	LINKED_LIST_ITERATION_CURSOR [G]
			-- Concrete of an external iteration cursor for LINKED_LIST. Reversed traversal has a (n (n + 1)) / 2 operations cost.

	LINKED_PRIORITY_QUEUE [G -> COMPARABLE]
			-- Priority queues implemented as sorted lists

	LINKED_PRIORITY_QUEUE [G -> COMPARABLE]
			-- Priority queues implemented as sorted lists

	LINKED_QUEUE [G]
			-- Unbounded queues implemented as linked lists

	LINKED_QUEUE [G]
			-- Unbounded queues implemented as linked lists

	LINKED_SET [G]
			-- Sets implemented by linked lists

	LINKED_SET [G]
			-- Sets implemented by linked lists

	LINKED_STACK [G]
			-- Unbounded stacks implemented as linked lists

	LINKED_STACK [G]
			-- Unbounded stacks implemented as linked lists

	LINKED_TREE [G]
			-- Trees implemented using a linked list representation

	LINKED_TREE [G]
			-- Trees implemented using a linked list representation

	LINKED_TREE_CURSOR [G]
			-- Cursors for linked trees

	LINKED_TREE_CURSOR [G]
			-- Cursors for linked trees

	LINKED_TREE_ITERATION_CURSOR [G]
			-- External forward iteration cursor for descendants of LINKED_TREE.

	LINKED_TREE_ITERATION_CURSOR [G]
			-- External forward iteration cursor for descendants of LINKED_TREE.

	LIST* [G]
			-- Sequential lists, without commitment to a particular representation

	LIST* [G]
			-- Sequential lists, without commitment to a particular representation

	LOOP_INVARIANT_VIOLATION
			-- Exception raised for violated loop invariant

	LOOP_INVARIANT_VIOLATION
			-- Exception raised for violated loop invariant

	MACHINE_EXCEPTION*
			-- Deferred class for machine exception, operation exceptions and hardware exceptions

	MACHINE_EXCEPTION*
			-- Deferred class for machine exception, operation exceptions and hardware exceptions

	MANAGED_POINTER
			-- To easily manage allocation and release of allocated C memory, and
			-- to perform insertion of basic elements. Byte order is by default
			-- platform specific.
			-- Although memory allocation routines do not accept a zero sized pointer
			-- MANAGED_POINTER does by allocating in fact a 1 byte sized pointer for
			-- this particular case.

	MANAGED_POINTER
			-- To easily manage allocation and release of allocated C memory, and
			-- to perform insertion of basic elements. Byte order is by default
			-- platform specific.
			-- Although memory allocation routines do not accept a zero sized pointer
			-- MANAGED_POINTER does by allocating in fact a 1 byte sized pointer for
			-- this particular case.

	MATH_CONST
			-- Basic mathematical constants.
			-- This class may be used as ancestor by classes needing its facilities.

	MATH_CONST
			-- Basic mathematical constants.
			-- This class may be used as ancestor by classes needing its facilities.

	MEMORY
			-- Facilities for tuning up the garbage collection mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	MEMORY
			-- Facilities for tuning up the garbage collection mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	MEMORY_STREAM
			-- Stream of data stored in non Eiffel memory

	MEMORY_STREAM
			-- Stream of data stored in non Eiffel memory

	MEMORY_STRUCTURE*
			-- Representation of a memory structure.

	MEMORY_STRUCTURE*
			-- Representation of a memory structure.

	MEM_CONST
			-- Constants used by memory management.
			-- This class may be used as ancestor by classes needing its facilities.

	MEM_CONST
			-- Constants used by memory management.
			-- This class may be used as ancestor by classes needing its facilities.

	MEM_INFO
			-- Properties of the memory management mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	MEM_INFO
			-- Properties of the memory management mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	METADATA_AUDIO_SOUND*
			-- An AUDIO_SOUND file format that can contain metadatas

	METADATA_AUDIO_SOUND*
			-- An AUDIO_SOUND file format that can contain metadatas

	MISMATCH_CORRECTOR
			-- Ancestor of all classes that need facility to retrieve an older version of an instance of current
			-- class through storable.
			-- Redefine correct_mismatch to get data from mismatch_information about found mismatch. A mismatch
			-- might be the addition or the removal of an attribute as well as an attribute type change.

	MISMATCH_CORRECTOR
			-- Ancestor of all classes that need facility to retrieve an older version of an instance of current
			-- class through storable.
			-- Redefine correct_mismatch to get data from mismatch_information about found mismatch. A mismatch
			-- might be the addition or the removal of an attribute as well as an attribute type change.

	MISMATCH_FAILURE
			-- Exception for retrieval error, 
			-- may be raised by retrieved in IO_MEDIUM.

	MISMATCH_FAILURE
			-- Exception for retrieval error, 
			-- may be raised by retrieved in IO_MEDIUM.

	MISMATCH_INFORMATION
			-- Original values of the attributes of a mismatched object.

	MISMATCH_INFORMATION
			-- Original values of the attributes of a mismatched object.

	MPG_ERROR_MANAGER
			-- Error manager frontend for the MPG123 internal library

	MPG_ERROR_MANAGER
			-- Error manager frontend for the MPG123 internal library

	MPG_EXTERNAL
			-- Wrapper for the MPG123 internal library

	MPG_EXTERNAL
			-- Wrapper for the MPG123 internal library

	MPG_LIBRARY_CONTROLLER
			-- Singleton controller for the MPG library

	MPG_LIBRARY_CONTROLLER
			-- Singleton controller for the MPG library

	MPG_LIBRARY_SHARED*
			-- Used to shared the mpg_library singleton

	MPG_LIBRARY_SHARED*
			-- Used to shared the mpg_library singleton

	MPG_SOUND_FILE
			-- An AUDIO_SOUND that has been loaded from an MPG file

	MPG_SOUND_FILE
			-- An AUDIO_SOUND that has been loaded from an MPG file

	MULTAR_LIST_CURSOR [G]
			-- Cursors for multi-array trees

	MULTAR_LIST_CURSOR [G]
			-- Cursors for multi-array trees

	MULTI_ARRAY_LIST [G]
			-- Lists implemented as sequences of arrays, the last of which may
			-- be non-full. No limit on size (a new array is allocated if list
			-- outgrows its initial allocation).

	MULTI_ARRAY_LIST [G]
			-- Lists implemented as sequences of arrays, the last of which may
			-- be non-full. No limit on size (a new array is allocated if list
			-- outgrows its initial allocation).

	MUTEX
			-- Mutex synchronization object, allows threads to access global data through critical sections. Mutexes are recursive.

	MUTEX
			-- Mutex synchronization object, allows threads to access global data through critical sections. Mutexes are recursive.

	NATIVE_ARRAY [G]
			-- Fake abstraction of a .NET NATIVE_ARRAY in a non-.NET system

	NATIVE_ARRAY [G]
			-- Fake abstraction of a .NET NATIVE_ARRAY in a non-.NET system

	NATIVE_STRING
			-- Platform specific encoding of Unicode strings. By default, UTF-8 on unix or UTF-16 on Windows.
			-- 
			-- Mixed-encoding consideration
			-- ============================
			-- 
			-- Most operating systems have conventions for strings that are incompatible with Unicode.
			-- On UNIX, a string is just a null-terminated byte sequence, it does not follow any
			-- specific encoding. Usually the locale setting enables you to see the string the way
			-- you expect.
			-- On Windows, the sequence of names is made of null-terminated UTF-16 code unit sequence. Windows
			-- does not guarantee that the sequence is actually a valid UTF-16 sequence.
			-- 
			-- In other words, when there is an invalid UTF-8 encoding on UNIX, or an invalid UTF-16 encoding
			-- on Windows, the string is not directly representable as a Unicode string. To make it possible
			-- to create and store strings in a textually representable form, the query string will create
			-- an encoded representation that can be then later used in make to create a NATIVE_STRING
			-- equivalent to the original string. The encoding is described in UTF_CONVERTER's note clause
			-- and is a fourth variant of the recommended practice for replacement characters in Unicode
			-- (see http://www.unicode.org/review/pr-121.html).
			-- 

	NATIVE_STRING
			-- Platform specific encoding of Unicode strings. By default, UTF-8 on unix or UTF-16 on Windows.
			-- 
			-- Mixed-encoding consideration
			-- ============================
			-- 
			-- Most operating systems have conventions for strings that are incompatible with Unicode.
			-- On UNIX, a string is just a null-terminated byte sequence, it does not follow any
			-- specific encoding. Usually the locale setting enables you to see the string the way
			-- you expect.
			-- On Windows, the sequence of names is made of null-terminated UTF-16 code unit sequence. Windows
			-- does not guarantee that the sequence is actually a valid UTF-16 sequence.
			-- 
			-- In other words, when there is an invalid UTF-8 encoding on UNIX, or an invalid UTF-16 encoding
			-- on Windows, the string is not directly representable as a Unicode string. To make it possible
			-- to create and store strings in a textually representable form, the query string will create
			-- an encoded representation that can be then later used in make to create a NATIVE_STRING
			-- equivalent to the original string. The encoding is described in UTF_CONVERTER's note clause
			-- and is a fourth variant of the recommended practice for replacement characters in Unicode
			-- (see http://www.unicode.org/review/pr-121.html).
			-- 

	NATIVE_STRING_HANDLER
			-- Objects that can access low level features of {FILE_INFO} to access the underlying operating system encoding of file names.

	NATIVE_STRING_HANDLER
			-- Objects that can access low level features of {FILE_INFO} to access the underlying operating system encoding of file names.

	NATURAL_16
			-- Unsigned integer values coded on 16 bits

	NATURAL_16
			-- Unsigned integer values coded on 16 bits

	NATURAL_16_REF
			-- References to objects containing an unsigned integer value coded on 16 bits.

	NATURAL_16_REF
			-- References to objects containing an unsigned integer value coded on 16 bits.

	NATURAL_32
			-- Unsigned integer values coded on 32 bits.

	NATURAL_32
			-- Unsigned integer values coded on 32 bits.

	NATURAL_32_REF
			-- References to objects containing an unsigned integer value coded on 32 bits.

	NATURAL_32_REF
			-- References to objects containing an unsigned integer value coded on 32 bits.

	NATURAL_64
			-- Unsigned integer values coded on 64 bits

	NATURAL_64
			-- Unsigned integer values coded on 64 bits

	NATURAL_64_REF
			-- References to objects containing an unsigned integer value coded on 64 bits.

	NATURAL_64_REF
			-- References to objects containing an unsigned integer value coded on 64 bits.

	NATURAL_8
			-- Integer values coded on 8 bits

	NATURAL_8
			-- Integer values coded on 8 bits

	NATURAL_8_REF
			-- References to objects containing an unsigned integer value coded on 8 bits.

	NATURAL_8_REF
			-- References to objects containing an unsigned integer value coded on 8 bits.

	NO_MORE_MEMORY
			-- Exception raised when no more memory can be allocated.

	NO_MORE_MEMORY
			-- Exception raised when no more memory can be allocated.

	NUMERIC*
			-- Objects to which numerical operations are applicable
			-- Note: The model is that of a commutative ring.

	NUMERIC*
			-- Objects to which numerical operations are applicable
			-- Note: The model is that of a commutative ring.

	NUMERIC_INFORMATION
			-- Information about integer, natural and real type in Eiffel

	NUMERIC_INFORMATION
			-- Information about integer, natural and real type in Eiffel

	OBJECT_GRAPH_BREADTH_FIRST_TRAVERSABLE
			-- Objects that traverse object graphs starting at the root object in a breadth first manner.

	OBJECT_GRAPH_BREADTH_FIRST_TRAVERSABLE
			-- Objects that traverse object graphs starting at the root object in a breadth first manner.

	OBJECT_GRAPH_DEPTH_FIRST_TRAVERSABLE
			-- Objects that traverse object graphs starting at the root object in a depth first manner.

	OBJECT_GRAPH_DEPTH_FIRST_TRAVERSABLE
			-- Objects that traverse object graphs starting at the root object in a depth first manner.

	OBJECT_GRAPH_MARKER
			-- Facility to mark objects once when traversing an object graph.

	OBJECT_GRAPH_MARKER
			-- Facility to mark objects once when traversing an object graph.

	OBJECT_GRAPH_TRAVERSABLE*
			-- Utility class to traverse object graphs starting at a root object.
			-- 
			-- 
			-- When traversing a graph the class distinguishes four different types of references:
			-- 
			-- (1) Normal references
			-- (2) References with copy-semantics, which are usually seen when attaching 
			-- an expanded object to an ANY reference
			-- (3) User-defined expanded objects, embedded inside another object. 
			-- Semantically this is a special case of a copy-semantics reference.
			-- (4) Language-defined expanded objects (INTEGER, POINTER etc) embedded inside another object. 
			-- Semantically, this is a special case of a copy-semantics reference.
			-- 
			-- This class will follow all reference types except (4). 
			-- 
			-- During traversal the agent on_processing_object_action will be called for each object
			-- and the agent on_processing_reference_action for each reference, if present. This includes
			-- references to objects that have already been processed.
			-- 
			-- The algorighm has two output values: visited_objects and visited_types:
			-- Any standard object without copy-semantics (i.e. reference type (1)) will be stored
			-- by aliasing inside visited_object. For references of type (2) and (3) a copy will be stored.
			-- The visited_types hash table contains the dynamic type id of all types encountered during 
			-- traversal. The key and value in the hashtable are the same.
			-- 
			-- Setting is_skip_copy_semantics_reference to true means that references of (2) and (3) will
			-- not be stored in visited_types. Note that this is the only effect of this setting - i.e.
			-- the traversal algorithm will still follow the references, the agents will be called, and the
			-- visited_types array will be extended anyway.
			-- 
			-- NOTE:
			-- 
			-- Due to a limitation in the reflection library, references of type (2) and (3) within TUPLE 
			-- and references of type (3) within SPECIAL cannot be handled without causing a copy. This is 
			-- problematic for agents, especially when they want to change the object. Therefore
			-- the algorithm will raise an exception when an agent is attached.
			-- In read-only situations it may be acceptable to use a copy of an object. Therefore to disable the
			-- exception behaviour you can set is_exception_on_copy_suppressed to True.
			-- 
			-- NOTE:
			-- 
			-- To maintain backwards compatibility the traversal algorithm will silently ignore any kind of 
			-- exception and just return normally, with traversed_objects set to whatever value it had before 
			-- invoking traverse. In order to get exceptions you need to set is_exception_propagated to True.

	OBJECT_GRAPH_TRAVERSABLE*
			-- Utility class to traverse object graphs starting at a root object.
			-- 
			-- 
			-- When traversing a graph the class distinguishes four different types of references:
			-- 
			-- (1) Normal references
			-- (2) References with copy-semantics, which are usually seen when attaching 
			-- an expanded object to an ANY reference
			-- (3) User-defined expanded objects, embedded inside another object. 
			-- Semantically this is a special case of a copy-semantics reference.
			-- (4) Language-defined expanded objects (INTEGER, POINTER etc) embedded inside another object. 
			-- Semantically, this is a special case of a copy-semantics reference.
			-- 
			-- This class will follow all reference types except (4). 
			-- 
			-- During traversal the agent on_processing_object_action will be called for each object
			-- and the agent on_processing_reference_action for each reference, if present. This includes
			-- references to objects that have already been processed.
			-- 
			-- The algorighm has two output values: visited_objects and visited_types:
			-- Any standard object without copy-semantics (i.e. reference type (1)) will be stored
			-- by aliasing inside visited_object. For references of type (2) and (3) a copy will be stored.
			-- The visited_types hash table contains the dynamic type id of all types encountered during 
			-- traversal. The key and value in the hashtable are the same.
			-- 
			-- Setting is_skip_copy_semantics_reference to true means that references of (2) and (3) will
			-- not be stored in visited_types. Note that this is the only effect of this setting - i.e.
			-- the traversal algorithm will still follow the references, the agents will be called, and the
			-- visited_types array will be extended anyway.
			-- 
			-- NOTE:
			-- 
			-- Due to a limitation in the reflection library, references of type (2) and (3) within TUPLE 
			-- and references of type (3) within SPECIAL cannot be handled without causing a copy. This is 
			-- problematic for agents, especially when they want to change the object. Therefore
			-- the algorithm will raise an exception when an agent is attached.
			-- In read-only situations it may be acceptable to use a copy of an object. Therefore to disable the
			-- exception behaviour you can set is_exception_on_copy_suppressed to True.
			-- 
			-- NOTE:
			-- 
			-- To maintain backwards compatibility the traversal algorithm will silently ignore any kind of 
			-- exception and just return normally, with traversed_objects set to whatever value it had before 
			-- invoking traverse. In order to get exceptions you need to set is_exception_propagated to True.

	OBSOLETE_EXCEPTION*
			-- Obsolete exception

	OBSOLETE_EXCEPTION*
			-- Obsolete exception

	OLD_VIOLATION
			-- Exception raised when an old expression evaluation failure was recorded and the expression access is attempted in postcondition.

	OLD_VIOLATION
			-- Exception raised when an old expression evaluation failure was recorded and the expression access is attempted in postcondition.

	OPERATING_ENVIRONMENT
			-- The objects available from the operating system

	OPERATING_ENVIRONMENT
			-- The objects available from the operating system

	OPERATING_SYSTEM_EXCEPTION*
			-- Operating system exception

	OPERATING_SYSTEM_EXCEPTION*
			-- Operating system exception

	OPERATING_SYSTEM_FAILURE
			-- Operating system failure

	OPERATING_SYSTEM_FAILURE
			-- Operating system failure

	OPERATING_SYSTEM_SIGNAL_FAILURE
			-- Operating system signal failure

	OPERATING_SYSTEM_SIGNAL_FAILURE
			-- Operating system signal failure

	PART_COMPARABLE*
			-- Objects that may be compared according to a partial order relation

	PART_COMPARABLE*
			-- Objects that may be compared according to a partial order relation

	PART_SORTED_LIST* [G -> PART_COMPARABLE]
			-- Sequential lists whose items are sorted in ascending order
			-- according to the relational operators of PART_COMPARABLE

	PART_SORTED_LIST* [G -> PART_COMPARABLE]
			-- Sequential lists whose items are sorted in ascending order
			-- according to the relational operators of PART_COMPARABLE

	PART_SORTED_SET [G -> PART_COMPARABLE]
			-- Sets whose items may be compared according to a partial order relation
			-- implemented as sorted two-way lists.

	PART_SORTED_SET [G -> PART_COMPARABLE]
			-- Sets whose items may be compared according to a partial order relation
			-- implemented as sorted two-way lists.

	PART_SORTED_TWO_WAY_LIST [G -> PART_COMPARABLE]
			-- Two-way lists, kept sorted

	PART_SORTED_TWO_WAY_LIST [G -> PART_COMPARABLE]
			-- Two-way lists, kept sorted

	PATH
			-- Objects representing a path, i.e. a way to identify a file or a directory for the
			-- current underlying platform. A path is made of two components:
			-- 1 - an optional root which can either be:
			-- a - a drive letter followed by colon on Windows, i.e. "C:" or "C:\"
			-- b - "/" for UNIX root directory.
			-- c - "\" for Windows root directory.
			-- d - "\\server\share" or "\\server\share\" for Microsoft UNC path.
			-- 2 - a sequence of zero or more names.
			-- 
			-- A path is absolute if it has a root, and on windows if the root is a drive, then it should
			-- be followed by "\". Otherwise a path is relative.
			-- 
			-- 
			-- Validity
			-- ========
			-- 
			-- The current class will not check the validity of filenames. Check your file
			-- system for your operating system manual for the list of invalid characters.
			-- 
			-- 
			-- Windows consideration
			-- =====================
			-- 
			-- When the root of a Windows path is a drive, be aware of the following behavior:
			-- 1 - "C:filename.txt" refers to the file name "filename.txt" in the current directory 
			--     on drive "C:".
			-- 2 - "C:sub\filename.txt" refers to the file name "filename.txt" in a subdirectory "sub"
			--     of the current directory on drive "C:".
			-- 3 - "C:\sub\filename.txt" refers to the file name "filename.txt" in a subdirectory "sub"
			--     located at the root of the drive "C:".
			-- 
			-- Both forward and backslashes are accepted, but forward slashes are internally converted
			-- to backward slashes whenever they are used to construct a path.
			-- 
			-- On Windows, there is a limit of 259 characters for a path. If you need to create a larger
			-- path, you can do so by using the following conventions which will let you have paths of
			-- about 32,767 characters:
			-- 1 - Use \\?\ for non-UNC path and let the rest unchanged.
			-- 2 - Use \\?\UNC\server\share for UNC path and let the rest unchanged.
			-- The above path cannot be used to specify a relative path.
			-- 
			-- To know more about Windows paths, read the "Naming Files, Paths, and Namespaces"
			-- document located at:
			--   http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
			-- 
			-- 
			-- Unicode consideration
			-- =====================
			-- 
			-- The PATH class treats strings as sequence of Unicode characters, i.e. an instance of 
			-- a READABLE_STRING_8 or descendant will be treated as if characters in the range
			-- 128 .. 255 were Unicode code points.
			-- This contrasts to the FILE/DIRECTORY classes where to preserve backward compatibility, those
			-- characters are treated as is.
			-- 
			-- 
			-- Mixed-encoding consideration
			-- ============================
			-- 
			-- Most operating systems have conventions for paths that are incompatible with Unicode.
			-- On UNIX, in a sequence of names, each name is just a null-terminated byte sequence, it
			-- does not follow any specific encoding. Usually the locale setting enables you to see
			-- the filename the way you expect.
			-- On Windows, the sequence of names is made of null-terminated UTF-16 code unit sequence. Windows
			-- does not guarantee that the sequence is actually a valid UTF-16 sequence.
			-- 
			-- In other words, when there is an invalid UTF-8 encoding on UNIX, or an invalid UTF-16 encoding
			-- on Windows, the filename is not directly representable as a Unicode string. To make it possible
			-- to create and store paths in a textually representable form, the query name will create
			-- an encoded representation that can be then later used in make_from_string to create a PATH
			-- equivalent to the original path. The encoding is described in UTF_CONVERTER's note clause
			-- and is a fourth variant of the recommended practice for replacement characters in Unicode
			-- (see http://www.unicode.org/review/pr-121.html).
			-- 
			-- 
			-- Immutability
			-- ============
			-- 
			-- Instances of the current class are immutable.

	PATH
			-- Objects representing a path, i.e. a way to identify a file or a directory for the
			-- current underlying platform. A path is made of two components:
			-- 1 - an optional root which can either be:
			-- a - a drive letter followed by colon on Windows, i.e. "C:" or "C:\"
			-- b - "/" for UNIX root directory.
			-- c - "\" for Windows root directory.
			-- d - "\\server\share" or "\\server\share\" for Microsoft UNC path.
			-- 2 - a sequence of zero or more names.
			-- 
			-- A path is absolute if it has a root, and on windows if the root is a drive, then it should
			-- be followed by "\". Otherwise a path is relative.
			-- 
			-- 
			-- Validity
			-- ========
			-- 
			-- The current class will not check the validity of filenames. Check your file
			-- system for your operating system manual for the list of invalid characters.
			-- 
			-- 
			-- Windows consideration
			-- =====================
			-- 
			-- When the root of a Windows path is a drive, be aware of the following behavior:
			-- 1 - "C:filename.txt" refers to the file name "filename.txt" in the current directory 
			--     on drive "C:".
			-- 2 - "C:sub\filename.txt" refers to the file name "filename.txt" in a subdirectory "sub"
			--     of the current directory on drive "C:".
			-- 3 - "C:\sub\filename.txt" refers to the file name "filename.txt" in a subdirectory "sub"
			--     located at the root of the drive "C:".
			-- 
			-- Both forward and backslashes are accepted, but forward slashes are internally converted
			-- to backward slashes whenever they are used to construct a path.
			-- 
			-- On Windows, there is a limit of 259 characters for a path. If you need to create a larger
			-- path, you can do so by using the following conventions which will let you have paths of
			-- about 32,767 characters:
			-- 1 - Use \\?\ for non-UNC path and let the rest unchanged.
			-- 2 - Use \\?\UNC\server\share for UNC path and let the rest unchanged.
			-- The above path cannot be used to specify a relative path.
			-- 
			-- To know more about Windows paths, read the "Naming Files, Paths, and Namespaces"
			-- document located at:
			--   http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
			-- 
			-- 
			-- Unicode consideration
			-- =====================
			-- 
			-- The PATH class treats strings as sequence of Unicode characters, i.e. an instance of 
			-- a READABLE_STRING_8 or descendant will be treated as if characters in the range
			-- 128 .. 255 were Unicode code points.
			-- This contrasts to the FILE/DIRECTORY classes where to preserve backward compatibility, those
			-- characters are treated as is.
			-- 
			-- 
			-- Mixed-encoding consideration
			-- ============================
			-- 
			-- Most operating systems have conventions for paths that are incompatible with Unicode.
			-- On UNIX, in a sequence of names, each name is just a null-terminated byte sequence, it
			-- does not follow any specific encoding. Usually the locale setting enables you to see
			-- the filename the way you expect.
			-- On Windows, the sequence of names is made of null-terminated UTF-16 code unit sequence. Windows
			-- does not guarantee that the sequence is actually a valid UTF-16 sequence.
			-- 
			-- In other words, when there is an invalid UTF-8 encoding on UNIX, or an invalid UTF-16 encoding
			-- on Windows, the filename is not directly representable as a Unicode string. To make it possible
			-- to create and store paths in a textually representable form, the query name will create
			-- an encoded representation that can be then later used in make_from_string to create a PATH
			-- equivalent to the original path. The encoding is described in UTF_CONVERTER's note clause
			-- and is a fourth variant of the recommended practice for replacement characters in Unicode
			-- (see http://www.unicode.org/review/pr-121.html).
			-- 
			-- 
			-- Immutability
			-- ============
			-- 
			-- Instances of the current class are immutable.

	PATH_NAME*
			-- Path name abstraction

	PATH_NAME*
			-- Path name abstraction

	PLAIN_TEXT_FILE
			-- Files viewed as persistent sequences of ASCII characters

	PLAIN_TEXT_FILE
			-- Files viewed as persistent sequences of ASCII characters

	PLATFORM
			-- Platform-dependent properties.

	PLATFORM
			-- Platform-dependent properties.

	POINTER
			-- References to objects meant to be exchanged with non-Eiffel software.

	POINTER
			-- References to objects meant to be exchanged with non-Eiffel software.

	POINTER_REF
			-- References to objects containing reference to object
			-- meant to be exchanged with non-Eiffel software.

	POINTER_REF
			-- References to objects containing reference to object
			-- meant to be exchanged with non-Eiffel software.

	POSTCONDITION_VIOLATION
			-- Exception representing a postcondition violation

	POSTCONDITION_VIOLATION
			-- Exception representing a postcondition violation

	PRECONDITION_VIOLATION
			-- Exception representing an precondition violation.

	PRECONDITION_VIOLATION
			-- Exception representing an precondition violation.

	PREDICATE [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a boolean function,
			-- with some arguments possibly still open.

	PREDICATE [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a boolean function,
			-- with some arguments possibly still open.

	PRIMES
			-- Prime number properties

	PRIMES
			-- Prime number properties

	PRIORITY_QUEUE* [G -> PART_COMPARABLE]
			-- Priority queues, without commitment to a particular representation

	PRIORITY_QUEUE* [G -> PART_COMPARABLE]
			-- Priority queues, without commitment to a particular representation

	PROCEDURE [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a procedure.
			-- with some operands possibly still open.
			-- 
			-- Note: Features are the same as those of ROUTINE,
			-- with apply made effective, and no further
			-- redefinition of is_equal and copy.

	PROCEDURE [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a procedure.
			-- with some operands possibly still open.
			-- 
			-- Note: Features are the same as those of ROUTINE,
			-- with apply made effective, and no further
			-- redefinition of is_equal and copy.

	PROFILING_SETTING
			-- Objects that manage the Eiffel profiler. You can start and
			-- stop the Eiffel profiler whenever you want to. It only works
			-- if profile (yes) is enabled in your project configuration file.
			-- Also disabling the profiler should be done at the same place
			-- where you enabled it otherwise you might corrupt the profiling data.
			-- To use this functionality effectively, make sure that the first instruction
			-- in your program calls stop_profiling, and that the last executed instruction
			-- calls start_profiling, otherwise no profile information will be generated.

	PROFILING_SETTING
			-- Objects that manage the Eiffel profiler. You can start and
			-- stop the Eiffel profiler whenever you want to. It only works
			-- if profile (yes) is enabled in your project configuration file.
			-- Also disabling the profiler should be done at the same place
			-- where you enabled it otherwise you might corrupt the profiling data.
			-- To use this functionality effectively, make sure that the first instruction
			-- in your program calls stop_profiling, and that the last executed instruction
			-- calls start_profiling, otherwise no profile information will be generated.

	PROXY_COMPARABLE [G]
			-- Holder for non-comparable objects used for pseudo-comparison
			-- with others via the use of a custom comparator.

	PROXY_COMPARABLE [G]
			-- Holder for non-comparable objects used for pseudo-comparison
			-- with others via the use of a custom comparator.

	QUEUE* [G]
			-- Queues (first-in, first-out dispensers), without commitment 
			-- to a particular representation

	QUEUE* [G]
			-- Queues (first-in, first-out dispensers), without commitment 
			-- to a particular representation

	RANDOM
			-- Pseudo-random number sequence, linear congruential method
			-- 
			-- This class is adapted from work in "Discrete-Event System Simulation"
			-- by Jerry Banks & John S. Carson, II
			-- Prentice-Hall International Series in
			-- Industrial and Systems Engineering 1984
			-- Example 7.12 p 266 which is from
			-- IMSL Scientific Subroutine Package [1978],
			-- written in Fortran for IBM 360/370 computers.
			-- 

	RANDOM
			-- Pseudo-random number sequence, linear congruential method
			-- 
			-- This class is adapted from work in "Discrete-Event System Simulation"
			-- by Jerry Banks & John S. Carson, II
			-- Prentice-Hall International Series in
			-- Industrial and Systems Engineering 1984
			-- Example 7.12 p 266 which is from
			-- IMSL Scientific Subroutine Package [1978],
			-- written in Fortran for IBM 360/370 computers.
			-- 

	RAW_FILE
			-- Files, viewed as persistent sequences of bytes

	RAW_FILE
			-- Files, viewed as persistent sequences of bytes

	READABLE_INDEXABLE* [G]
			-- Tables whose keys are integers in a contiguous interval

	READABLE_INDEXABLE* [G]
			-- Tables whose keys are integers in a contiguous interval

	READABLE_INDEXABLE_ITERATION_CURSOR [G]
			-- Concrete version of an external iteration cursor for READABLE_INDEXABLE.

	READABLE_INDEXABLE_ITERATION_CURSOR [G]
			-- Concrete version of an external iteration cursor for READABLE_INDEXABLE.

	READABLE_STRING_32*
			-- Sequences of 32-bit characters, accessible through integer indices
			-- in a contiguous range. Read-only interface.

	READABLE_STRING_32*
			-- Sequences of 32-bit characters, accessible through integer indices
			-- in a contiguous range. Read-only interface.

	READABLE_STRING_8*
			-- Sequences of 8-bit characters, accessible through integer indices
			-- in a contiguous range. Read-only interface.

	READABLE_STRING_8*
			-- Sequences of 8-bit characters, accessible through integer indices
			-- in a contiguous range. Read-only interface.

	READABLE_STRING_GENERAL*
			-- Common ancestors to all STRING classes. Read-only interface.

	READABLE_STRING_GENERAL*
			-- Common ancestors to all STRING classes. Read-only interface.

	READ_WRITE_LOCK
			-- Read/Write synchronization object, allows multiple reader threads to have access to a resource, and only one writer thread.

	READ_WRITE_LOCK
			-- Read/Write synchronization object, allows multiple reader threads to have access to a resource, and only one writer thread.

	REAL_32
			-- Real values, single precision.

	REAL_32
			-- Real values, single precision.

	REAL_32_REF
			-- References to objects containing a real value

	REAL_32_REF
			-- References to objects containing a real value

	REAL_64
			-- Real values, double precision.

	REAL_64
			-- Real values, double precision.

	REAL_64_REF
			-- References to objects containing a double-precision real number

	REAL_64_REF
			-- References to objects containing a double-precision real number

	RECURSIVE_CURSOR_TREE* [G]
			-- Cursor trees with a recursive structure

	RECURSIVE_CURSOR_TREE* [G]
			-- Cursor trees with a recursive structure

	RECURSIVE_TREE_CURSOR [G]
			-- Cursors for recursive trees

	RECURSIVE_TREE_CURSOR [G]
			-- Cursors for recursive trees

	REFACTORING_HELPER
			-- Collection of features that are used to mark
			-- places in code that needs refactoring.

	REFACTORING_HELPER
			-- Collection of features that are used to mark
			-- places in code that needs refactoring.

	REFLECTED_COPY_SEMANTICS_OBJECT
			-- Accessor to an object with copy semantics. Useful to manipulate fields of an object, or
			-- an expanded field of an object without causing any copying.

	REFLECTED_COPY_SEMANTICS_OBJECT
			-- Accessor to an object with copy semantics. Useful to manipulate fields of an object, or
			-- an expanded field of an object without causing any copying.

	REFLECTED_OBJECT*
			-- Common ancestor for object inspection.

	REFLECTED_OBJECT*
			-- Common ancestor for object inspection.

	REFLECTED_REFERENCE_OBJECT
			-- Accessor to an object. Useful to manipulate fields of an object, or
			-- an expanded field of an object without causing any copying.
			-- If applied to an expanded type, a copy will be manipulated.

	REFLECTED_REFERENCE_OBJECT
			-- Accessor to an object. Useful to manipulate fields of an object, or
			-- an expanded field of an object without causing any copying.
			-- If applied to an expanded type, a copy will be manipulated.

	REFLECTOR
			-- Access to internal object properties.
			-- This class may be used as ancestor by classes needing its facilities.

	REFLECTOR
			-- Access to internal object properties.
			-- This class may be used as ancestor by classes needing its facilities.

	REFLECTOR_CONSTANTS
			-- Constants to represent abstract types in {REFFLECTOR} and {OBJECT_PROXY}.

	REFLECTOR_CONSTANTS
			-- Constants to represent abstract types in {REFFLECTOR} and {OBJECT_PROXY}.

	REFLECTOR_HELPER
			-- Helper for routines in INTERNAL class.

	REFLECTOR_HELPER
			-- Helper for routines in INTERNAL class.

	REPEATABLE*
			-- Object that may iterate over its own states.

	REPEATABLE*
			-- Object that may iterate over its own states.

	RESCUE_FAILURE
			-- Exception raised in rescue clause

	RESCUE_FAILURE
			-- Exception raised in rescue clause

	RESIZABLE* [G]
			-- Finite structures whose item count is subject to change

	RESIZABLE* [G]
			-- Finite structures whose item count is subject to change

	RESUMPTION_FAILURE
			-- Exception raised when retry did not succeed

	RESUMPTION_FAILURE
			-- Exception raised when retry did not succeed

	ROUTINE* [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a routine,
			-- with some operands possibly still open

	ROUTINE* [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a routine,
			-- with some operands possibly still open

	ROUTINE_FAILURE
			-- Exception representing a routine failure.

	ROUTINE_FAILURE
			-- Exception representing a routine failure.

	RT_DEBUGGER
			-- Set of features to access ISE debugger functionality from debuggee.
			-- 
			-- Note: do not try to evaluate the following feature in watch tool!

	SED_ABSTRACT_OBJECTS_TABLE*
			-- Abstract equivalent of HASH_TABLE [NATURAL_32, ANY], since this type cannot be written
			-- as ANY does not inherit from HASHABLE

	SED_ABSTRACT_OBJECTS_TABLE*
			-- Abstract equivalent of HASH_TABLE [NATURAL_32, ANY], since this type cannot be written
			-- as ANY does not inherit from HASHABLE

	SED_BASIC_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of a same program.

	SED_BASIC_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of a same program.

	SED_BASIC_SERIALIZER
			-- Encoding of arbitrary objects graphs between sessions of a same program.

	SED_BASIC_SERIALIZER
			-- Encoding of arbitrary objects graphs between sessions of a same program.

	SED_BINARY_READER_WRITER*
			-- Ancestor to serialize/deserialize data using a buffer in binary format.

	SED_BINARY_READER_WRITER*
			-- Ancestor to serialize/deserialize data using a buffer in binary format.

	SED_ERROR
			-- Simple representation of a SED error

	SED_ERROR
			-- Simple representation of a SED error

	SED_ERROR_FACTORY
			-- Objects that provide instances of SED_ERROR.

	SED_ERROR_FACTORY
			-- Objects that provide instances of SED_ERROR.

	SED_INDEPENDENT_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of programs containing the same types. It basically takes care of potential reordering of attributes from one system to the other.

	SED_INDEPENDENT_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of programs containing the same types. It basically takes care of potential reordering of attributes from one system to the other.

	SED_INDEPENDENT_SERIALIZER
			-- Encoding of arbitrary objects graphs between different version of programs containing the same types.

	SED_INDEPENDENT_SERIALIZER
			-- Encoding of arbitrary objects graphs between different version of programs containing the same types.

	SED_MEDIUM_READER_WRITER
			-- Serialize/Deserialize data from a medium.

	SED_MEDIUM_READER_WRITER
			-- Serialize/Deserialize data from a medium.

	SED_MEDIUM_READER_WRITER_1
			-- Serialize/Deserialize data from a medium.

	SED_MEDIUM_READER_WRITER_1
			-- Serialize/Deserialize data from a medium.

	SED_MEMORY_READER_WRITER
			-- Serialize/Deserialize data from memory.
			-- 
			-- Given a memory area referenced by MANAGED_POINTER, store/retrieve data from 
			-- memory. Initially memory is read from the first byte unless changed via set_position.
			-- 
			-- After the first store/retrieve operation, count is set to the position of the last
			-- written/read bytes. If you haven't set an initial position via set_position, it is
			-- also the number of bytes written/read, otherwise the number of bytes read is
			-- count - initial_position.

	SED_MEMORY_READER_WRITER
			-- Serialize/Deserialize data from memory.
			-- 
			-- Given a memory area referenced by MANAGED_POINTER, store/retrieve data from 
			-- memory. Initially memory is read from the first byte unless changed via set_position.
			-- 
			-- After the first store/retrieve operation, count is set to the position of the last
			-- written/read bytes. If you haven't set an initial position via set_position, it is
			-- also the number of bytes written/read, otherwise the number of bytes read is
			-- count - initial_position.

	SED_META_MODEL
			-- Meta model representing a deserialized object. Useful for updating serialized data which might not be in sync with more recent version of the associated base class of the serialized object.

	SED_META_MODEL
			-- Meta model representing a deserialized object. Useful for updating serialized data which might not be in sync with more recent version of the associated base class of the serialized object.

	SED_MULTI_OBJECT_SERIALIZATION
			-- Serialize and deserialize multiple objects into one file.

	SED_MULTI_OBJECT_SERIALIZATION
			-- Serialize and deserialize multiple objects into one file.

	SED_OBJECTS_TABLE
			-- Equivalent of HASH_TABLE [NATURAL_32, ANY], since this type cannot be written
			-- as ANY does not inherit from HASHABLE

	SED_OBJECTS_TABLE
			-- Equivalent of HASH_TABLE [NATURAL_32, ANY], since this type cannot be written
			-- as ANY does not inherit from HASHABLE

	SED_READER_WRITER*
			-- Ancestor for reading/writing basic known entities from and to a particular location specified in concrete descendants of current.

	SED_READER_WRITER*
			-- Ancestor for reading/writing basic known entities from and to a particular location specified in concrete descendants of current.

	SED_RECOVERABLE_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of programs
			-- containing the same types or potentially different types (which can
			-- be mapped to the new type system via a correction mechanism,). It
			-- also basically takes care of potential reordering of attributes
			-- from one system to the other.

	SED_RECOVERABLE_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of programs
			-- containing the same types or potentially different types (which can
			-- be mapped to the new type system via a correction mechanism,). It
			-- also basically takes care of potential reordering of attributes
			-- from one system to the other.

	SED_RECOVERABLE_SERIALIZER
			-- Encoding of arbitrary objects graphs between different version of
			-- programs containing types that might have changed and for which the
			-- retrieving system may know how to fix the mismatches.

	SED_RECOVERABLE_SERIALIZER
			-- Encoding of arbitrary objects graphs between different version of
			-- programs containing types that might have changed and for which the
			-- retrieving system may know how to fix the mismatches.

	SED_SESSION_DESERIALIZER
			-- Decoding of arbitrary objects graphs within a session of a same program.

	SED_SESSION_DESERIALIZER
			-- Decoding of arbitrary objects graphs within a session of a same program.

	SED_SESSION_SERIALIZER
			-- Encoding of arbitrary objects graphs within a session of a same program.
			-- 
			-- Some routines are explicitely frozen, not because we do not want them to be redefined
			-- but if they are frozen, it saves us having to look at all possible descendants whenever
			-- we do a change.

	SED_SESSION_SERIALIZER
			-- Encoding of arbitrary objects graphs within a session of a same program.
			-- 
			-- Some routines are explicitely frozen, not because we do not want them to be redefined
			-- but if they are frozen, it saves us having to look at all possible descendants whenever
			-- we do a change.

	SED_STORABLE_FACILITIES
			-- Serialize and deserialize objects to and from SED_READER_WRITER instances.

	SED_STORABLE_FACILITIES
			-- Serialize and deserialize objects to and from SED_READER_WRITER instances.

	SED_TYPE_MISMATCH
			-- Store all information about a mismatch in a type.

	SED_TYPE_MISMATCH
			-- Store all information about a mismatch in a type.

	SED_UTILITIES
			-- Utilities for serializing/deserializing objects

	SED_UTILITIES
			-- Utilities for serializing/deserializing objects

	SED_VERSIONS
			-- Summary description for {SED_STORABLE_VERSIONS}.

	SED_VERSIONS
			-- Summary description for {SED_STORABLE_VERSIONS}.

	SEMAPHORE
			-- Semaphore synchronization object, allows threads to access global data through critical sections.

	SEMAPHORE
			-- Semaphore synchronization object, allows threads to access global data through critical sections.

	SEQUENCE* [G]
			-- Finite sequences: structures where existing items are arranged
			-- and accessed sequentially, and new ones can be added at the end.

	SEQUENCE* [G]
			-- Finite sequences: structures where existing items are arranged
			-- and accessed sequentially, and new ones can be added at the end.

	SEQ_STRING

	SEQ_STRING

	SERIALIZATION_FAILURE
			-- Exception for retrieval error, 
			-- may be raised by retrieved in IO_MEDIUM.

	SERIALIZATION_FAILURE
			-- Exception for retrieval error, 
			-- may be raised by retrieved in IO_MEDIUM.

	SET* [G]
			-- Collection, where each element must be unique.

	SET* [G]
			-- Collection, where each element must be unique.

	SHARED_EXECUTION_ENVIRONMENT
			-- Shared instance of execution environment.

	SHARED_EXECUTION_ENVIRONMENT
			-- Shared instance of execution environment.

	SHARED_EXTERNAL
			-- External C function.

	SHARED_EXTERNAL
			-- External C function.

	SINGLE_MATH
			-- Basic mathematical operations, single-precision.
			-- This class may be used as ancestor by classes needing its facilities

	SINGLE_MATH
			-- Basic mathematical operations, single-precision.
			-- This class may be used as ancestor by classes needing its facilities

	SORTED_LIST* [G -> COMPARABLE]
			-- Sequential lists where the cells are sorted in ascending order
			-- according to the relational operators of PART_COMPARABLE

	SORTED_LIST* [G -> COMPARABLE]
			-- Sequential lists where the cells are sorted in ascending order
			-- according to the relational operators of PART_COMPARABLE

	SORTED_STRUCT* [G -> COMPARABLE]
			-- Structures whose items are sorted according to a total order relation

	SORTED_STRUCT* [G -> COMPARABLE]
			-- Structures whose items are sorted according to a total order relation

	SORTED_TWO_WAY_LIST [G -> COMPARABLE]
			-- Two-way lists, kept sorted.

	SORTED_TWO_WAY_LIST [G -> COMPARABLE]
			-- Two-way lists, kept sorted.

	SPECIAL [T]
			-- Special objects: homogeneous sequences of values,
			-- used to represent arrays and strings

	SPECIAL [T]
			-- Special objects: homogeneous sequences of values,
			-- used to represent arrays and strings

	SPECIAL_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for SPECIAL.

	SPECIAL_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for SPECIAL.

	STACK* [G]
			-- Stacks (last-in, first-out dispensers), without commitment
			-- to a particular representation

	STACK* [G]
			-- Stacks (last-in, first-out dispensers), without commitment
			-- to a particular representation

	STD_FILES
			-- Commonly used input and output mechanisms.
			-- This class may be used as either ancestor or supplier
			-- by classes needing its facilities.

	STD_FILES
			-- Commonly used input and output mechanisms.
			-- This class may be used as either ancestor or supplier
			-- by classes needing its facilities.

	STORABLE
			-- Objects that may be stored and retrieved along with all their dependents.
			-- This class may be used as ancestor by classes needing its facilities.

	STORABLE
			-- Objects that may be stored and retrieved along with all their dependents.
			-- This class may be used as ancestor by classes needing its facilities.

	STREAM
			-- Implementation of the STORABLE mechanism with streams.

	STREAM
			-- Implementation of the STORABLE mechanism with streams.

	STRING_32
			-- Sequences of 32-bit characters, accessible through integer indices
			-- in a contiguous range.

	STRING_32
			-- Sequences of 32-bit characters, accessible through integer indices
			-- in a contiguous range.

	STRING_32_ITERATION_CURSOR
			-- External forward one-step iteration cursor for STRING_32.

	STRING_32_ITERATION_CURSOR
			-- External forward one-step iteration cursor for STRING_32.

	STRING_32_SEARCHER
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_32_SEARCHER
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_8
			-- Sequences of 8-bit characters, accessible through integer indices
			-- in a contiguous range.

	STRING_8
			-- Sequences of 8-bit characters, accessible through integer indices
			-- in a contiguous range.

	STRING_8_ITERATION_CURSOR
			-- External forward one-step iteration cursor for STRING_8.

	STRING_8_ITERATION_CURSOR
			-- External forward one-step iteration cursor for STRING_8.

	STRING_8_SEARCHER
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_8_SEARCHER
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_GENERAL*
			-- Common ancestors to all STRING classes.

	STRING_GENERAL*
			-- Common ancestors to all STRING classes.

	STRING_HANDLER
			-- Objects that can access set_count from STRING

	STRING_HANDLER
			-- Objects that can access set_count from STRING

	STRING_ITERATION_CURSOR
			-- External iteration cursor on READABLE_STRING_GENERAL based on CHARACTER_32 item.

	STRING_ITERATION_CURSOR
			-- External iteration cursor on READABLE_STRING_GENERAL based on CHARACTER_32 item.

	STRING_SEARCHER*
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_SEARCHER*
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_TABLE [G]
			-- Hash tables, used to store items identified by string keys that are compared with or without case sensitivity.

	STRING_TABLE [G]
			-- Hash tables, used to store items identified by string keys that are compared with or without case sensitivity.

	STRING_TO_INTEGER_CONVERTOR
			-- Convertor to do string to integer/natural conversion

	STRING_TO_INTEGER_CONVERTOR
			-- Convertor to do string to integer/natural conversion

	STRING_TO_NUMERIC_CONVERTOR*
			-- Abstract convertor for string to number conversion

	STRING_TO_NUMERIC_CONVERTOR*
			-- Abstract convertor for string to number conversion

	STRING_TO_REAL_CONVERTOR
			-- String to real/double convertor

	STRING_TO_REAL_CONVERTOR
			-- String to real/double convertor

	STRING_TRACING_HANDLER*
			-- Abstract class to dispatch tracing events to user using TYPE and STRING data.

	STRING_TRACING_HANDLER*
			-- Abstract class to dispatch tracing events to user using TYPE and STRING data.

	SUBSET* [G]
			-- Subsets with the associated operations,
			-- without commitment to a particular representation

	SUBSET* [G]
			-- Subsets with the associated operations,
			-- without commitment to a particular representation

	SUBSET_STRATEGY* [G]
			-- Strategies for computing several features of subsets. The computing
			-- strategy is optimized depending on the type of elements contained in
			-- the set.

	SUBSET_STRATEGY* [G]
			-- Strategies for computing several features of subsets. The computing
			-- strategy is optimized depending on the type of elements contained in
			-- the set.

	SUBSET_STRATEGY_GENERIC [G]
			-- Strategies for calculating several features for subsets containing
			-- items of any type.

	SUBSET_STRATEGY_GENERIC [G]
			-- Strategies for calculating several features for subsets containing
			-- items of any type.

	SUBSET_STRATEGY_HASHABLE [G]
			-- Strategies for calculating several features for subsets containing
			-- HASHABLEs.

	SUBSET_STRATEGY_HASHABLE [G]
			-- Strategies for calculating several features for subsets containing
			-- HASHABLEs.

	SUBSET_STRATEGY_TREE [G -> COMPARABLE]
			-- Strategies for calculating several features for subsets represented
			-- by binary search trees. Contained items have to be COMPARABLE

	SUBSET_STRATEGY_TREE [G -> COMPARABLE]
			-- Strategies for calculating several features for subsets represented
			-- by binary search trees. Contained items have to be COMPARABLE

	SYSTEM_ENCODINGS
			-- Available encodings in the operating system.

	SYSTEM_ENCODINGS
			-- Available encodings in the operating system.

	SYSTEM_STRING
			-- Fake abstraction of a .NET SYSTEM_STRING in a non-.NET system

	SYSTEM_STRING
			-- Fake abstraction of a .NET SYSTEM_STRING in a non-.NET system

	SYSTEM_STRING_FACTORY
			-- Factory for creating SYSTEM_STRING instances.

	SYSTEM_STRING_FACTORY
			-- Factory for creating SYSTEM_STRING instances.

	SYS_EXCEPTION*
			-- Deferred class of all systematic exceptions

	SYS_EXCEPTION*
			-- Deferred class of all systematic exceptions

	TABLE* [G, H]
			-- Containers whose items are accessible through keys

	TABLE* [G, H]
			-- Containers whose items are accessible through keys

	TABLE_ITERABLE* [G, K]
			-- Structure that can be iterated over using across...loop...end.
			-- using key and item.

	TABLE_ITERABLE* [G, K]
			-- Structure that can be iterated over using across...loop...end.
			-- using key and item.

	TABLE_ITERATION_CURSOR* [G, K]
			-- External iteration cursor used by across...loop...end 
			-- using key and item.

	TABLE_ITERATION_CURSOR* [G, K]
			-- External iteration cursor used by across...loop...end 
			-- using key and item.

	TEST_CASE*
			-- Common ancestor of all test case classes

	TEST_CASE*
			-- Common ancestor of all test case classes

	TEXT_CONTROLLER
			-- The main manager of the text library.

	TEXT_CONTROLLER
			-- The main manager of the text library.

	TEXT_FONT
			-- A font that can be use to draw text with a {TEXT_IMAGE}.

	TEXT_FONT
			-- A font that can be use to draw text with a {TEXT_IMAGE}.

	TEXT_FONT_CPF
			-- A font contained inside a custom package file
			-- that can be use to draw text with a {TEXT_IMAGE}.

	TEXT_FONT_CPF
			-- A font contained inside a custom package file
			-- that can be use to draw text with a {TEXT_IMAGE}.

	TEXT_LIBRARY_SHARED*
			-- Used to share the text library manager singleton

	TEXT_LIBRARY_SHARED*
			-- Used to share the text library manager singleton

	TEXT_SURFACE*
			-- Create a new surface with a text drawed in it.

	TEXT_SURFACE*
			-- Create a new surface with a text drawed in it.

	TEXT_SURFACE_BLENDED
			-- A GAME_SURFACE that represent a text.
			-- Rendering from this class look better that from a
			-- TEXT_SURFACE_SOLID take longer to generate.

	TEXT_SURFACE_BLENDED
			-- A GAME_SURFACE that represent a text.
			-- Rendering from this class look better that from a
			-- TEXT_SURFACE_SOLID take longer to generate.

	TEXT_SURFACE_SHADED
			-- A GAME_SURFACE that represent a text.
			-- Rendering from this class does not use
			-- alpha blending. You have to specify the
			-- background color.

	TEXT_SURFACE_SHADED
			-- A GAME_SURFACE that represent a text.
			-- Rendering from this class does not use
			-- alpha blending. You have to specify the
			-- background color.

	TEXT_SURFACE_SOLID
			-- A GAME_SURFACE that represent a text.
			-- Rendering from a TEXT_SURFACE_BLENDED
			-- look better that from this class, but
			-- take longer to generate.

	TEXT_SURFACE_SOLID
			-- A GAME_SURFACE that represent a text.
			-- Rendering from a TEXT_SURFACE_BLENDED
			-- look better that from this class, but
			-- take longer to generate.

	THREAD*
			-- Class defining an Eiffel thread.

	THREAD*
			-- Class defining an Eiffel thread.

	THREAD_ATTRIBUTES
			-- Class defining thread attributes.

	THREAD_ATTRIBUTES
			-- Class defining thread attributes.

	THREAD_CONTROL
			-- Control over thread execution.

	THREAD_CONTROL
			-- Control over thread execution.

	THREAD_ENVIRONMENT
			-- Information about the current thread execution

	THREAD_ENVIRONMENT
			-- Information about the current thread execution

	TO_SPECIAL [T]
			-- References to special objects, for direct access to arrays and strings

	TO_SPECIAL [T]
			-- References to special objects, for direct access to arrays and strings

	TRACING_HANDLER*
			-- Abstract class to dispatch tracing events to user. Tracing events are dispatched
			-- by calling activate on the TRACING_HANDLER's instance.
			--  For each thread being created a copy of the current tracer object will be
			--  used for the newly created thread to avoid race condition. It is up to the implementer
			--  of the class to ensure proper thread-safety and to properly implement duplicated which
			--  is by default implemented using twin.

	TRACING_HANDLER*
			-- Abstract class to dispatch tracing events to user. Tracing events are dispatched
			-- by calling activate on the TRACING_HANDLER's instance.
			--  For each thread being created a copy of the current tracer object will be
			--  used for the newly created thread to avoid race condition. It is up to the implementer
			--  of the class to ensure proper thread-safety and to properly implement duplicated which
			--  is by default implemented using twin.

	TRACING_SETTING
			-- Objects that manage the Eiffel tracing. You can start and
			-- stop the Eiffel tracing whenever you want to. It only works
			-- if trace (yes) is enabled in your project configuration file.

	TRACING_SETTING
			-- Objects that manage the Eiffel tracing. You can start and
			-- stop the Eiffel tracing whenever you want to. It only works
			-- if trace (yes) is enabled in your project configuration file.

	TRAVERSABLE* [G]
			-- Structures for which there exists a traversal policy
			-- that will visit every element exactly once.

	TRAVERSABLE* [G]
			-- Structures for which there exists a traversal policy
			-- that will visit every element exactly once.

	TRAVERSABLE_SUBSET* [G]
			-- Subsets that are traversable sequentially

	TRAVERSABLE_SUBSET* [G]
			-- Subsets that are traversable sequentially

	TREE* [G]
			-- Trees, without commitment to a particular representation

	TREE* [G]
			-- Trees, without commitment to a particular representation

	TREE_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for descendants of TREE.

	TREE_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for descendants of TREE.

	TUPLE
			-- Implementation of TUPLE

	TUPLE
			-- Implementation of TUPLE

	TWO_WAY_CHAIN_ITERATOR [G]
			-- Objects that are able to iterate over two-way chains,
			-- on which they can perform repeated actions and tests according
			-- to a number of predefined control structures such as if,
			-- until and others.

	TWO_WAY_CHAIN_ITERATOR [G]
			-- Objects that are able to iterate over two-way chains,
			-- on which they can perform repeated actions and tests according
			-- to a number of predefined control structures such as if,
			-- until and others.

	TWO_WAY_CIRCULAR [G]
			-- Circular chains implemented as two-way linked lists

	TWO_WAY_CIRCULAR [G]
			-- Circular chains implemented as two-way linked lists

	TWO_WAY_LIST [G]
			-- Sequential, two-way linked lists

	TWO_WAY_LIST [G]
			-- Sequential, two-way linked lists

	TWO_WAY_LIST_CURSOR [G]
			-- Cursors for two way lists.

	TWO_WAY_LIST_CURSOR [G]
			-- Cursors for two way lists.

	TWO_WAY_LIST_ITERATION_CURSOR [G]
			-- Concrete of an external iteration cursor for TWO_WAY_LIST.

	TWO_WAY_LIST_ITERATION_CURSOR [G]
			-- Concrete of an external iteration cursor for TWO_WAY_LIST.

	TWO_WAY_SORTED_SET [G -> COMPARABLE]
			-- Sets whose items may be compared according to a total order relation;
			-- implemented as sorted two-way lists.

	TWO_WAY_SORTED_SET [G -> COMPARABLE]
			-- Sets whose items may be compared according to a total order relation;
			-- implemented as sorted two-way lists.

	TWO_WAY_TREE [G]
			-- Trees implemented using a two way linked list representation

	TWO_WAY_TREE [G]
			-- Trees implemented using a two way linked list representation

	TWO_WAY_TREE_CURSOR [G]
			-- Cursors for two-way trees

	TWO_WAY_TREE_CURSOR [G]
			-- Cursors for two-way trees

	TWO_WAY_TREE_ITERATION_CURSOR [G]
			-- External forward iteration cursor for descendants of TWO_WAY_TREE.

	TWO_WAY_TREE_ITERATION_CURSOR [G]
			-- External forward iteration cursor for descendants of TWO_WAY_TREE.

	TYPE [G]
			-- Representation of an Eiffel type.

	TYPE [G]
			-- Representation of an Eiffel type.

	TYPED_INDEXABLE_ITERATION_CURSOR* [G, H -> READABLE_INDEXABLE [G]]
			-- External iteration cursor for READABLE_INDEXABLE.

	TYPED_INDEXABLE_ITERATION_CURSOR* [G, H -> READABLE_INDEXABLE [G]]
			-- External iteration cursor for READABLE_INDEXABLE.

	TYPED_POINTER [G]
			-- References to objects containing reference to object
			-- meant to be exchanged with non-Eiffel software.

	TYPED_POINTER [G]
			-- References to objects containing reference to object
			-- meant to be exchanged with non-Eiffel software.

	UNBOUNDED* [G]
			-- Finite structures whose item count is not bounded

	UNBOUNDED* [G]
			-- Finite structures whose item count is not bounded

	UNICODE_CONVERSION
			-- Eiffel implementations for Unicode encoding conversion.

	UNICODE_CONVERSION
			-- Eiffel implementations for Unicode encoding conversion.

	UNIX_FILE_INFO
			-- Obsolete internal file information, use FILE_INFO directly.

	UNIX_FILE_INFO
			-- Obsolete internal file information, use FILE_INFO directly.

	UNIX_SIGNALS
			-- Constants used for signal handling.
			-- This class may be used as ancestor by classes needing its facilities.

	UNIX_SIGNALS
			-- Constants used for signal handling.
			-- This class may be used as ancestor by classes needing its facilities.

	UTF_CONVERTER
			-- Converter from/to UTF-8, UTF-16 and UTF-32 encodings.
			-- 
			-- Handling of invalid encodings
			-- =============================
			-- 
			-- Whenever a UTF-8 or UTF-16 sequence is decoded, the decoding routines also check
			-- that the sequence is valid. If it is not, it will replace the invalid unit (e.g. a byte
			-- for UTF-8 and a 2-byte for UTF-16 by the replacement character U+FFFD as described by
			-- variant #3 of the recommended practice for replacement character in Unicode (see
			-- http://www.unicode.org/review/pr-121.html for more details).
			-- 
			-- However it means that you cannot roundtrip incorrectly encoded sequence back and forth
			-- between the encoded version and the decoded STRING_32 version. To allow roundtrip, an
			-- escaped representation of a bad encoded sequence has been introduced. It is adding a
			-- a fourth variant (which is a slight modification of variant #3) to the recommended
			-- practice where the replacement character is followed by the printed hexadecimal value
			-- of the invalid byte or the invalid 2-byte sequence.
			-- 
			-- To provide an example (assuming that the Unicode character U+FFFD is represented as
			-- ? textually):
			-- 1 - on UNIX, any invalid UTF-8 byte sequence such as 0x8F 0x8F is encoded as the
			-- following Unicode sequence: U+FFFD U+0038 U+0046 U+FFFF U+0038 U+0046, and textually
			-- it looks like "?8F?8F".
			-- 2 - on Windows, any invalid UTF-16 2-byte sequence such as 0xD800 0x0054 is encoded as the
			-- following Unicode sequence: U+FFFD U+0075 U+0044 U+0038 U+0030 U+0030 U+FFFD U+0035 U+0033,
			-- and textually it looks like "?uD800?54". The rule is that if the 2-byte sequence does not fit
			-- into 1 byte, it uses the letter u followed by the hexadecimal value of the 2-byte sequence,
			-- otherwise it simply uses the 1-byte hexadecimal representation.

	UTF_CONVERTER
			-- Converter from/to UTF-8, UTF-16 and UTF-32 encodings.
			-- 
			-- Handling of invalid encodings
			-- =============================
			-- 
			-- Whenever a UTF-8 or UTF-16 sequence is decoded, the decoding routines also check
			-- that the sequence is valid. If it is not, it will replace the invalid unit (e.g. a byte
			-- for UTF-8 and a 2-byte for UTF-16 by the replacement character U+FFFD as described by
			-- variant #3 of the recommended practice for replacement character in Unicode (see
			-- http://www.unicode.org/review/pr-121.html for more details).
			-- 
			-- However it means that you cannot roundtrip incorrectly encoded sequence back and forth
			-- between the encoded version and the decoded STRING_32 version. To allow roundtrip, an
			-- escaped representation of a bad encoded sequence has been introduced. It is adding a
			-- a fourth variant (which is a slight modification of variant #3) to the recommended
			-- practice where the replacement character is followed by the printed hexadecimal value
			-- of the invalid byte or the invalid 2-byte sequence.
			-- 
			-- To provide an example (assuming that the Unicode character U+FFFD is represented as
			-- ? textually):
			-- 1 - on UNIX, any invalid UTF-8 byte sequence such as 0x8F 0x8F is encoded as the
			-- following Unicode sequence: U+FFFD U+0038 U+0046 U+FFFF U+0038 U+0046, and textually
			-- it looks like "?8F?8F".
			-- 2 - on Windows, any invalid UTF-16 2-byte sequence such as 0xD800 0x0054 is encoded as the
			-- following Unicode sequence: U+FFFD U+0075 U+0044 U+0038 U+0030 U+0030 U+FFFD U+0035 U+0033,
			-- and textually it looks like "?uD800?54". The rule is that if the 2-byte sequence does not fit
			-- into 1 byte, it uses the letter u followed by the hexadecimal value of the 2-byte sequence,
			-- otherwise it simply uses the 1-byte hexadecimal representation.

	VARIANT_VIOLATION
			-- Loop variant violation

	VARIANT_VIOLATION
			-- Loop variant violation

	VERSIONABLE*
			-- Lightweight tracker of modifications made to instances of this class.
			-- Any modification causes version to get a new value that can be used
			-- by the clients to see if there were any changes since last access.

	VERSIONABLE*
			-- Lightweight tracker of modifications made to instances of this class.
			-- Any modification causes version to get a new value that can be used
			-- by the clients to see if there were any changes since last access.

	VOID_ASSIGNED_TO_EXPANDED
			-- Exception for assignment of void value to expanded entity

	VOID_ASSIGNED_TO_EXPANDED
			-- Exception for assignment of void value to expanded entity

	VOID_TARGET
			-- Exception for feature applied to void reference

	VOID_TARGET
			-- Exception for feature applied to void reference

	WEAK_REFERENCE [G]
			-- Abstraction for weak references, i.e. references to object that can still be reclaimed by the GC.
			-- If the actual generic parameter is expanded, put cannot be used as it does not make sense from the user
			-- point of view.

	WEAK_REFERENCE [G]
			-- Abstraction for weak references, i.e. references to object that can still be reclaimed by the GC.
			-- If the actual generic parameter is expanded, put cannot be used as it does not make sense from the user
			-- point of view.

	WORKER_THREAD
			-- Class defining an Eiffel thread of execution using an agent for its internal action.

	WORKER_THREAD
			-- Class defining an Eiffel thread of execution using an agent for its internal action.


Generated by ISE EiffelStudio