    deferred class
    	STRING_GENERAL

    General
    	cluster: base
    	description: "Common ancestors to all STRING classes."

    Ancestors
    	COMPARABLE*
    	HASHABLE*
    	STRING_HANDLER

    Queries
    	as_string_32: STRING_32
    	as_string_8: STRING_8
    	capacity: INTEGER_32
    	code (i: INTEGER_32): NATURAL_32
    	count: INTEGER_32
    	has_code (c: [like code] NATURAL_32): BOOLEAN
    	hash_code: INTEGER_32
    	index_of_code (c: [like code] NATURAL_32; start_index: INTEGER_32): INTEGER_32
    	infix "<" (other: [like Current] STRING_GENERAL): BOOLEAN
    	infix "<=" (other: [like Current] STRING_GENERAL): BOOLEAN
    	infix ">" (other: [like Current] STRING_GENERAL): BOOLEAN
    	infix ">=" (other: [like Current] STRING_GENERAL): BOOLEAN
    	is_empty: BOOLEAN
    	is_equal (other: [like Current] STRING_GENERAL): BOOLEAN
    	is_hashable: BOOLEAN
    	is_string_32: BOOLEAN
    	is_string_8: BOOLEAN
    	is_valid_as_string_8: BOOLEAN
    	max (other: [like Current] STRING_GENERAL): [like Current] STRING_GENERAL
    	min (other: [like Current] STRING_GENERAL): [like Current] STRING_GENERAL
    	substring (start_index, end_index: INTEGER_32): [like Current] STRING_GENERAL
    	three_way_comparison (other: [like Current] STRING_GENERAL): INTEGER_32
    	to_cil: SYSTEM_STRING
    	to_string_32: STRING_32
    	to_string_8: STRING_8
    	valid_code (v: [like code] NATURAL_32): BOOLEAN
    	valid_index (i: INTEGER_32): BOOLEAN

    Commands
    	append (s: STRING_GENERAL)
    	append_code (c: [like code] NATURAL_32)
    	put_code (v: [like code] NATURAL_32; i: INTEGER_32)
    	remove (i: INTEGER_32)
    	resize (newsize: INTEGER_32)