§1. See What This Module Does for an overview of how Inter hierarchies work.

This section of code amounts to a detailed rundown of exactly how Inform's hierarchy of packages fits together: it's a sort of directory listing of every resource we might compile. In actual runs, of course, not all of them will be.

This section makes extensive use of Hierarchy Locations (in building), which provides a general way to set up Inter hierarchies.

§2.

void Hierarchy::establish(void) {
    inter_tree *I = Emit::tree();
    Establish basics2.2;
    Establish modules2.4;
    Establish actions2.6;
    Establish activities2.8;
    Establish adjectives2.10;
    Establish bibliographic2.12;
    Establish chronology2.14;
    Establish conjugations2.16;
    Establish equations2.18;
    Establish extensions2.20;
    Establish external files2.22;
    Establish grammar2.24;
    Establish instances2.26;
    Establish int-fiction2.28;
    Establish kinds2.30;
    Establish listing2.32;
    Establish phrases2.34;
    Establish properties2.36;
    Establish relations2.38;
    Establish rulebooks2.40;
    Establish rules2.42;
    Establish tables2.44;
    Establish variables2.46;
    Establish enclosed matter2.48;
    The rest2.50;
    Establish template resources2.52;
}

§2.1. Basics.

enum SELF_HL from 0
enum DEBUG_HL
enum TARGET_ZCODE_HL
enum TARGET_GLULX_HL
enum INDIV_PROP_START_HL
enum DICT_WORD_SIZE_HL
enum WORDSIZE_HL
enum NULL_HL
enum WORD_HIGHBIT_HL
enum WORD_NEXTTOHIGHBIT_HL
enum IMPROBABLE_VALUE_HL
enum REPARSE_CODE_HL
enum MAX_POSITIVE_NUMBER_HL
enum MIN_NEGATIVE_NUMBER_HL
enum NI_BUILD_COUNT_HL
enum RANKING_TABLE_HL
enum MAX_WEAK_ID_HL
enum NO_VERB_VERB_DEFINED_HL
enum NO_TEST_SCENARIOS_HL
enum MEMORY_HEAP_SIZE_HL
enum TEMPLATE_CONFIGURATION_BITMAP_HL
enum TEMPLATE_CONFIGURATION_LOOKMODE_HL
enum LOCALPARKING_HL
enum CCOUNT_QUOTATIONS_HL
enum MAX_FRAME_SIZE_NEEDED_HL
enum RNG_SEED_AT_START_OF_PLAY_HL
enum SUBMAIN_HL

§2.2. Establish basics2.2 =

    submodule_identity *basics = Packaging::register_submodule(I"basics");

    location_requirement generic_basics = HierarchyLocations::generic_submodule(I, basics);
    HierarchyLocations::con(I, NULL_HL, I"NULL", Translation::same(), generic_basics);
    HierarchyLocations::con(I, WORD_HIGHBIT_HL, I"WORD_HIGHBIT", Translation::same(), generic_basics);
    HierarchyLocations::con(I, WORD_NEXTTOHIGHBIT_HL, I"WORD_NEXTTOHIGHBIT", Translation::same(), generic_basics);
    HierarchyLocations::con(I, IMPROBABLE_VALUE_HL, I"IMPROBABLE_VALUE", Translation::same(), generic_basics);
    HierarchyLocations::con(I, REPARSE_CODE_HL, I"REPARSE_CODE", Translation::same(), generic_basics);
    HierarchyLocations::con(I, MAX_POSITIVE_NUMBER_HL, I"MAX_POSITIVE_NUMBER", Translation::same(), generic_basics);
    HierarchyLocations::con(I, MIN_NEGATIVE_NUMBER_HL, I"MIN_NEGATIVE_NUMBER", Translation::same(), generic_basics);
    HierarchyLocations::con(I, NI_BUILD_COUNT_HL, I"NI_BUILD_COUNT", Translation::same(), generic_basics);
    HierarchyLocations::con(I, RANKING_TABLE_HL, I"RANKING_TABLE", Translation::same(), generic_basics);
    HierarchyLocations::con(I, MAX_WEAK_ID_HL, I"MAX_WEAK_ID", Translation::same(), generic_basics);
    HierarchyLocations::con(I, NO_VERB_VERB_DEFINED_HL, I"NO_VERB_VERB_DEFINED", Translation::same(), generic_basics);
    HierarchyLocations::con(I, MEMORY_HEAP_SIZE_HL, I"MEMORY_HEAP_SIZE", Translation::same(), generic_basics);
    HierarchyLocations::con(I, TEMPLATE_CONFIGURATION_BITMAP_HL, I"TEMPLATE_CONFIGURATION_BITMAP", Translation::same(), generic_basics);
    HierarchyLocations::con(I, TEMPLATE_CONFIGURATION_LOOKMODE_HL, I"TEMPLATE_CONFIGURATION_LOOKMODE", Translation::same(), generic_basics);
    HierarchyLocations::con(I, LOCALPARKING_HL, I"LocalParking", Translation::same(), generic_basics);

    location_requirement synoptic_basics = HierarchyLocations::synoptic_submodule(I, basics);
    HierarchyLocations::con(I, CCOUNT_QUOTATIONS_HL, I"CCOUNT_QUOTATIONS", Translation::same(), synoptic_basics);
    HierarchyLocations::con(I, MAX_FRAME_SIZE_NEEDED_HL, I"MAX_FRAME_SIZE_NEEDED", Translation::same(), synoptic_basics);
    HierarchyLocations::con(I, RNG_SEED_AT_START_OF_PLAY_HL, I"RNG_SEED_AT_START_OF_PLAY", Translation::same(), synoptic_basics);

    location_requirement veneer = HierarchyLocations::this_package(Site::veneer_request(I));
    HierarchyLocations::con(I, SELF_HL, I"self", Translation::same(), veneer);
    HierarchyLocations::con(I, DEBUG_HL, I"DEBUG", Translation::same(), veneer);
    HierarchyLocations::con(I, TARGET_ZCODE_HL, I"TARGET_ZCODE", Translation::same(), veneer);
    HierarchyLocations::con(I, TARGET_GLULX_HL, I"TARGET_GLULX", Translation::same(), veneer);
    HierarchyLocations::con(I, DICT_WORD_SIZE_HL, I"DICT_WORD_SIZE", Translation::same(), veneer);
    HierarchyLocations::con(I, WORDSIZE_HL, I"WORDSIZE", Translation::same(), veneer);
    HierarchyLocations::con(I, INDIV_PROP_START_HL, I"INDIV_PROP_START", Translation::same(), veneer);

    submodule_identity *basic_extras = Packaging::register_submodule(I"BasicInformExtrasKit");
    location_requirement generic_basic_extras = HierarchyLocations::generic_submodule(I, basic_extras);
    HierarchyLocations::func(I, SUBMAIN_HL, I"Submain_fn", Translation::to(I"Submain"), generic_basic_extras);

§2.3. Modules.

enum EXT_TITLE_HMD from 0
enum EXT_AUTHOR_HMD
enum EXT_VERSION_HMD

§2.4. Establish modules2.4 =

    location_requirement in_module = HierarchyLocations::any_package_of_type(I"_module");
    HierarchyLocations::metadata(I, EXT_TITLE_HMD, in_module, I"`title");
    HierarchyLocations::metadata(I, EXT_AUTHOR_HMD, in_module, I"`author");
    HierarchyLocations::metadata(I, EXT_VERSION_HMD, in_module, I"`version");

§2.5. Actions.

enum BOGUS_HAP from 0
enum ACTIONS_HAP
enum ACTION_NAME_HMD
enum ACTION_BASE_NAME_HL
enum WAIT_HL
enum TRANSLATED_BASE_NAME_HL
enum DOUBLE_SHARP_NAME_HL
enum PERFORM_FN_HL
enum CHECK_RB_HL
enum CARRY_OUT_RB_HL
enum REPORT_RB_HL
enum ACTION_STV_CREATOR_FN_HL
enum ACTIONCODING_HL
enum ACTIONDATA_HL
enum ACTIONHAPPENED_HL
enum AD_RECORDS_HL
enum CCOUNT_ACTION_NAME_HL
enum DB_ACTION_DETAILS_HL
enum SACTIONS_HAP
enum MISTAKEACTIONPACKAGE_HL
enum MISTAKEACTION_HL
enum MISTAKEACTIONSUB_HL

§2.6. Establish actions2.6 =

    submodule_identity *actions = Packaging::register_submodule(I"actions");

    location_requirement local_actions = HierarchyLocations::local_submodule(actions);
    HierarchyLocations::ap(I, ACTIONS_HAP, local_actions, I"action", I"_action");
        location_requirement in_action = HierarchyLocations::any_package_of_type(I"_action");
        HierarchyLocations::metadata(I, ACTION_NAME_HMD, in_action, I"`name");
        HierarchyLocations::con(I, ACTION_BASE_NAME_HL, I"A", Translation::uniqued(), in_action);
        HierarchyLocations::con(I, WAIT_HL, I"Wait", Translation::same(), in_action);
        HierarchyLocations::con(I, TRANSLATED_BASE_NAME_HL, NULL, Translation::imposed(), in_action);
        HierarchyLocations::con(I, DOUBLE_SHARP_NAME_HL, NULL, Translation::prefix(I"##"), in_action);
        HierarchyLocations::func(I, PERFORM_FN_HL, I"perform_fn", Translation::suffix(I"Sub"), in_action);
        HierarchyLocations::package(I, CHECK_RB_HL, I"check_rb", I"_rulebook", in_action);
        HierarchyLocations::package(I, CARRY_OUT_RB_HL, I"carry_out_rb", I"_rulebook", in_action);
        HierarchyLocations::package(I, REPORT_RB_HL, I"report_rb", I"_rulebook", in_action);
        HierarchyLocations::func(I, ACTION_STV_CREATOR_FN_HL, I"stv_creator_fn", Translation::uniqued(), in_action);

    location_requirement synoptic_actions = HierarchyLocations::synoptic_submodule(I, actions);
    HierarchyLocations::con(I, ACTIONCODING_HL, I"ActionCoding", Translation::same(), synoptic_actions);
    HierarchyLocations::con(I, ACTIONDATA_HL, I"ActionData", Translation::same(), synoptic_actions);
    HierarchyLocations::con(I, ACTIONHAPPENED_HL, I"ActionHappened", Translation::same(), synoptic_actions);
    HierarchyLocations::con(I, AD_RECORDS_HL, I"AD_RECORDS", Translation::same(), synoptic_actions);
    HierarchyLocations::con(I, CCOUNT_ACTION_NAME_HL, I"CCOUNT_ACTION_NAME", Translation::same(), synoptic_actions);
    HierarchyLocations::func(I, DB_ACTION_DETAILS_HL, I"DB_Action_Details_fn", Translation::to(I"DB_Action_Details"), synoptic_actions);
    HierarchyLocations::ap(I, SACTIONS_HAP, synoptic_actions, I"action", I"_action");
    HierarchyLocations::package(I, MISTAKEACTIONPACKAGE_HL, I"mistake_action", I"_action", synoptic_actions);
    HierarchyLocations::con(I, MISTAKEACTION_HL, I"##MistakeAction", Translation::same(), in_action);
    HierarchyLocations::func(I, MISTAKEACTIONSUB_HL, I"MistakeActionSub_fn", Translation::to(I"MistakeActionSub"), in_action);

§2.7. Activities.

enum ACTIVITIES_HAP
enum ACTIVITY_NAME_HMD
enum ACTIVITY_HL
enum BEFORE_RB_HL
enum FOR_RB_HL
enum AFTER_RB_HL
enum ACTIVITY_STV_CREATOR_FN_HL
enum ACTIVITY_AFTER_RULEBOOKS_HL
enum ACTIVITY_ATB_RULEBOOKS_HL
enum ACTIVITY_BEFORE_RULEBOOKS_HL
enum ACTIVITY_FOR_RULEBOOKS_HL
enum ACTIVITY_VAR_CREATORS_HL

§2.8. Establish activities2.8 =

    submodule_identity *activities = Packaging::register_submodule(I"activities");

    location_requirement local_activities = HierarchyLocations::local_submodule(activities);
    HierarchyLocations::ap(I, ACTIVITIES_HAP, local_activities, I"activity", I"_activity");
        location_requirement in_activity = HierarchyLocations::any_package_of_type(I"_activity");
        HierarchyLocations::metadata(I, ACTIVITY_NAME_HMD, in_activity, I"`name");
        HierarchyLocations::con(I, ACTIVITY_HL, NULL, Translation::generate(I"V"), in_activity);
        HierarchyLocations::package(I, BEFORE_RB_HL, I"before_rb", I"_rulebook", in_activity);
        HierarchyLocations::package(I, FOR_RB_HL, I"for_rb", I"_rulebook", in_activity);
        HierarchyLocations::package(I, AFTER_RB_HL, I"after_rb", I"_rulebook", in_activity);
        HierarchyLocations::func(I, ACTIVITY_STV_CREATOR_FN_HL, I"stv_creator_fn", Translation::uniqued(), in_activity);

    location_requirement synoptic_activities = HierarchyLocations::synoptic_submodule(I, activities);
    HierarchyLocations::con(I, ACTIVITY_AFTER_RULEBOOKS_HL, I"Activity_after_rulebooks", Translation::same(), synoptic_activities);
    HierarchyLocations::con(I, ACTIVITY_ATB_RULEBOOKS_HL, I"Activity_atb_rulebooks", Translation::same(), synoptic_activities);
    HierarchyLocations::con(I, ACTIVITY_BEFORE_RULEBOOKS_HL, I"Activity_before_rulebooks", Translation::same(), synoptic_activities);
    HierarchyLocations::con(I, ACTIVITY_FOR_RULEBOOKS_HL, I"Activity_for_rulebooks", Translation::same(), synoptic_activities);
    HierarchyLocations::con(I, ACTIVITY_VAR_CREATORS_HL, I"activity_var_creators", Translation::same(), synoptic_activities);

§2.9. Adjectives.

enum ADJECTIVES_HAP
enum ADJECTIVE_HL
enum ADJECTIVE_MEANINGS_HAP
enum MEASUREMENT_FN_HL
enum ADJECTIVE_PHRASES_HAP
enum DEFINITION_FN_HL
enum ADJECTIVE_TASKS_HAP
enum TASK_FN_HL

§2.10. Establish adjectives2.10 =

    submodule_identity *adjectives = Packaging::register_submodule(I"adjectives");

    location_requirement local_adjectives = HierarchyLocations::local_submodule(adjectives);
    HierarchyLocations::ap(I, ADJECTIVES_HAP, local_adjectives, I"adjective", I"_adjective");
        location_requirement in_adjective = HierarchyLocations::any_package_of_type(I"_adjective");
        HierarchyLocations::con(I, ADJECTIVE_HL, I"adjective", Translation::uniqued(), in_adjective);
        HierarchyLocations::ap(I, ADJECTIVE_TASKS_HAP, in_adjective, I"adjective_task", I"_adjective_task");
            location_requirement in_adjective_task = HierarchyLocations::any_package_of_type(I"_adjective_task");
            HierarchyLocations::func(I, TASK_FN_HL, I"task_fn", Translation::uniqued(), in_adjective_task);
    HierarchyLocations::ap(I, ADJECTIVE_MEANINGS_HAP, local_adjectives, I"adjective_meaning", I"_adjective_meaning");
        location_requirement in_adjective_meaning = HierarchyLocations::any_package_of_type(I"_adjective_meaning");
        HierarchyLocations::func(I, MEASUREMENT_FN_HL, I"measurement_fn", Translation::generate(I"MADJ_Test"), in_adjective_meaning);
    HierarchyLocations::ap(I, ADJECTIVE_PHRASES_HAP, local_adjectives, I"adjective_phrase", I"_adjective_phrase");
        location_requirement in_adjective_phrase = HierarchyLocations::any_package_of_type(I"_adjective_phrase");
        HierarchyLocations::func(I, DEFINITION_FN_HL, I"measurement_fn", Translation::generate(I"ADJDEFN"), in_adjective_phrase);

§2.11. Bibliographic.

enum UUID_ARRAY_HL
enum STORY_HL
enum HEADLINE_HL
enum STORY_AUTHOR_HL
enum RELEASE_HL
enum SERIAL_HL

§2.12. Establish bibliographic2.12 =

    submodule_identity *bibliographic = Packaging::register_submodule(I"bibliographic");

    location_requirement synoptic_biblio = HierarchyLocations::synoptic_submodule(I, bibliographic);
    HierarchyLocations::con(I, UUID_ARRAY_HL, I"UUID_ARRAY", Translation::same(), synoptic_biblio);
    HierarchyLocations::datum(I, STORY_HL, I"Story_datum", Translation::to(I"Story"), synoptic_biblio);
    HierarchyLocations::datum(I, HEADLINE_HL, I"Headline_datum", Translation::to(I"Headline"), synoptic_biblio);
    HierarchyLocations::datum(I, STORY_AUTHOR_HL, I"Story_Author_datum", Translation::to(I"Story_Author"), synoptic_biblio);
    HierarchyLocations::datum(I, RELEASE_HL, I"Release_datum", Translation::to(I"Release"), synoptic_biblio);
    HierarchyLocations::datum(I, SERIAL_HL, I"Serial_datum", Translation::to(I"Serial"), synoptic_biblio);

§2.13. Chronology.

enum PAST_ACTION_PATTERNS_HAP
enum PAP_FN_HL
enum TIMEDEVENTSTABLE_HL
enum TIMEDEVENTTIMESTABLE_HL
enum PASTACTIONSI6ROUTINES_HL
enum NO_PAST_TENSE_CONDS_HL
enum NO_PAST_TENSE_ACTIONS_HL
enum TESTSINGLEPASTSTATE_HL

§2.14. Establish chronology2.14 =

    submodule_identity *chronology = Packaging::register_submodule(I"chronology");

    location_requirement local_chronology = HierarchyLocations::local_submodule(chronology);
    HierarchyLocations::ap(I, PAST_ACTION_PATTERNS_HAP, local_chronology, I"past_action_pattern", I"_past_action_pattern");
        location_requirement in_past_action_pattern = HierarchyLocations::any_package_of_type(I"_past_action_pattern");
        HierarchyLocations::func(I, PAP_FN_HL, I"pap_fn", Translation::generate(I"PAPR"), in_past_action_pattern);

    location_requirement synoptic_chronology = HierarchyLocations::synoptic_submodule(I, chronology);
    HierarchyLocations::con(I, TIMEDEVENTSTABLE_HL, I"TimedEventsTable", Translation::same(), synoptic_chronology);
    HierarchyLocations::con(I, TIMEDEVENTTIMESTABLE_HL, I"TimedEventTimesTable", Translation::same(), synoptic_chronology);
    HierarchyLocations::con(I, PASTACTIONSI6ROUTINES_HL, I"PastActionsI6Routines", Translation::same(), synoptic_chronology);
    HierarchyLocations::con(I, NO_PAST_TENSE_CONDS_HL, I"NO_PAST_TENSE_CONDS", Translation::same(), synoptic_chronology);
    HierarchyLocations::con(I, NO_PAST_TENSE_ACTIONS_HL, I"NO_PAST_TENSE_ACTIONS", Translation::same(), synoptic_chronology);
    HierarchyLocations::func(I, TESTSINGLEPASTSTATE_HL, I"test_fn", Translation::to(I"TestSinglePastState"), synoptic_chronology);

§2.15. Conjugations.

enum CV_MEANING_HL
enum CV_MODAL_HL
enum CV_NEG_HL
enum CV_POS_HL
enum MVERBS_HAP
enum MVERB_NAME_HMD
enum MODAL_CONJUGATION_FN_HL
enum VERBS_HAP
enum VERB_NAME_HMD
enum NONMODAL_CONJUGATION_FN_HL
enum VERB_FORMS_HAP
enum FORM_FN_HL
enum CONJUGATION_FN_HL

§2.16. Establish conjugations2.16 =

    submodule_identity *conjugations = Packaging::register_submodule(I"conjugations");

    location_requirement generic_conjugations = HierarchyLocations::generic_submodule(I, conjugations);
    HierarchyLocations::con(I, CV_MEANING_HL, I"CV_MEANING", Translation::same(), generic_conjugations);
    HierarchyLocations::con(I, CV_MODAL_HL, I"CV_MODAL", Translation::same(), generic_conjugations);
    HierarchyLocations::con(I, CV_NEG_HL, I"CV_NEG", Translation::same(), generic_conjugations);
    HierarchyLocations::con(I, CV_POS_HL, I"CV_POS", Translation::same(), generic_conjugations);

    location_requirement local_conjugations = HierarchyLocations::local_submodule(conjugations);
    HierarchyLocations::ap(I, MVERBS_HAP, local_conjugations, I"mverb", I"_modal_verb");
        location_requirement in_modal_verb = HierarchyLocations::any_package_of_type(I"_modal_verb");
        HierarchyLocations::metadata(I, MVERB_NAME_HMD, in_modal_verb, I"`name");
        HierarchyLocations::func(I, MODAL_CONJUGATION_FN_HL, I"conjugation_fn", Translation::generate(I"ConjugateModalVerb"), in_modal_verb);
    HierarchyLocations::ap(I, VERBS_HAP, local_conjugations, I"verb", I"_verb");
        location_requirement in_verb = HierarchyLocations::any_package_of_type(I"_verb");
        HierarchyLocations::metadata(I, VERB_NAME_HMD, in_verb, I"`name");
        HierarchyLocations::func(I, NONMODAL_CONJUGATION_FN_HL, I"conjugation_fn", Translation::generate(I"ConjugateVerb"), in_verb);
        HierarchyLocations::ap(I, VERB_FORMS_HAP, in_verb, I"form", I"_verb_form");
            location_requirement in_verb_form = HierarchyLocations::any_package_of_type(I"_verb_form");
            HierarchyLocations::func(I, FORM_FN_HL, I"form_fn", Translation::uniqued(), in_verb_form);

§2.17. Equations.

enum EQUATIONS_HAP
enum SOLVE_FN_HL

§2.18. Establish equations2.18 =

    submodule_identity *equations = Packaging::register_submodule(I"equations");

    location_requirement local_equations = HierarchyLocations::local_submodule(equations);
    HierarchyLocations::ap(I, EQUATIONS_HAP, local_equations, I"equation", I"_equation");
        location_requirement in_equation = HierarchyLocations::any_package_of_type(I"_equation");
        HierarchyLocations::func(I, SOLVE_FN_HL, I"solve_fn", Translation::uniqued(), in_equation);

§2.19. Extensions.

enum SHOWEXTENSIONVERSIONS_HL
enum SHOWFULLEXTENSIONVERSIONS_HL
enum SHOWONEEXTENSION_HL

§2.20. Establish extensions2.20 =

    submodule_identity *extensions = Packaging::register_submodule(I"extensions");

    location_requirement synoptic_extensions = HierarchyLocations::synoptic_submodule(I, extensions);
    HierarchyLocations::func(I, SHOWEXTENSIONVERSIONS_HL, I"showextensionversions_fn", Translation::to(I"ShowExtensionVersions"), synoptic_extensions);
    HierarchyLocations::func(I, SHOWFULLEXTENSIONVERSIONS_HL, I"showfullextensionversions_fn", Translation::to(I"ShowFullExtensionVersions"), synoptic_extensions);
    HierarchyLocations::func(I, SHOWONEEXTENSION_HL, I"showoneextension_fn", Translation::to(I"ShowOneExtension"), synoptic_extensions);

§2.21. External files.

enum EXTERNAL_FILES_HAP
enum FILE_HL
enum IFID_HL

§2.22. Establish external files2.22 =

    submodule_identity *external_files = Packaging::register_submodule(I"external_files");

    location_requirement local_external_files = HierarchyLocations::local_submodule(external_files);
    HierarchyLocations::ap(I, EXTERNAL_FILES_HAP, local_external_files, I"external_file", I"_external_file");
        location_requirement in_external_file = HierarchyLocations::any_package_of_type(I"_external_file");
        HierarchyLocations::con(I, FILE_HL, I"file", Translation::uniqued(), in_external_file);
        HierarchyLocations::con(I, IFID_HL, I"ifid", Translation::uniqued(), in_external_file);

§2.23. Grammar.

enum COND_TOKENS_HAP
enum CONDITIONAL_TOKEN_FN_HL
enum CONSULT_TOKENS_HAP
enum CONSULT_FN_HL
enum TESTS_HAP
enum SCRIPT_HL
enum REQUIREMENTS_HL
enum LOOP_OVER_SCOPES_HAP
enum LOOP_OVER_SCOPE_FN_HL
enum MISTAKES_HAP
enum MISTAKE_FN_HL
enum NAMED_ACTION_PATTERNS_HAP
enum NAP_FN_HL
enum NAMED_TOKENS_HAP
enum PARSE_LINE_FN_HL
enum NOUN_FILTERS_HAP
enum NOUN_FILTER_FN_HL
enum PARSE_NAMES_HAP
enum PARSE_NAME_FN_HL
enum PARSE_NAME_DASH_FN_HL
enum SCOPE_FILTERS_HAP
enum SCOPE_FILTER_FN_HL
enum SLASH_TOKENS_HAP
enum SLASH_FN_HL
enum VERB_DIRECTIVE_CREATURE_HL
enum VERB_DIRECTIVE_DIVIDER_HL
enum VERB_DIRECTIVE_HELD_HL
enum VERB_DIRECTIVE_MULTI_HL
enum VERB_DIRECTIVE_MULTIEXCEPT_HL
enum VERB_DIRECTIVE_MULTIHELD_HL
enum VERB_DIRECTIVE_MULTIINSIDE_HL
enum VERB_DIRECTIVE_NOUN_HL
enum VERB_DIRECTIVE_NUMBER_HL
enum VERB_DIRECTIVE_RESULT_HL
enum VERB_DIRECTIVE_REVERSE_HL
enum VERB_DIRECTIVE_SLASH_HL
enum VERB_DIRECTIVE_SPECIAL_HL
enum VERB_DIRECTIVE_TOPIC_HL
enum TESTSCRIPTSUB_HL
enum INTERNALTESTCASES_HL
enum COMMANDS_HAP
enum VERB_DECLARATION_ARRAY_HL

§2.24. Establish grammar2.24 =

    submodule_identity *grammar = Packaging::register_submodule(I"grammar");

    location_requirement local_grammar = HierarchyLocations::local_submodule(grammar);
    HierarchyLocations::ap(I, COND_TOKENS_HAP, local_grammar, I"conditional_token", I"_conditional_token");
        location_requirement in_conditional_token = HierarchyLocations::any_package_of_type(I"_conditional_token");
        HierarchyLocations::func(I, CONDITIONAL_TOKEN_FN_HL, I"conditional_token_fn", Translation::generate(I"Cond_Token"), in_conditional_token);
    HierarchyLocations::ap(I, CONSULT_TOKENS_HAP, local_grammar, I"consult_token", I"_consult_token");
        location_requirement in_consult_token = HierarchyLocations::any_package_of_type(I"_consult_token");
        HierarchyLocations::func(I, CONSULT_FN_HL, I"consult_fn", Translation::generate(I"Consult_Grammar"), in_consult_token);
    HierarchyLocations::ap(I, TESTS_HAP, local_grammar, I"test", I"_test");
        location_requirement in_test = HierarchyLocations::any_package_of_type(I"_test");
        HierarchyLocations::con(I, SCRIPT_HL, I"script", Translation::uniqued(), in_test);
        HierarchyLocations::con(I, REQUIREMENTS_HL, I"requirements", Translation::uniqued(), in_test);
    HierarchyLocations::ap(I, LOOP_OVER_SCOPES_HAP, local_grammar, I"loop_over_scope", I"_loop_over_scope");
        location_requirement in_loop_over_scope = HierarchyLocations::any_package_of_type(I"_loop_over_scope");
        HierarchyLocations::func(I, LOOP_OVER_SCOPE_FN_HL, I"loop_over_scope_fn", Translation::generate(I"LOS"), in_loop_over_scope);
    HierarchyLocations::ap(I, MISTAKES_HAP, local_grammar, I"mistake", I"_mistake");
        location_requirement in_mistake = HierarchyLocations::any_package_of_type(I"_mistake");
        HierarchyLocations::func(I, MISTAKE_FN_HL, I"mistake_fn", Translation::generate(I"Mistake_Token"), in_mistake);
    HierarchyLocations::ap(I, NAMED_ACTION_PATTERNS_HAP, local_grammar, I"named_action_pattern", I"_named_action_pattern");
        location_requirement in_named_action_pattern = HierarchyLocations::any_package_of_type(I"_named_action_pattern");
        HierarchyLocations::func(I, NAP_FN_HL, I"nap_fn", Translation::generate(I"NAP"), in_named_action_pattern);
    HierarchyLocations::ap(I, NAMED_TOKENS_HAP, local_grammar, I"named_token", I"_named_token");
        location_requirement in_named_token = HierarchyLocations::any_package_of_type(I"_named_token");
        HierarchyLocations::func(I, PARSE_LINE_FN_HL, I"parse_line_fn", Translation::generate(I"GPR_Line"), in_named_token);
    HierarchyLocations::ap(I, NOUN_FILTERS_HAP, local_grammar, I"noun_filter", I"_noun_filter");
        location_requirement in_noun_filter= HierarchyLocations::any_package_of_type(I"_noun_filter");
        HierarchyLocations::func(I, NOUN_FILTER_FN_HL, I"filter_fn", Translation::generate(I"Noun_Filter"), in_noun_filter);
    HierarchyLocations::ap(I, SCOPE_FILTERS_HAP, local_grammar, I"scope_filter", I"_scope_filter");
        location_requirement in_scope_filter = HierarchyLocations::any_package_of_type(I"_scope_filter");
        HierarchyLocations::func(I, SCOPE_FILTER_FN_HL, I"filter_fn", Translation::generate(I"Scope_Filter"), in_scope_filter);
    HierarchyLocations::ap(I, PARSE_NAMES_HAP, local_grammar, I"parse_name", I"_parse_name");
        location_requirement in_parse_name = HierarchyLocations::any_package_of_type(I"_parse_name");
        HierarchyLocations::func(I, PARSE_NAME_FN_HL, I"parse_name_fn", Translation::generate(I"Parse_Name_GV"), in_parse_name);
        HierarchyLocations::func(I, PARSE_NAME_DASH_FN_HL, I"parse_name_fn", Translation::generate(I"PN_for_S"), in_parse_name);
    HierarchyLocations::ap(I, SLASH_TOKENS_HAP, local_grammar, I"slash_token", I"_slash_token");
        location_requirement in_slash_token = HierarchyLocations::any_package_of_type(I"_slash_token");
        HierarchyLocations::func(I, SLASH_FN_HL, I"slash_fn", Translation::generate(I"SlashGPR"), in_slash_token);

    location_requirement synoptic_grammar = HierarchyLocations::synoptic_submodule(I, grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_CREATURE_HL, I"VERB_DIRECTIVE_CREATURE", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_DIVIDER_HL, I"VERB_DIRECTIVE_DIVIDER", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_HELD_HL, I"VERB_DIRECTIVE_HELD", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_MULTI_HL, I"VERB_DIRECTIVE_MULTI", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_MULTIEXCEPT_HL, I"VERB_DIRECTIVE_MULTIEXCEPT", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_MULTIHELD_HL, I"VERB_DIRECTIVE_MULTIHELD", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_MULTIINSIDE_HL, I"VERB_DIRECTIVE_MULTIINSIDE", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_NOUN_HL, I"VERB_DIRECTIVE_NOUN", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_NUMBER_HL, I"VERB_DIRECTIVE_NUMBER", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_RESULT_HL, I"VERB_DIRECTIVE_RESULT", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_REVERSE_HL, I"VERB_DIRECTIVE_REVERSE", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_SLASH_HL, I"VERB_DIRECTIVE_SLASH", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_SPECIAL_HL, I"VERB_DIRECTIVE_SPECIAL", Translation::same(), synoptic_grammar);
    HierarchyLocations::con(I, VERB_DIRECTIVE_TOPIC_HL, I"VERB_DIRECTIVE_TOPIC", Translation::same(), synoptic_grammar);
    HierarchyLocations::func(I, TESTSCRIPTSUB_HL, I"TestScriptSub_fn", Translation::to(I"TestScriptSub"), synoptic_grammar);
    HierarchyLocations::func(I, INTERNALTESTCASES_HL, I"run_tests_fn", Translation::to(I"InternalTestCases"), synoptic_grammar);
    HierarchyLocations::ap(I, COMMANDS_HAP, synoptic_grammar, I"command", I"_command");
        location_requirement in_command = HierarchyLocations::any_package_of_type(I"_command");
        HierarchyLocations::func(I, VERB_DECLARATION_ARRAY_HL, NULL, Translation::generate(I"GV_Grammar"), in_command);

§2.25. Instances.

enum INSTANCES_HAP
enum INSTANCE_NAME_HMD
enum INSTANCE_HL
enum BACKDROP_FOUND_IN_FN_HL
enum REGION_FOUND_IN_FN_HL
enum SHORT_NAME_FN_HL
enum SHORT_NAME_PROPERTY_FN_HL
enum TSD_DOOR_DIR_FN_HL
enum TSD_DOOR_TO_FN_HL
enum INLINE_PROPERTIES_HAP
enum INLINE_PROPERTY_HL

§2.26. Establish instances2.26 =

    submodule_identity *instances = Packaging::register_submodule(I"instances");

    location_requirement local_instances = HierarchyLocations::local_submodule(instances);
    HierarchyLocations::ap(I, INSTANCES_HAP, local_instances, I"instance", I"_instance");
        location_requirement in_instance = HierarchyLocations::any_package_of_type(I"_instance");
        HierarchyLocations::metadata(I, INSTANCE_NAME_HMD, in_instance, I"`name");
        HierarchyLocations::con(I, INSTANCE_HL, I"I", Translation::uniqued(), in_instance);
        HierarchyLocations::func(I, BACKDROP_FOUND_IN_FN_HL, I"backdrop_found_in_fn", Translation::uniqued(), in_instance);
        HierarchyLocations::func(I, SHORT_NAME_FN_HL, I"short_name_fn", Translation::generate(I"SN_R"), in_instance);
        HierarchyLocations::func(I, SHORT_NAME_PROPERTY_FN_HL, I"short_name_property_fn", Translation::generate(I"SN_R_A"), in_instance);
        HierarchyLocations::func(I, REGION_FOUND_IN_FN_HL, I"region_found_in_fn", Translation::generate(I"RFI_for_I"), in_instance);
        HierarchyLocations::func(I, TSD_DOOR_DIR_FN_HL, I"tsd_door_dir_fn", Translation::generate(I"TSD_door_dir_value"), in_instance);
        HierarchyLocations::func(I, TSD_DOOR_TO_FN_HL, I"tsd_door_to_fn", Translation::generate(I"TSD_door_to_value"), in_instance);
        HierarchyLocations::ap(I, INLINE_PROPERTIES_HAP, in_instance, I"inline_property", I"_inline_property");
            location_requirement in_inline_property = HierarchyLocations::any_package_of_type(I"_inline_property");
            HierarchyLocations::con(I, INLINE_PROPERTY_HL, I"inline", Translation::uniqued(), in_inline_property);

§2.27. Interactive Fiction.

enum INITIAL_MAX_SCORE_HL
enum NO_DIRECTIONS_HL
enum SHOWSCENESTATUS_HL
enum DETECTSCENECHANGE_HL
enum MAP_STORAGE_HL
enum INITIALSITUATION_HL
enum PLAYER_OBJECT_INIS_HL
enum START_OBJECT_INIS_HL
enum START_ROOM_INIS_HL
enum START_TIME_INIS_HL
enum DONE_INIS_HL
enum DIRECTIONS_HAP
enum DIRECTION_HL

§2.28. Establish int-fiction2.28 =

    submodule_identity *interactive_fiction = Packaging::register_submodule(I"interactive_fiction");

    location_requirement synoptic_IF = HierarchyLocations::synoptic_submodule(I, interactive_fiction);
    HierarchyLocations::con(I, INITIAL_MAX_SCORE_HL, I"INITIAL_MAX_SCORE", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, NO_DIRECTIONS_HL, I"No_Directions", Translation::same(), synoptic_IF);
    HierarchyLocations::func(I, SHOWSCENESTATUS_HL, I"show_scene_status_fn", Translation::to(I"ShowSceneStatus"), synoptic_IF);
    HierarchyLocations::func(I, DETECTSCENECHANGE_HL, I"detect_scene_change_fn", Translation::to(I"DetectSceneChange"), synoptic_IF);
    HierarchyLocations::con(I, MAP_STORAGE_HL, I"Map_Storage", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, INITIALSITUATION_HL, I"InitialSituation", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, PLAYER_OBJECT_INIS_HL, I"PLAYER_OBJECT_INIS", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, START_OBJECT_INIS_HL, I"START_OBJECT_INIS", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, START_ROOM_INIS_HL, I"START_ROOM_INIS", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, START_TIME_INIS_HL, I"START_TIME_INIS", Translation::same(), synoptic_IF);
    HierarchyLocations::con(I, DONE_INIS_HL, I"DONE_INIS", Translation::same(), synoptic_IF);
    HierarchyLocations::ap(I, DIRECTIONS_HAP, synoptic_IF, I"direction", I"_direction");
        location_requirement in_direction = HierarchyLocations::any_package_of_type(I"_direction");
        HierarchyLocations::con(I, DIRECTION_HL, NULL, Translation::generate(I"DirectionObject"), in_direction);

§2.29. Kinds.

enum K_UNCHECKED_HL
enum K_UNCHECKED_FUNCTION_HL
enum K_TYPELESS_INT_HL
enum K_TYPELESS_STRING_HL
enum RUCKSACK_CLASS_HL
enum KIND_HAP
enum KIND_NAME_HMD
enum KIND_CLASS_HL
enum KIND_HL
enum WEAK_ID_HL
enum ICOUNT_HL
enum ILIST_HL
enum DEFAULT_VALUE_HL
enum DECREMENT_FN_HL
enum INCREMENT_FN_HL
enum PRINT_FN_HL
enum PRINT_DASH_FN_HL
enum RANGER_FN_HL
enum DEFAULT_CLOSURE_FN_HL
enum GPR_FN_HL
enum INSTANCE_GPR_FN_HL
enum FIRST_INSTANCE_HL
enum NEXT_INSTANCE_HL
enum COUNT_INSTANCE_1_HL
enum COUNT_INSTANCE_2_HL
enum COUNT_INSTANCE_3_HL
enum COUNT_INSTANCE_4_HL
enum COUNT_INSTANCE_5_HL
enum COUNT_INSTANCE_6_HL
enum COUNT_INSTANCE_7_HL
enum COUNT_INSTANCE_8_HL
enum COUNT_INSTANCE_9_HL
enum COUNT_INSTANCE_10_HL
enum COUNT_INSTANCE_HL
enum KIND_INLINE_PROPERTIES_HAP
enum KIND_INLINE_PROPERTY_HL
enum DEFAULTVALUEOFKOV_HL
enum DEFAULTVALUEFINDER_HL
enum PRINTKINDVALUEPAIR_HL
enum KOVCOMPARISONFUNCTION_HL
enum KOVDOMAINSIZE_HL
enum KOVISBLOCKVALUE_HL
enum I7_KIND_NAME_HL
enum KOVSUPPORTFUNCTION_HL
enum SHOWMEDETAILS_HL
enum BASE_KIND_HWM_HL

§2.30. Establish kinds2.30 =

    submodule_identity *kinds = Packaging::register_submodule(I"kinds");

    location_requirement generic_kinds = HierarchyLocations::generic_submodule(I, kinds);
    HierarchyLocations::con(I, K_UNCHECKED_HL, I"K_unchecked", Translation::same(), generic_kinds);
    HierarchyLocations::con(I, K_UNCHECKED_FUNCTION_HL, I"K_unchecked_function", Translation::same(), generic_kinds);
    HierarchyLocations::con(I, K_TYPELESS_INT_HL, I"K_typeless_int", Translation::same(), generic_kinds);
    HierarchyLocations::con(I, K_TYPELESS_STRING_HL, I"K_typeless_string", Translation::same(), generic_kinds);
    HierarchyLocations::con(I, RUCKSACK_CLASS_HL, I"RUCKSACK_CLASS", Translation::same(), generic_kinds);

    location_requirement local_kinds = HierarchyLocations::local_submodule(kinds);
    HierarchyLocations::ap(I, KIND_HAP, local_kinds, I"kind", I"_kind");
        location_requirement in_kind = HierarchyLocations::any_package_of_type(I"_kind");
        HierarchyLocations::metadata(I, KIND_NAME_HMD, in_kind, I"`name");
        HierarchyLocations::con(I, KIND_CLASS_HL, NULL, Translation::generate(I"K"), in_kind);
        HierarchyLocations::con(I, KIND_HL, NULL, Translation::generate(I"KD"), in_kind);
        HierarchyLocations::con(I, WEAK_ID_HL, NULL, Translation::imposed(), in_kind);
        HierarchyLocations::con(I, ICOUNT_HL, NULL, Translation::imposed(), in_kind);
        HierarchyLocations::con(I, ILIST_HL, NULL, Translation::imposed(), in_kind);
        HierarchyLocations::con(I, DEFAULT_VALUE_HL, I"default_value", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, DECREMENT_FN_HL, I"decrement_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, INCREMENT_FN_HL, I"increment_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, PRINT_FN_HL, I"print_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, PRINT_DASH_FN_HL, I"print_fn", Translation::generate(I"E"), in_kind);
        HierarchyLocations::func(I, RANGER_FN_HL, I"ranger_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, DEFAULT_CLOSURE_FN_HL, I"default_closure_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, GPR_FN_HL, I"gpr_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::func(I, INSTANCE_GPR_FN_HL, I"instance_gpr_fn", Translation::uniqued(), in_kind);
        HierarchyLocations::con(I, FIRST_INSTANCE_HL, NULL, Translation::suffix(I"_First"), in_kind);
        HierarchyLocations::con(I, NEXT_INSTANCE_HL, NULL, Translation::suffix(I"_Next"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_1_HL, NULL, Translation::to(I"IK1_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_2_HL, NULL, Translation::to(I"IK2_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_3_HL, NULL, Translation::to(I"IK3_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_4_HL, NULL, Translation::to(I"IK4_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_5_HL, NULL, Translation::to(I"IK5_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_6_HL, NULL, Translation::to(I"IK6_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_7_HL, NULL, Translation::to(I"IK7_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_8_HL, NULL, Translation::to(I"IK8_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_9_HL, NULL, Translation::to(I"IK9_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_10_HL, NULL, Translation::to(I"IK10_Count"), in_kind);
        HierarchyLocations::con(I, COUNT_INSTANCE_HL, NULL, Translation::suffix(I"_Count"), in_kind);
        HierarchyLocations::ap(I, KIND_INLINE_PROPERTIES_HAP, in_kind, I"inline_property", I"_inline_property");
            location_requirement in_kind_inline_property = HierarchyLocations::any_package_of_type(I"_inline_property");
            HierarchyLocations::con(I, KIND_INLINE_PROPERTY_HL, I"inline", Translation::uniqued(), in_kind_inline_property);

    location_requirement synoptic_kinds = HierarchyLocations::synoptic_submodule(I, kinds);
    HierarchyLocations::con(I, BASE_KIND_HWM_HL, I"BASE_KIND_HWM", Translation::same(), synoptic_kinds);
    HierarchyLocations::func(I, DEFAULTVALUEOFKOV_HL, I"defaultvalue_fn", Translation::to(I"DefaultValueOfKOV"), synoptic_kinds);
    HierarchyLocations::func(I, DEFAULTVALUEFINDER_HL, I"defaultvaluefinder_fn", Translation::to(I"DefaultValueFinder"), synoptic_kinds);
    HierarchyLocations::func(I, PRINTKINDVALUEPAIR_HL, I"printkindvaluepair_fn", Translation::to(I"PrintKindValuePair"), synoptic_kinds);
    HierarchyLocations::func(I, KOVCOMPARISONFUNCTION_HL, I"comparison_fn", Translation::to(I"KOVComparisonFunction"), synoptic_kinds);
    HierarchyLocations::func(I, KOVDOMAINSIZE_HL, I"domainsize_fn", Translation::to(I"KOVDomainSize"), synoptic_kinds);
    HierarchyLocations::func(I, KOVISBLOCKVALUE_HL, I"blockvalue_fn", Translation::to(I"KOVIsBlockValue"), synoptic_kinds);
    HierarchyLocations::func(I, I7_KIND_NAME_HL, I"printkindname_fn", Translation::to(I"I7_Kind_Name"), synoptic_kinds);
    HierarchyLocations::func(I, KOVSUPPORTFUNCTION_HL, I"support_fn", Translation::to(I"KOVSupportFunction"), synoptic_kinds);
    HierarchyLocations::func(I, SHOWMEDETAILS_HL, I"showmedetails_fn", Translation::to(I"ShowMeDetails"), synoptic_kinds);

§2.31. Listing.

enum LISTS_TOGETHER_HAP
enum LIST_TOGETHER_ARRAY_HL
enum LIST_TOGETHER_FN_HL

§2.32. Establish listing2.32 =

    submodule_identity *listing = Packaging::register_submodule(I"listing");

    location_requirement local_listing = HierarchyLocations::local_submodule(listing);
    HierarchyLocations::ap(I, LISTS_TOGETHER_HAP, local_listing, I"list_together", I"_list_together");
        location_requirement in_list_together = HierarchyLocations::any_package_of_type(I"_list_together");
        HierarchyLocations::con(I, LIST_TOGETHER_ARRAY_HL, I"list_together_array", Translation::uniqued(), in_list_together);
        HierarchyLocations::func(I, LIST_TOGETHER_FN_HL, I"list_together_fn", Translation::generate(I"LTR_R"), in_list_together);

§2.33. Phrases.

enum CLOSURES_HAP
enum CLOSURE_DATA_HL
enum PHRASES_HAP
enum REQUESTS_HAP
enum PHRASE_FN_HL
enum LABEL_STORAGES_HAP
enum LABEL_ASSOCIATED_STORAGE_HL

§2.34. Establish phrases2.34 =

    submodule_identity *phrases = Packaging::register_submodule(I"phrases");

    location_requirement local_phrases = HierarchyLocations::local_submodule(phrases);
    HierarchyLocations::ap(I, PHRASES_HAP, local_phrases, I"phrase", I"_to_phrase");
        location_requirement in_to_phrase = HierarchyLocations::any_package_of_type(I"_to_phrase");
        HierarchyLocations::ap(I, CLOSURES_HAP, in_to_phrase, I"closure", I"_closure");
            location_requirement in_closure = HierarchyLocations::any_package_of_type(I"_closure");
            HierarchyLocations::con(I, CLOSURE_DATA_HL, I"closure_data", Translation::uniqued(), in_closure);
        HierarchyLocations::ap(I, REQUESTS_HAP, in_to_phrase, I"request", I"_request");
            location_requirement in_request = HierarchyLocations::any_package_of_type(I"_request");
            HierarchyLocations::func(I, PHRASE_FN_HL, I"phrase_fn", Translation::uniqued(), in_request);

    location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
    HierarchyLocations::ap(I, LABEL_STORAGES_HAP, in_any_enclosure, I"label_storage", I"_label_storage");
        location_requirement in_label_storage = HierarchyLocations::any_package_of_type(I"_label_storage");
        HierarchyLocations::con(I, LABEL_ASSOCIATED_STORAGE_HL, I"label_associated_storage", Translation::uniqued(), in_label_storage);

§2.35. Properties.

enum PROPERTIES_HAP
enum PROPERTY_NAME_HMD
enum PROPERTY_HL
enum EITHER_OR_GPR_FN_HL
enum CCOUNT_PROPERTY_HL

§2.36. Establish properties2.36 =

    submodule_identity *properties = Packaging::register_submodule(I"properties");

    location_requirement local_properties = HierarchyLocations::local_submodule(properties);
    HierarchyLocations::ap(I, PROPERTIES_HAP, local_properties, I"property", I"_property");
        location_requirement in_property = HierarchyLocations::any_package_of_type(I"_property");
        HierarchyLocations::metadata(I, PROPERTY_NAME_HMD, in_property, I"`name");
        HierarchyLocations::con(I, PROPERTY_HL, I"P", Translation::same(), in_property);
        HierarchyLocations::func(I, EITHER_OR_GPR_FN_HL, I"either_or_GPR_fn", Translation::generate(I"PRN_PN"), in_property);

    location_requirement synoptic_props = HierarchyLocations::synoptic_submodule(I, properties);
    HierarchyLocations::con(I, CCOUNT_PROPERTY_HL, I"CCOUNT_PROPERTY", Translation::same(), synoptic_props);

§2.37. Relations.

enum RELS_ASSERT_FALSE_HL
enum RELS_ASSERT_TRUE_HL
enum RELS_EQUIVALENCE_HL
enum RELS_LIST_HL
enum RELS_LOOKUP_ALL_X_HL
enum RELS_LOOKUP_ALL_Y_HL
enum RELS_LOOKUP_ANY_HL
enum RELS_ROUTE_FIND_COUNT_HL
enum RELS_ROUTE_FIND_HL
enum RELS_SHOW_HL
enum RELS_SYMMETRIC_HL
enum RELS_TEST_HL
enum RELS_X_UNIQUE_HL
enum RELS_Y_UNIQUE_HL
enum REL_BLOCK_HEADER_HL
enum TTF_SUM_HL
enum MEANINGLESS_RR_HL
enum RELATIONS_HAP
enum RELATION_RECORD_HL
enum BITMAP_HL
enum ABILITIES_HL
enum ROUTE_CACHE_HL
enum HANDLER_FN_HL
enum RELATION_INITIALISER_FN_HL
enum GUARD_F0_FN_HL
enum GUARD_F1_FN_HL
enum GUARD_TEST_FN_HL
enum GUARD_MAKE_TRUE_FN_HL
enum GUARD_MAKE_FALSE_INAME_HL
enum RELATION_FN_HL
enum CREATEDYNAMICRELATIONS_HL
enum CCOUNT_BINARY_PREDICATE_HL
enum ITERATERELATIONS_HL
enum RPROPERTY_HL

§2.38. Establish relations2.38 =

    submodule_identity *relations = Packaging::register_submodule(I"relations");

    location_requirement generic_rels = HierarchyLocations::generic_submodule(I, relations);
    HierarchyLocations::con(I, RELS_ASSERT_FALSE_HL, I"RELS_ASSERT_FALSE", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_ASSERT_TRUE_HL, I"RELS_ASSERT_TRUE", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_EQUIVALENCE_HL, I"RELS_EQUIVALENCE", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_LIST_HL, I"RELS_LIST", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_LOOKUP_ALL_X_HL, I"RELS_LOOKUP_ALL_X", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_LOOKUP_ALL_Y_HL, I"RELS_LOOKUP_ALL_Y", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_LOOKUP_ANY_HL, I"RELS_LOOKUP_ANY", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_ROUTE_FIND_COUNT_HL, I"RELS_ROUTE_FIND_COUNT", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_ROUTE_FIND_HL, I"RELS_ROUTE_FIND", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_SHOW_HL, I"RELS_SHOW", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_SYMMETRIC_HL, I"RELS_SYMMETRIC", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_TEST_HL, I"RELS_TEST", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_X_UNIQUE_HL, I"RELS_X_UNIQUE", Translation::same(), generic_rels);
    HierarchyLocations::con(I, RELS_Y_UNIQUE_HL, I"RELS_Y_UNIQUE", Translation::same(), generic_rels);
    HierarchyLocations::con(I, REL_BLOCK_HEADER_HL, I"REL_BLOCK_HEADER", Translation::same(), generic_rels);
    HierarchyLocations::con(I, TTF_SUM_HL, I"TTF_sum", Translation::same(), generic_rels);
    HierarchyLocations::con(I, MEANINGLESS_RR_HL, I"MEANINGLESS_RR", Translation::same(), generic_rels);

    location_requirement local_rels = HierarchyLocations::local_submodule(relations);
    HierarchyLocations::ap(I, RELATIONS_HAP, local_rels, I"relation", I"_relation");
        location_requirement in_relation = HierarchyLocations::any_package_of_type(I"_relation");
        HierarchyLocations::con(I, RELATION_RECORD_HL, NULL, Translation::generate(I"Rel_Record"), in_relation);
        HierarchyLocations::con(I, BITMAP_HL, I"as_constant", Translation::uniqued(), in_relation);
        HierarchyLocations::con(I, ABILITIES_HL, I"abilities", Translation::uniqued(), in_relation);
        HierarchyLocations::con(I, ROUTE_CACHE_HL, I"route_cache", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, HANDLER_FN_HL, I"handler_fn", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, RELATION_INITIALISER_FN_HL, I"relation_initialiser_fn", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, GUARD_F0_FN_HL, I"guard_f0_fn", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, GUARD_F1_FN_HL, I"guard_f1_fn", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, GUARD_TEST_FN_HL, I"guard_test_fn", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, GUARD_MAKE_TRUE_FN_HL, I"guard_make_true_fn", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, GUARD_MAKE_FALSE_INAME_HL, I"guard_make_false_iname", Translation::uniqued(), in_relation);
        HierarchyLocations::func(I, RELATION_FN_HL, I"relation_fn", Translation::uniqued(), in_relation);

    location_requirement synoptic_rels = HierarchyLocations::synoptic_submodule(I, relations);
    HierarchyLocations::func(I, CREATEDYNAMICRELATIONS_HL, I"creator_fn", Translation::to(I"CreateDynamicRelations"), synoptic_rels);
    HierarchyLocations::con(I, CCOUNT_BINARY_PREDICATE_HL, I"CCOUNT_BINARY_PREDICATE", Translation::same(), synoptic_rels);
    HierarchyLocations::func(I, ITERATERELATIONS_HL, I"iterator_fn", Translation::to(I"IterateRelations"), synoptic_rels);
    HierarchyLocations::func(I, RPROPERTY_HL, I"property_fn", Translation::to(I"RProperty"), synoptic_rels);

§2.39. Rulebooks.

enum EMPTY_RULEBOOK_INAME_HL
enum RBNO4_INAME_HL
enum RBNO3_INAME_HL
enum RBNO2_INAME_HL
enum RBNO1_INAME_HL
enum RBNO0_INAME_HL
enum OUTCOMES_HAP
enum OUTCOME_NAME_HMD
enum OUTCOME_HL
enum RULEBOOKS_HAP
enum RULEBOOK_NAME_HMD
enum RUN_FN_HL
enum RULEBOOK_STV_CREATOR_FN_HL
enum NUMBER_RULEBOOKS_CREATED_HL
enum RULEBOOK_VAR_CREATORS_HL
enum SLOW_LOOKUP_HL
enum RULEBOOKS_ARRAY_HL
enum RULEBOOKNAMES_HL

§2.40. Establish rulebooks2.40 =

    submodule_identity *rulebooks = Packaging::register_submodule(I"rulebooks");

    location_requirement generic_rulebooks = HierarchyLocations::generic_submodule(I, rulebooks);
    HierarchyLocations::func(I, EMPTY_RULEBOOK_INAME_HL, I"empty_fn", Translation::to(I"EMPTY_RULEBOOK"), generic_rulebooks);
    HierarchyLocations::con(I, RBNO4_INAME_HL, I"RBNO4_OUTCOME", Translation::uniqued(), generic_rulebooks);
    HierarchyLocations::con(I, RBNO3_INAME_HL, I"RBNO3_OUTCOME", Translation::uniqued(), generic_rulebooks);
    HierarchyLocations::con(I, RBNO2_INAME_HL, I"RBNO2_OUTCOME", Translation::uniqued(), generic_rulebooks);
    HierarchyLocations::con(I, RBNO1_INAME_HL, I"RBNO1_OUTCOME", Translation::uniqued(), generic_rulebooks);
    HierarchyLocations::con(I, RBNO0_INAME_HL, I"RBNO0_OUTCOME", Translation::uniqued(), generic_rulebooks);

    location_requirement local_rulebooks = HierarchyLocations::local_submodule(rulebooks);
    HierarchyLocations::ap(I, OUTCOMES_HAP, local_rulebooks, I"rulebook_outcome", I"_outcome");
        location_requirement in_outcome = HierarchyLocations::any_package_of_type(I"_outcome");
        HierarchyLocations::metadata(I, OUTCOME_NAME_HMD, in_outcome, I"`name");
        HierarchyLocations::con(I, OUTCOME_HL, I"outcome", Translation::uniqued(), in_outcome);
    HierarchyLocations::ap(I, RULEBOOKS_HAP, local_rulebooks, I"rulebook", I"_rulebook");
        location_requirement in_rulebook = HierarchyLocations::any_package_of_type(I"_rulebook");
        HierarchyLocations::metadata(I, RULEBOOK_NAME_HMD, in_rulebook, I"`name");
        HierarchyLocations::func(I, RUN_FN_HL, I"run_fn", Translation::uniqued(), in_rulebook);
        HierarchyLocations::func(I, RULEBOOK_STV_CREATOR_FN_HL, I"stv_creator_fn", Translation::uniqued(), in_rulebook);

    location_requirement synoptic_rulebooks = HierarchyLocations::synoptic_submodule(I, rulebooks);
    HierarchyLocations::con(I, NUMBER_RULEBOOKS_CREATED_HL, I"NUMBER_RULEBOOKS_CREATED", Translation::same(), synoptic_rulebooks);
    HierarchyLocations::con(I, RULEBOOK_VAR_CREATORS_HL, I"rulebook_var_creators", Translation::same(), synoptic_rulebooks);
    HierarchyLocations::func(I, SLOW_LOOKUP_HL, I"slow_lookup_fn", Translation::to(I"MStack_GetRBVarCreator"), synoptic_rulebooks);
    HierarchyLocations::con(I, RULEBOOKS_ARRAY_HL, I"rulebooks_array", Translation::same(), synoptic_rulebooks);
    HierarchyLocations::con(I, RULEBOOKNAMES_HL, I"RulebookNames", Translation::same(), synoptic_rulebooks);

§2.41. Rules.

enum RULES_HAP
enum RULE_NAME_HMD
enum SHELL_FN_HL
enum RULE_FN_HL
enum EXTERIOR_RULE_HL
enum RESPONDER_FN_HL
enum RESPONSES_HAP
enum AS_CONSTANT_HL
enum AS_BLOCK_CONSTANT_HL
enum LAUNCHER_HL
enum RULEPRINTINGRULE_HL
enum RESPONSEDIVISIONS_HL

§2.42. Establish rules2.42 =

    submodule_identity *rules = Packaging::register_submodule(I"rules");

    location_requirement local_rules = HierarchyLocations::local_submodule(rules);
    HierarchyLocations::ap(I, RULES_HAP, local_rules, I"rule", I"_rule");
        location_requirement in_rule = HierarchyLocations::any_package_of_type(I"_rule");
        HierarchyLocations::metadata(I, RULE_NAME_HMD, in_rule, I"`name");
        HierarchyLocations::func(I, SHELL_FN_HL, I"shell_fn", Translation::uniqued(), in_rule);
        HierarchyLocations::func(I, RULE_FN_HL, I"rule_fn", Translation::uniqued(), in_rule);
        HierarchyLocations::con(I, EXTERIOR_RULE_HL, I"exterior_rule", Translation::uniqued(), in_rule);
        HierarchyLocations::func(I, RESPONDER_FN_HL, I"responder_fn", Translation::suffix(I"M"), in_rule);
        HierarchyLocations::ap(I, RESPONSES_HAP, in_rule, I"response", I"_response");
            location_requirement in_response = HierarchyLocations::any_package_of_type(I"_response");
            HierarchyLocations::con(I, AS_CONSTANT_HL, I"as_constant", Translation::uniqued(), in_response);
            HierarchyLocations::con(I, AS_BLOCK_CONSTANT_HL, I"as_block_constant", Translation::uniqued(), in_response);
            HierarchyLocations::func(I, LAUNCHER_HL, I"launcher", Translation::uniqued(), in_response);

    location_requirement synoptic_rules = HierarchyLocations::synoptic_submodule(I, rules);
    HierarchyLocations::con(I, RESPONSEDIVISIONS_HL, I"ResponseDivisions", Translation::same(), synoptic_rules);
    HierarchyLocations::func(I, RULEPRINTINGRULE_HL, I"print_fn", Translation::to(I"RulePrintingRule"), synoptic_rules);

§2.43. Tables.

enum TABLES_HAP
enum TABLE_NAME_HMD
enum TABLE_DATA_HL
enum TABLE_COLUMNS_HAP
enum COLUMN_DATA_HL
enum TC_KOV_HL
enum TB_BLANKS_HL

§2.44. Establish tables2.44 =

    submodule_identity *tables = Packaging::register_submodule(I"tables");

    location_requirement local_tables = HierarchyLocations::local_submodule(tables);
    HierarchyLocations::ap(I, TABLES_HAP, local_tables, I"table", I"_table");
        location_requirement in_table = HierarchyLocations::any_package_of_type(I"_table");
        HierarchyLocations::metadata(I, TABLE_NAME_HMD, in_table, I"`name");
        HierarchyLocations::con(I, TABLE_DATA_HL, I"table_data", Translation::uniqued(), in_table);
        HierarchyLocations::ap(I, TABLE_COLUMNS_HAP, in_table, I"table_column", I"_table_column");
            location_requirement in_table_column = HierarchyLocations::any_package_of_type(I"_table_column");
            HierarchyLocations::con(I, COLUMN_DATA_HL, I"column_data", Translation::uniqued(), in_table_column);

    location_requirement synoptic_tables = HierarchyLocations::synoptic_submodule(I, tables);
    HierarchyLocations::con(I, TB_BLANKS_HL, I"TB_Blanks", Translation::same(), synoptic_tables);
    HierarchyLocations::func(I, TC_KOV_HL, I"weak_kind_ID_of_column_entry_fn", Translation::to(I"TC_KOV"), synoptic_tables);

§2.45. Variables.

enum VARIABLES_HAP
enum VARIABLE_NAME_HMD
enum VARIABLE_HL

§2.46. Establish variables2.46 =

    submodule_identity *variables = Packaging::register_submodule(I"variables");

    location_requirement vars = HierarchyLocations::local_submodule(variables);
    HierarchyLocations::ap(I, VARIABLES_HAP, vars, I"variable", I"_variable");
        location_requirement in_variable = HierarchyLocations::any_package_of_type(I"_variable");
        HierarchyLocations::metadata(I, VARIABLE_NAME_HMD, in_variable, I"`name");
        HierarchyLocations::con(I, VARIABLE_HL, NULL, Translation::generate(I"V"), in_variable);

§2.47. Enclosed matter.

enum LITERALS_HAP
enum TEXT_LITERAL_HL
enum LIST_LITERAL_HL
enum TEXT_SUBSTITUTION_HL
enum TEXT_SUBSTITUTION_FN_HL
enum PROPOSITIONS_HAP
enum PROPOSITION_HL
enum RTP_HL
enum BLOCK_CONSTANTS_HAP
enum BLOCK_CONSTANT_HL
enum BOX_QUOTATIONS_HAP
enum BOX_QUOTATION_FN_HL
enum TEXT_SUBSTITUTIONS_HAP

§2.48. Establish enclosed matter2.48 =

    location_requirement in_any_enclosure = HierarchyLocations::any_enclosure();
    HierarchyLocations::ap(I, LITERALS_HAP, in_any_enclosure, I"literal", I"_literal");
        location_requirement in_literal = HierarchyLocations::any_package_of_type(I"_literal");
        HierarchyLocations::con(I, TEXT_LITERAL_HL, I"text", Translation::uniqued(), in_literal);
        HierarchyLocations::con(I, LIST_LITERAL_HL, I"list", Translation::uniqued(), in_literal);
        HierarchyLocations::con(I, TEXT_SUBSTITUTION_HL, I"ts_array", Translation::uniqued(), in_literal);
        HierarchyLocations::func(I, TEXT_SUBSTITUTION_FN_HL, I"ts_fn", Translation::uniqued(), in_literal);
    HierarchyLocations::ap(I, PROPOSITIONS_HAP, in_any_enclosure, I"proposition", I"_proposition");
        location_requirement in_proposition = HierarchyLocations::any_package_of_type(I"_proposition");
        HierarchyLocations::func(I, PROPOSITION_HL, I"prop", Translation::uniqued(), in_proposition);
    HierarchyLocations::ap(I, BLOCK_CONSTANTS_HAP, in_any_enclosure, I"block_constant", I"_block_constant");
        location_requirement in_block_constant = HierarchyLocations::any_package_of_type(I"_block_constant");
        HierarchyLocations::con(I, BLOCK_CONSTANT_HL, I"bc", Translation::uniqued(), in_block_constant);
    HierarchyLocations::ap(I, BOX_QUOTATIONS_HAP, in_any_enclosure, I"block_constant", I"_box_quotation");
        location_requirement in_box_quotation = HierarchyLocations::any_package_of_type(I"_box_quotation");
        HierarchyLocations::func(I, BOX_QUOTATION_FN_HL, I"quotation_fn", Translation::uniqued(), in_box_quotation);
    HierarchyLocations::con(I, RTP_HL, I"rtp", Translation::uniqued(), in_any_enclosure);

§2.49.

enum K_OBJECT_XPACKAGE from 0
enum K_NUMBER_XPACKAGE
enum K_TIME_XPACKAGE
enum K_TRUTH_STATE_XPACKAGE
enum K_TABLE_XPACKAGE
enum K_VERB_XPACKAGE
enum K_FIGURE_NAME_XPACKAGE
enum K_SOUND_NAME_XPACKAGE
enum K_USE_OPTION_XPACKAGE
enum K_EXTERNAL_FILE_XPACKAGE
enum K_RULEBOOK_OUTCOME_XPACKAGE
enum K_RESPONSE_XPACKAGE
enum K_SCENE_XPACKAGE
enum V_COMMAND_PROMPT_XPACKAGE
enum TESTUSEOPTION_HL
enum PRINT_USE_OPTION_HL
enum TABLEOFTABLES_HL
enum TABLEOFVERBS_HL
enum CAPSHORTNAME_HL
enum COMMANDPROMPTTEXT_HL
enum DECIMAL_TOKEN_INNER_HL
enum NO_USE_OPTIONS_HL
enum RESOURCEIDSOFFIGURES_HL
enum RESOURCEIDSOFSOUNDS_HL
enum TIME_TOKEN_INNER_HL
enum TRUTH_STATE_TOKEN_INNER_HL
enum PRINT_TABLE_HL
enum PRINT_RULEBOOK_OUTCOME_HL
enum PRINT_RESPONSE_HL
enum PRINT_FIGURE_NAME_HL
enum PRINT_SOUND_NAME_HL
enum PRINT_EXTERNAL_FILE_NAME_HL
enum NO_EXTERNAL_FILES_HL
enum TABLEOFEXTERNALFILES_HL
enum PRINT_SCENE_HL

§2.50. The rest2.50 =

    location_requirement in_K_object = HierarchyLocations::this_exotic_package(K_OBJECT_XPACKAGE);
    HierarchyLocations::con(I, CAPSHORTNAME_HL, I"cap_short_name", Translation::same(), in_K_object);

    location_requirement in_K_number = HierarchyLocations::this_exotic_package(K_NUMBER_XPACKAGE);
    HierarchyLocations::func(I, DECIMAL_TOKEN_INNER_HL, I"gpr_fn", Translation::to(I"DECIMAL_TOKEN_INNER"), in_K_number);

    location_requirement in_K_time = HierarchyLocations::this_exotic_package(K_TIME_XPACKAGE);
    HierarchyLocations::func(I, TIME_TOKEN_INNER_HL, I"gpr_fn", Translation::to(I"TIME_TOKEN_INNER"), in_K_time);

    location_requirement in_K_truth_state = HierarchyLocations::this_exotic_package(K_TRUTH_STATE_XPACKAGE);
    HierarchyLocations::func(I, TRUTH_STATE_TOKEN_INNER_HL, I"gpr_fn", Translation::to(I"TRUTH_STATE_TOKEN_INNER"), in_K_truth_state);

    location_requirement in_K_table = HierarchyLocations::this_exotic_package(K_TABLE_XPACKAGE);
    HierarchyLocations::con(I, TABLEOFTABLES_HL, I"TableOfTables", Translation::same(), in_K_table);
    HierarchyLocations::func(I, PRINT_TABLE_HL, I"print_fn", Translation::to(I"PrintTableName"), in_K_table);

    location_requirement in_K_verb = HierarchyLocations::this_exotic_package(K_VERB_XPACKAGE);
    HierarchyLocations::con(I, TABLEOFVERBS_HL, I"TableOfVerbs", Translation::same(), in_K_verb);

    location_requirement in_K_figure_name = HierarchyLocations::this_exotic_package(K_FIGURE_NAME_XPACKAGE);
    HierarchyLocations::con(I, RESOURCEIDSOFFIGURES_HL, I"ResourceIDsOfFigures", Translation::same(), in_K_figure_name);
    HierarchyLocations::func(I, PRINT_FIGURE_NAME_HL, I"print_fn", Translation::to(I"PrintFigureName"), in_K_figure_name);

    location_requirement in_K_sound_name = HierarchyLocations::this_exotic_package(K_SOUND_NAME_XPACKAGE);
    HierarchyLocations::con(I, RESOURCEIDSOFSOUNDS_HL, I"ResourceIDsOfSounds", Translation::same(), in_K_sound_name);
    HierarchyLocations::func(I, PRINT_SOUND_NAME_HL, I"print_fn", Translation::to(I"PrintSoundName"), in_K_sound_name);

    location_requirement in_K_use_option = HierarchyLocations::this_exotic_package(K_USE_OPTION_XPACKAGE);
    HierarchyLocations::con(I, NO_USE_OPTIONS_HL, I"NO_USE_OPTIONS", Translation::same(), in_K_use_option);
    HierarchyLocations::func(I, TESTUSEOPTION_HL, I"test_fn", Translation::to(I"TestUseOption"), in_K_use_option);
    HierarchyLocations::func(I, PRINT_USE_OPTION_HL, I"print_fn", Translation::to(I"PrintUseOption"), in_K_use_option);

    location_requirement in_V_command_prompt = HierarchyLocations::this_exotic_package(V_COMMAND_PROMPT_XPACKAGE);
    HierarchyLocations::func(I, COMMANDPROMPTTEXT_HL, I"command_prompt_text_fn", Translation::to(I"CommandPromptText"), in_V_command_prompt);

    location_requirement in_K_external_file = HierarchyLocations::this_exotic_package(K_EXTERNAL_FILE_XPACKAGE);
    HierarchyLocations::con(I, NO_EXTERNAL_FILES_HL, I"NO_EXTERNAL_FILES", Translation::same(), in_K_external_file);
    HierarchyLocations::con(I, TABLEOFEXTERNALFILES_HL, I"TableOfExternalFiles", Translation::same(), in_K_external_file);
    HierarchyLocations::func(I, PRINT_EXTERNAL_FILE_NAME_HL, I"print_fn", Translation::to(I"PrintExternalFileName"), in_K_external_file);

    location_requirement in_K_rulebook_outcome = HierarchyLocations::this_exotic_package(K_RULEBOOK_OUTCOME_XPACKAGE);
    HierarchyLocations::func(I, PRINT_RULEBOOK_OUTCOME_HL, I"print_fn", Translation::to(I"RulebookOutcomePrintingRule"), in_K_rulebook_outcome);

    location_requirement in_K_response = HierarchyLocations::this_exotic_package(K_RESPONSE_XPACKAGE);
    HierarchyLocations::func(I, PRINT_RESPONSE_HL, I"print_fn", Translation::to(I"PrintResponse"), in_K_response);

    location_requirement in_K_scene = HierarchyLocations::this_exotic_package(K_SCENE_XPACKAGE);
    HierarchyLocations::func(I, PRINT_SCENE_HL, I"print_fn", Translation::to(I"PrintSceneName"), in_K_scene);

§2.51.

enum THESAME_HL
enum PLURALFOUND_HL
enum THEDARK_HL
enum ACT_REQUESTER_HL
enum ACTION_HL
enum ACTIONCURRENTLYHAPPENINGFLAG_HL
enum ACTOR_HL
enum ACTOR_LOCATION_HL
enum ADJUSTPARAGRAPHPOINT_HL
enum ALLOWINSHOWME_HL
enum ANIMATE_HL
enum ARGUMENTTYPEFAILED_HL
enum ARTICLEDESCRIPTORS_HL
enum AUXF_MAGIC_VALUE_HL
enum AUXF_STATUS_IS_CLOSED_HL
enum BLKVALUECOPY_HL
enum BLKVALUECOPYAZ_HL
enum BLKVALUECREATE_HL
enum BLKVALUECREATEONSTACK_HL
enum BLKVALUEERROR_HL
enum BLKVALUEFREE_HL
enum BLKVALUEFREEONSTACK_HL
enum BLKVALUEWRITE_HL
enum C_STYLE_HL
enum CHECKKINDRETURNED_HL
enum CLEARPARAGRAPHING_HL
enum COMPONENT_CHILD_HL
enum COMPONENT_PARENT_HL
enum COMPONENT_SIBLING_HL
enum CONSTANT_PACKED_TEXT_STORAGE_HL
enum CONSTANT_PERISHABLE_TEXT_STORAGE_HL
enum CONSULT_FROM_HL
enum CONSULT_WORDS_HL
enum CONTAINER_HL
enum CUBEROOT_HL
enum DA_NAME_HL
enum DB_RULE_HL
enum DEADFLAG_HL
enum DEBUG_RULES_HL
enum DEBUG_SCENES_HL
enum DECIMALNUMBER_HL
enum DETECTPLURALWORD_HL
enum DIGITTOVALUE_HL
enum DIVIDEPARAGRAPHPOINT_HL
enum DOUBLEHASHSETRELATIONHANDLER_HL
enum DURINGSCENEMATCHING_HL
enum ELEMENTARY_TT_HL
enum EMPTY_TABLE_HL
enum EMPTY_TEXT_PACKED_HL
enum EMPTY_TEXT_VALUE_HL
enum EMPTYRELATIONHANDLER_HL
enum ENGLISH_BIT_HL
enum ETYPE_HL
enum EXISTSTABLELOOKUPCORR_HL
enum EXISTSTABLELOOKUPENTRY_HL
enum EXISTSTABLEROWCORR_HL
enum FLOATPARSE_HL
enum FOLLOWRULEBOOK_HL
enum formal_par0_HL
enum formal_par1_HL
enum formal_par2_HL
enum formal_par3_HL
enum formal_par4_HL
enum formal_par5_HL
enum formal_par6_HL
enum formal_par7_HL
enum FORMAL_RV_HL
enum FOUND_EVERYWHERE_HL
enum GENERATERANDOMNUMBER_HL
enum GENERICVERBSUB_HL
enum GETGNAOFOBJECT_HL
enum GPR_FAIL_HL
enum GPR_NUMBER_HL
enum GPR_PREPOSITION_HL
enum GPR_TT_HL
enum GPROPERTY_HL
enum HASHLISTRELATIONHANDLER_HL
enum I7SFRAME_HL
enum INDENT_BIT_HL
enum INP1_HL
enum INP2_HL
enum INTEGERDIVIDE_HL
enum INTEGERREMAINDER_HL
enum INVENTORY_STAGE_HL
enum KEEP_SILENT_HL
enum KINDATOMIC_HL
enum LATEST_RULE_RESULT_HL
enum LIST_ITEM_BASE_HL
enum LIST_ITEM_KOV_F_HL
enum LIST_OF_TY_DESC_HL
enum LIST_OF_TY_GETITEM_HL
enum LIST_OF_TY_GETLENGTH_HL
enum LIST_OF_TY_INSERTITEM_HL
enum LIST_OF_TY_SAY_HL
enum LIST_OF_TY_SETLENGTH_HL
enum LOCATION_HL
enum LOCATIONOF_HL
enum LOOPOVERSCOPE_HL
enum LOS_RV_HL
enum MSTACK_HL
enum MSTVO_HL
enum MSTVON_HL
enum NAME_HL
enum NEWLINE_BIT_HL
enum NEXTBEST_ETYPE_HL
enum NEXTWORDSTOPPED_HL
enum NOARTICLE_BIT_HL
enum NOTINCONTEXTPE_HL
enum NOUN_HL
enum NUMBER_TY_ABS_HL
enum NUMBER_TY_TO_REAL_NUMBER_TY_HL
enum NUMBER_TY_TO_TIME_TY_HL
enum OTOVRELROUTETO_HL
enum PACKED_TEXT_STORAGE_HL
enum PARACONTENT_HL
enum PARAMETER_VALUE_HL
enum PARSED_NUMBER_HL
enum PARSER_ACTION_HL
enum PARSER_ONE_HL
enum PARSER_TRACE_HL
enum PARSER_TWO_HL
enum PARSERERROR_HL
enum PARSETOKENSTOPPED_HL
enum PAST_CHRONOLOGICAL_RECORD_HL
enum PLACEINSCOPE_HL
enum PLAYER_HL
enum PNTOVP_HL
enum PRESENT_CHRONOLOGICAL_RECORD_HL
enum PRINTORRUN_HL
enum PRIOR_NAMED_LIST_HL
enum PRIOR_NAMED_LIST_GENDER_HL
enum PRIOR_NAMED_NOUN_HL
enum PROPERTY_LOOP_SIGN_HL
enum PROPERTY_TO_BE_TOTALLED_HL
enum REAL_LOCATION_HL
enum REAL_NUMBER_TY_ABS_HL
enum REAL_NUMBER_TY_APPROXIMATE_HL
enum REAL_NUMBER_TY_COMPARE_HL
enum REAL_NUMBER_TY_CUBE_ROOT_HL
enum REAL_NUMBER_TY_DIVIDE_HL
enum REAL_NUMBER_TY_MINUS_HL
enum REAL_NUMBER_TY_NAN_HL
enum REAL_NUMBER_TY_NEGATE_HL
enum REAL_NUMBER_TY_PLUS_HL
enum REAL_NUMBER_TY_POW_HL
enum REAL_NUMBER_TY_REMAINDER_HL
enum REAL_NUMBER_TY_ROOT_HL
enum REAL_NUMBER_TY_SAY_HL
enum REAL_NUMBER_TY_TIMES_HL
enum REAL_NUMBER_TY_TO_NUMBER_TY_HL
enum REASON_THE_ACTION_FAILED_HL
enum RELATION_EMPTYEQUIV_HL
enum RELATION_EMPTYOTOO_HL
enum RELATION_EMPTYVTOV_HL
enum RELATION_RSHOWOTOO_HL
enum RELATION_SHOWEQUIV_HL
enum RELATION_SHOWOTOO_HL
enum RELATION_SHOWVTOV_HL
enum RELATION_TY_EQUIVALENCEADJECTIVE_HL
enum RELATION_TY_NAME_HL
enum RELATION_TY_OTOOADJECTIVE_HL
enum RELATION_TY_OTOVADJECTIVE_HL
enum RELATION_TY_SYMMETRICADJECTIVE_HL
enum RELATION_TY_VTOOADJECTIVE_HL
enum RELATIONTEST_HL
enum RELFOLLOWVECTOR_HL
enum RELS_EMPTY_HL
enum RESPONSEVIAACTIVITY_HL
enum RLANY_CAN_GET_X_HL
enum RLANY_CAN_GET_Y_HL
enum RLANY_GET_X_HL
enum RLIST_ALL_X_HL
enum RLIST_ALL_Y_HL
enum RLNGETF_HL
enum ROUNDOFFVALUE_HL
enum ROUTINEFILTER_TT_HL
enum RR_STORAGE_HL
enum RTP_RELKINDVIOLATION_HL
enum RTP_RELMINIMAL_HL
enum RULEBOOKFAILS_HL
enum RULEBOOKPARBREAK_HL
enum RULEBOOKSUCCEEDS_HL
enum RUNTIMEPROBLEM_HL
enum SAY__N_HL
enum SAY__P_HL
enum SAY__PC_HL
enum SCENE_ENDED_HL
enum SCENE_ENDINGS_HL
enum SCENE_LATEST_ENDING_HL
enum SCENE_STARTED_HL
enum SCENE_STATUS_HL
enum SCOPE_STAGE_HL
enum SCOPE_TT_HL
enum SECOND_HL
enum SHORT_NAME_HL
enum SIGNEDCOMPARE_HL
enum SPECIAL_WORD_HL
enum SQUAREROOT_HL
enum STACKFRAMECREATE_HL
enum STORED_ACTION_TY_CURRENT_HL
enum STORED_ACTION_TY_TRY_HL
enum STORY_TENSE_HL
enum SUPPORTER_HL
enum SUPPRESS_SCOPE_LOOPS_HL
enum SUPPRESS_TEXT_SUBSTITUTION_HL
enum TABLE_NOVALUE_HL
enum TABLELOOKUPCORR_HL
enum TABLELOOKUPENTRY_HL
enum TESTACTIONBITMAP_HL
enum TESTACTIVITY_HL
enum TESTREGIONALCONTAINMENT_HL
enum TESTSCOPE_HL
enum TESTSTART_HL
enum TEXT_TY_COMPARE_HL
enum TEXT_TY_EXPANDIFPERISHABLE_HL
enum TEXT_TY_SAY_HL
enum THE_TIME_HL
enum THEEMPTYTABLE_HL
enum THEN1__WD_HL
enum TIMESACTIONHASBEENHAPPENING_HL
enum TIMESACTIONHASHAPPENED_HL
enum TRYACTION_HL
enum TRYGIVENOBJECT_HL
enum TURNSACTIONHASBEENHAPPENING_HL
enum UNDERSTAND_AS_MISTAKE_NUMBER_HL
enum UNICODE_TEMP_HL
enum VTOORELROUTETO_HL
enum VTOVRELROUTETO_HL
enum WHEN_SCENE_BEGINS_HL
enum WHEN_SCENE_ENDS_HL
enum WN_HL
enum WORDADDRESS_HL
enum WORDINPROPERTY_HL
enum WORDLENGTH_HL

§2.52. Establish template resources2.52 =

    location_requirement template = HierarchyLocations::plug();
    HierarchyLocations::con(I, THESAME_HL, I"##TheSame", Translation::same(), template);
    HierarchyLocations::con(I, PLURALFOUND_HL, I"##PluralFound", Translation::same(), template);
    HierarchyLocations::con(I, THEDARK_HL, I"thedark", Translation::same(), template);
    HierarchyLocations::con(I, ACT_REQUESTER_HL, I"act_requester", Translation::same(), template);
    HierarchyLocations::con(I, ACTION_HL, I"action", Translation::same(), template);
    HierarchyLocations::con(I, ACTIONCURRENTLYHAPPENINGFLAG_HL, I"ActionCurrentlyHappeningFlag", Translation::same(), template);
    HierarchyLocations::con(I, ACTOR_HL, I"actor", Translation::same(), template);
    HierarchyLocations::con(I, ACTOR_LOCATION_HL, I"actor_location", Translation::same(), template);
    HierarchyLocations::con(I, ADJUSTPARAGRAPHPOINT_HL, I"AdjustParagraphPoint", Translation::same(), template);
    HierarchyLocations::con(I, ALLOWINSHOWME_HL, I"AllowInShowme", Translation::same(), template);
    HierarchyLocations::con(I, ANIMATE_HL, I"animate", Translation::same(), template);
    HierarchyLocations::con(I, ARGUMENTTYPEFAILED_HL, I"ArgumentTypeFailed", Translation::same(), template);
    HierarchyLocations::con(I, ARTICLEDESCRIPTORS_HL, I"ArticleDescriptors", Translation::same(), template);
    HierarchyLocations::con(I, AUXF_MAGIC_VALUE_HL, I"AUXF_MAGIC_VALUE", Translation::same(), template);
    HierarchyLocations::con(I, AUXF_STATUS_IS_CLOSED_HL, I"AUXF_STATUS_IS_CLOSED", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUECOPY_HL, I"BlkValueCopy", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUECOPYAZ_HL, I"BlkValueCopyAZ", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUECREATE_HL, I"BlkValueCreate", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUECREATEONSTACK_HL, I"BlkValueCreateOnStack", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUEERROR_HL, I"BlkValueError", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUEFREE_HL, I"BlkValueFree", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUEFREEONSTACK_HL, I"BlkValueFreeOnStack", Translation::same(), template);
    HierarchyLocations::con(I, BLKVALUEWRITE_HL, I"BlkValueWrite", Translation::same(), template);
    HierarchyLocations::con(I, C_STYLE_HL, I"c_style", Translation::same(), template);
    HierarchyLocations::con(I, CHECKKINDRETURNED_HL, I"CheckKindReturned", Translation::same(), template);
    HierarchyLocations::con(I, CLEARPARAGRAPHING_HL, I"ClearParagraphing", Translation::same(), template);
    HierarchyLocations::con(I, COMPONENT_CHILD_HL, I"component_child", Translation::same(), template);
    HierarchyLocations::con(I, COMPONENT_PARENT_HL, I"component_parent", Translation::same(), template);
    HierarchyLocations::con(I, COMPONENT_SIBLING_HL, I"component_sibling", Translation::same(), template);
    HierarchyLocations::con(I, CONSTANT_PACKED_TEXT_STORAGE_HL, I"CONSTANT_PACKED_TEXT_STORAGE", Translation::same(), template);
    HierarchyLocations::con(I, CONSTANT_PERISHABLE_TEXT_STORAGE_HL, I"CONSTANT_PERISHABLE_TEXT_STORAGE", Translation::same(), template);
    HierarchyLocations::con(I, CONSULT_FROM_HL, I"consult_from", Translation::same(), template);
    HierarchyLocations::con(I, CONSULT_WORDS_HL, I"consult_words", Translation::same(), template);
    HierarchyLocations::con(I, CONTAINER_HL, I"container", Translation::same(), template);
    HierarchyLocations::con(I, CUBEROOT_HL, I"CubeRoot", Translation::same(), template);
    HierarchyLocations::con(I, DA_NAME_HL, I"DA_Name", Translation::same(), template);
    HierarchyLocations::con(I, DB_RULE_HL, I"DB_Rule", Translation::same(), template);
    HierarchyLocations::con(I, DEADFLAG_HL, I"deadflag", Translation::same(), template);
    HierarchyLocations::con(I, DEBUG_RULES_HL, I"debug_rules", Translation::same(), template);
    HierarchyLocations::con(I, DEBUG_SCENES_HL, I"debug_scenes", Translation::same(), template);
    HierarchyLocations::con(I, DECIMALNUMBER_HL, I"DecimalNumber", Translation::same(), template);
    HierarchyLocations::con(I, DETECTPLURALWORD_HL, I"DetectPluralWord", Translation::same(), template);
    HierarchyLocations::con(I, DIGITTOVALUE_HL, I"DigitToValue", Translation::same(), template);
    HierarchyLocations::con(I, DIVIDEPARAGRAPHPOINT_HL, I"DivideParagraphPoint", Translation::same(), template);
    HierarchyLocations::con(I, DOUBLEHASHSETRELATIONHANDLER_HL, I"DoubleHashSetRelationHandler", Translation::same(), template);
    HierarchyLocations::con(I, DURINGSCENEMATCHING_HL, I"DuringSceneMatching", Translation::same(), template);
    HierarchyLocations::con(I, ELEMENTARY_TT_HL, I"ELEMENTARY_TT", Translation::same(), template);
    HierarchyLocations::con(I, EMPTY_TABLE_HL, I"TheEmptyTable", Translation::same(), template);
    HierarchyLocations::con(I, EMPTY_TEXT_PACKED_HL, I"EMPTY_TEXT_PACKED", Translation::same(), template);
    HierarchyLocations::con(I, EMPTY_TEXT_VALUE_HL, I"EMPTY_TEXT_VALUE", Translation::same(), template);
    HierarchyLocations::con(I, EMPTYRELATIONHANDLER_HL, I"EmptyRelationHandler", Translation::same(), template);
    HierarchyLocations::con(I, ENGLISH_BIT_HL, I"ENGLISH_BIT", Translation::same(), template);
    HierarchyLocations::con(I, ETYPE_HL, I"etype", Translation::same(), template);
    HierarchyLocations::con(I, EXISTSTABLELOOKUPCORR_HL, I"ExistsTableLookUpCorr", Translation::same(), template);
    HierarchyLocations::con(I, EXISTSTABLELOOKUPENTRY_HL, I"ExistsTableLookUpEntry", Translation::same(), template);
    HierarchyLocations::con(I, EXISTSTABLEROWCORR_HL, I"ExistsTableRowCorr", Translation::same(), template);
    HierarchyLocations::con(I, FLOATPARSE_HL, I"FloatParse", Translation::same(), template);
    HierarchyLocations::con(I, FOLLOWRULEBOOK_HL, I"FollowRulebook", Translation::same(), template);
    HierarchyLocations::con(I, formal_par0_HL, I"formal_par0", Translation::same(), template);
    HierarchyLocations::con(I, formal_par1_HL, I"formal_par1", Translation::same(), template);
    HierarchyLocations::con(I, formal_par2_HL, I"formal_par2", Translation::same(), template);
    HierarchyLocations::con(I, formal_par3_HL, I"formal_par3", Translation::same(), template);
    HierarchyLocations::con(I, formal_par4_HL, I"formal_par4", Translation::same(), template);
    HierarchyLocations::con(I, formal_par5_HL, I"formal_par5", Translation::same(), template);
    HierarchyLocations::con(I, formal_par6_HL, I"formal_par6", Translation::same(), template);
    HierarchyLocations::con(I, formal_par7_HL, I"formal_par7", Translation::same(), template);
    HierarchyLocations::con(I, FORMAL_RV_HL, I"formal_rv", Translation::same(), template);
    HierarchyLocations::con(I, FOUND_EVERYWHERE_HL, I"FoundEverywhere", Translation::same(), template);
    HierarchyLocations::con(I, GENERATERANDOMNUMBER_HL, I"GenerateRandomNumber", Translation::same(), template);
    HierarchyLocations::con(I, GENERICVERBSUB_HL, I"GenericVerbSub", Translation::same(), template);
    HierarchyLocations::con(I, GETGNAOFOBJECT_HL, I"GetGNAOfObject", Translation::same(), template);
    HierarchyLocations::con(I, GPR_FAIL_HL, I"GPR_FAIL", Translation::same(), template);
    HierarchyLocations::con(I, GPR_NUMBER_HL, I"GPR_NUMBER", Translation::same(), template);
    HierarchyLocations::con(I, GPR_PREPOSITION_HL, I"GPR_PREPOSITION", Translation::same(), template);
    HierarchyLocations::con(I, GPR_TT_HL, I"GPR_TT", Translation::same(), template);
    HierarchyLocations::con(I, GPROPERTY_HL, I"GProperty", Translation::same(), template);
    HierarchyLocations::con(I, HASHLISTRELATIONHANDLER_HL, I"HashListRelationHandler", Translation::same(), template);
    HierarchyLocations::con(I, I7SFRAME_HL, I"I7SFRAME", Translation::same(), template);
    HierarchyLocations::con(I, INDENT_BIT_HL, I"INDENT_BIT", Translation::same(), template);
    HierarchyLocations::con(I, INP1_HL, I"inp1", Translation::same(), template);
    HierarchyLocations::con(I, INP2_HL, I"inp2", Translation::same(), template);
    HierarchyLocations::con(I, INTEGERDIVIDE_HL, I"IntegerDivide", Translation::same(), template);
    HierarchyLocations::con(I, INTEGERREMAINDER_HL, I"IntegerRemainder", Translation::same(), template);
    HierarchyLocations::con(I, INVENTORY_STAGE_HL, I"inventory_stage", Translation::same(), template);
    HierarchyLocations::con(I, KEEP_SILENT_HL, I"keep_silent", Translation::same(), template);
    HierarchyLocations::con(I, KINDATOMIC_HL, I"KindAtomic", Translation::same(), template);
    HierarchyLocations::con(I, LATEST_RULE_RESULT_HL, I"latest_rule_result", Translation::same(), template);
    HierarchyLocations::con(I, LIST_ITEM_BASE_HL, I"LIST_ITEM_BASE", Translation::same(), template);
    HierarchyLocations::con(I, LIST_ITEM_KOV_F_HL, I"LIST_ITEM_KOV_F", Translation::same(), template);
    HierarchyLocations::con(I, LIST_OF_TY_DESC_HL, I"LIST_OF_TY_Desc", Translation::same(), template);
    HierarchyLocations::con(I, LIST_OF_TY_GETITEM_HL, I"LIST_OF_TY_GetItem", Translation::same(), template);
    HierarchyLocations::con(I, LIST_OF_TY_GETLENGTH_HL, I"LIST_OF_TY_GetLength", Translation::same(), template);
    HierarchyLocations::con(I, LIST_OF_TY_INSERTITEM_HL, I"LIST_OF_TY_InsertItem", Translation::same(), template);
    HierarchyLocations::con(I, LIST_OF_TY_SAY_HL, I"LIST_OF_TY_Say", Translation::same(), template);
    HierarchyLocations::con(I, LIST_OF_TY_SETLENGTH_HL, I"LIST_OF_TY_SetLength", Translation::same(), template);
    HierarchyLocations::con(I, LOCATION_HL, I"location", Translation::same(), template);
    HierarchyLocations::con(I, LOCATIONOF_HL, I"LocationOf", Translation::same(), template);
    HierarchyLocations::con(I, LOOPOVERSCOPE_HL, I"LoopOverScope", Translation::same(), template);
    HierarchyLocations::con(I, LOS_RV_HL, I"los_rv", Translation::same(), template);
    HierarchyLocations::con(I, MSTACK_HL, I"MStack", Translation::same(), template);
    HierarchyLocations::con(I, MSTVO_HL, I"MstVO", Translation::same(), template);
    HierarchyLocations::con(I, MSTVON_HL, I"MstVON", Translation::same(), template);
    HierarchyLocations::con(I, NAME_HL, I"name", Translation::same(), template);
    HierarchyLocations::con(I, NEWLINE_BIT_HL, I"NEWLINE_BIT", Translation::same(), template);
    HierarchyLocations::con(I, NEXTBEST_ETYPE_HL, I"nextbest_etype", Translation::same(), template);
    HierarchyLocations::con(I, NEXTWORDSTOPPED_HL, I"NextWordStopped", Translation::same(), template);
    HierarchyLocations::con(I, NOARTICLE_BIT_HL, I"NOARTICLE_BIT", Translation::same(), template);
    HierarchyLocations::con(I, NOTINCONTEXTPE_HL, I"NOTINCONTEXT_PE", Translation::same(), template);
    HierarchyLocations::con(I, NOUN_HL, I"noun", Translation::same(), template);
    HierarchyLocations::con(I, NUMBER_TY_ABS_HL, I"NUMBER_TY_Abs", Translation::same(), template);
    HierarchyLocations::con(I, NUMBER_TY_TO_REAL_NUMBER_TY_HL, I"NUMBER_TY_to_REAL_NUMBER_TY", Translation::same(), template);
    HierarchyLocations::con(I, NUMBER_TY_TO_TIME_TY_HL, I"NUMBER_TY_to_TIME_TY", Translation::same(), template);
    HierarchyLocations::con(I, OTOVRELROUTETO_HL, I"OtoVRelRouteTo", Translation::same(), template);
    HierarchyLocations::con(I, PACKED_TEXT_STORAGE_HL, I"PACKED_TEXT_STORAGE", Translation::same(), template);
    HierarchyLocations::con(I, PARACONTENT_HL, I"ParaContent", Translation::same(), template);
    HierarchyLocations::con(I, PARAMETER_VALUE_HL, I"parameter_value", Translation::same(), template);
    HierarchyLocations::con(I, PARSED_NUMBER_HL, I"parsed_number", Translation::same(), template);
    HierarchyLocations::con(I, PARSER_ACTION_HL, I"parser_action", Translation::same(), template);
    HierarchyLocations::con(I, PARSER_ONE_HL, I"parser_one", Translation::same(), template);
    HierarchyLocations::con(I, PARSER_TRACE_HL, I"parser_trace", Translation::same(), template);
    HierarchyLocations::con(I, PARSER_TWO_HL, I"parser_two", Translation::same(), template);
    HierarchyLocations::con(I, PARSERERROR_HL, I"ParserError", Translation::same(), template);
    HierarchyLocations::con(I, PARSETOKENSTOPPED_HL, I"ParseTokenStopped", Translation::same(), template);
    HierarchyLocations::con(I, PAST_CHRONOLOGICAL_RECORD_HL, I"past_chronological_record", Translation::same(), template);
    HierarchyLocations::con(I, PLACEINSCOPE_HL, I"PlaceInScope", Translation::same(), template);
    HierarchyLocations::con(I, PLAYER_HL, I"player", Translation::same(), template);
    HierarchyLocations::con(I, PNTOVP_HL, I"PNToVP", Translation::same(), template);
    HierarchyLocations::con(I, PRESENT_CHRONOLOGICAL_RECORD_HL, I"present_chronological_record", Translation::same(), template);
    HierarchyLocations::con(I, PRINTORRUN_HL, I"PrintOrRun", Translation::same(), template);
    HierarchyLocations::con(I, PRIOR_NAMED_LIST_HL, I"prior_named_list", Translation::same(), template);
    HierarchyLocations::con(I, PRIOR_NAMED_LIST_GENDER_HL, I"prior_named_list_gender", Translation::same(), template);
    HierarchyLocations::con(I, PRIOR_NAMED_NOUN_HL, I"prior_named_noun", Translation::same(), template);
    HierarchyLocations::con(I, PROPERTY_LOOP_SIGN_HL, I"property_loop_sign", Translation::same(), template);
    HierarchyLocations::con(I, PROPERTY_TO_BE_TOTALLED_HL, I"property_to_be_totalled", Translation::same(), template);
    HierarchyLocations::con(I, REAL_LOCATION_HL, I"real_location", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_ABS_HL, I"REAL_NUMBER_TY_Abs", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_APPROXIMATE_HL, I"REAL_NUMBER_TY_Approximate", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_COMPARE_HL, I"REAL_NUMBER_TY_Compare", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_CUBE_ROOT_HL, I"REAL_NUMBER_TY_Cube_Root", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_DIVIDE_HL, I"REAL_NUMBER_TY_Divide", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_MINUS_HL, I"REAL_NUMBER_TY_Minus", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_NAN_HL, I"REAL_NUMBER_TY_Nan", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_NEGATE_HL, I"REAL_NUMBER_TY_Negate", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_PLUS_HL, I"REAL_NUMBER_TY_Plus", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_POW_HL, I"REAL_NUMBER_TY_Pow", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_REMAINDER_HL, I"REAL_NUMBER_TY_Remainder", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_ROOT_HL, I"REAL_NUMBER_TY_Root", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_SAY_HL, I"REAL_NUMBER_TY_Say", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_TIMES_HL, I"REAL_NUMBER_TY_Times", Translation::same(), template);
    HierarchyLocations::con(I, REAL_NUMBER_TY_TO_NUMBER_TY_HL, I"REAL_NUMBER_TY_to_NUMBER_TY", Translation::same(), template);
    HierarchyLocations::con(I, REASON_THE_ACTION_FAILED_HL, I"reason_the_action_failed", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_EMPTYEQUIV_HL, I"Relation_EmptyEquiv", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_EMPTYOTOO_HL, I"Relation_EmptyOtoO", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_EMPTYVTOV_HL, I"Relation_EmptyVtoV", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_RSHOWOTOO_HL, I"Relation_RShowOtoO", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_SHOWEQUIV_HL, I"Relation_ShowEquiv", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_SHOWOTOO_HL, I"Relation_ShowOtoO", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_SHOWVTOV_HL, I"Relation_ShowVtoV", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_TY_EQUIVALENCEADJECTIVE_HL, I"RELATION_TY_EquivalenceAdjective", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_TY_NAME_HL, I"RELATION_TY_Name", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_TY_OTOOADJECTIVE_HL, I"RELATION_TY_OToOAdjective", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_TY_OTOVADJECTIVE_HL, I"RELATION_TY_OToVAdjective", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_TY_SYMMETRICADJECTIVE_HL, I"RELATION_TY_SymmetricAdjective", Translation::same(), template);
    HierarchyLocations::con(I, RELATION_TY_VTOOADJECTIVE_HL, I"RELATION_TY_VToOAdjective", Translation::same(), template);
    HierarchyLocations::con(I, RELATIONTEST_HL, I"RelationTest", Translation::same(), template);
    HierarchyLocations::con(I, RELFOLLOWVECTOR_HL, I"RelFollowVector", Translation::same(), template);
    HierarchyLocations::con(I, RELS_EMPTY_HL, I"RELS_EMPTY", Translation::same(), template);
    HierarchyLocations::con(I, RESPONSEVIAACTIVITY_HL, I"ResponseViaActivity", Translation::same(), template);
    HierarchyLocations::con(I, RLANY_CAN_GET_X_HL, I"RLANY_CAN_GET_X", Translation::same(), template);
    HierarchyLocations::con(I, RLANY_CAN_GET_Y_HL, I"RLANY_CAN_GET_Y", Translation::same(), template);
    HierarchyLocations::con(I, RLANY_GET_X_HL, I"RLANY_GET_X", Translation::same(), template);
    HierarchyLocations::con(I, RLIST_ALL_X_HL, I"RLIST_ALL_X", Translation::same(), template);
    HierarchyLocations::con(I, RLIST_ALL_Y_HL, I"RLIST_ALL_Y", Translation::same(), template);
    HierarchyLocations::con(I, RLNGETF_HL, I"RlnGetF", Translation::same(), template);
    HierarchyLocations::con(I, ROUNDOFFVALUE_HL, I"RoundOffValue", Translation::same(), template);
    HierarchyLocations::con(I, ROUTINEFILTER_TT_HL, I"ROUTINE_FILTER_TT", Translation::same(), template);
    HierarchyLocations::con(I, RR_STORAGE_HL, I"RR_STORAGE", Translation::same(), template);
    HierarchyLocations::con(I, RTP_RELKINDVIOLATION_HL, I"RTP_RELKINDVIOLATION", Translation::same(), template);
    HierarchyLocations::con(I, RTP_RELMINIMAL_HL, I"RTP_RELMINIMAL", Translation::same(), template);
    HierarchyLocations::con(I, RULEBOOKFAILS_HL, I"RulebookFails", Translation::same(), template);
    HierarchyLocations::con(I, RULEBOOKPARBREAK_HL, I"RulebookParBreak", Translation::same(), template);
    HierarchyLocations::con(I, RULEBOOKSUCCEEDS_HL, I"RulebookSucceeds", Translation::same(), template);
    HierarchyLocations::con(I, RUNTIMEPROBLEM_HL, I"RunTimeProblem", Translation::same(), template);
    HierarchyLocations::con(I, SAY__N_HL, I"say__n", Translation::same(), template);
    HierarchyLocations::con(I, SAY__P_HL, I"say__p", Translation::same(), template);
    HierarchyLocations::con(I, SAY__PC_HL, I"say__pc", Translation::same(), template);
    HierarchyLocations::con(I, SCENE_ENDED_HL, I"scene_ended", Translation::same(), template);
    HierarchyLocations::con(I, SCENE_ENDINGS_HL, I"scene_endings", Translation::same(), template);
    HierarchyLocations::con(I, SCENE_LATEST_ENDING_HL, I"scene_latest_ending", Translation::same(), template);
    HierarchyLocations::con(I, SCENE_STARTED_HL, I"scene_started", Translation::same(), template);
    HierarchyLocations::con(I, SCENE_STATUS_HL, I"scene_status", Translation::same(), template);
    HierarchyLocations::con(I, SCOPE_STAGE_HL, I"scope_stage", Translation::same(), template);
    HierarchyLocations::con(I, SCOPE_TT_HL, I"SCOPE_TT", Translation::same(), template);
    HierarchyLocations::con(I, SECOND_HL, I"second", Translation::same(), template);
    HierarchyLocations::con(I, SHORT_NAME_HL, I"short_name", Translation::same(), template);
    HierarchyLocations::con(I, SIGNEDCOMPARE_HL, I"SignedCompare", Translation::same(), template);
    HierarchyLocations::con(I, SPECIAL_WORD_HL, I"special_word", Translation::same(), template);
    HierarchyLocations::con(I, SQUAREROOT_HL, I"SquareRoot", Translation::same(), template);
    HierarchyLocations::con(I, STACKFRAMECREATE_HL, I"StackFrameCreate", Translation::same(), template);
    HierarchyLocations::con(I, STORED_ACTION_TY_CURRENT_HL, I"STORED_ACTION_TY_Current", Translation::same(), template);
    HierarchyLocations::con(I, STORED_ACTION_TY_TRY_HL, I"STORED_ACTION_TY_Try", Translation::same(), template);
    HierarchyLocations::con(I, STORY_TENSE_HL, I"story_tense", Translation::same(), template);
    HierarchyLocations::con(I, SUPPORTER_HL, I"supporter", Translation::same(), template);
    HierarchyLocations::con(I, SUPPRESS_SCOPE_LOOPS_HL, I"suppress_scope_loops", Translation::same(), template);
    HierarchyLocations::con(I, SUPPRESS_TEXT_SUBSTITUTION_HL, I"suppress_text_substitution", Translation::same(), template);
    HierarchyLocations::con(I, TABLE_NOVALUE_HL, I"TABLE_NOVALUE", Translation::same(), template);
    HierarchyLocations::con(I, TABLELOOKUPCORR_HL, I"TableLookUpCorr", Translation::same(), template);
    HierarchyLocations::con(I, TABLELOOKUPENTRY_HL, I"TableLookUpEntry", Translation::same(), template);
    HierarchyLocations::con(I, TESTACTIONBITMAP_HL, I"TestActionBitmap", Translation::same(), template);
    HierarchyLocations::con(I, TESTACTIVITY_HL, I"TestActivity", Translation::same(), template);
    HierarchyLocations::con(I, TESTREGIONALCONTAINMENT_HL, I"TestRegionalContainment", Translation::same(), template);
    HierarchyLocations::con(I, TESTSCOPE_HL, I"TestScope", Translation::same(), template);
    HierarchyLocations::con(I, TESTSTART_HL, I"TestStart", Translation::same(), template);
    HierarchyLocations::con(I, TEXT_TY_COMPARE_HL, I"TEXT_TY_Compare", Translation::same(), template);
    HierarchyLocations::con(I, TEXT_TY_EXPANDIFPERISHABLE_HL, I"TEXT_TY_ExpandIfPerishable", Translation::same(), template);
    HierarchyLocations::con(I, TEXT_TY_SAY_HL, I"TEXT_TY_Say", Translation::same(), template);
    HierarchyLocations::con(I, THE_TIME_HL, I"the_time", Translation::same(), template);
    HierarchyLocations::con(I, THEEMPTYTABLE_HL, I"TheEmptyTable", Translation::same(), template);
    HierarchyLocations::con(I, THEN1__WD_HL, I"THEN1__WD", Translation::same(), template);
    HierarchyLocations::con(I, TIMESACTIONHASBEENHAPPENING_HL, I"TimesActionHasBeenHappening", Translation::same(), template);
    HierarchyLocations::con(I, TIMESACTIONHASHAPPENED_HL, I"TimesActionHasHappened", Translation::same(), template);
    HierarchyLocations::con(I, TRYACTION_HL, I"TryAction", Translation::same(), template);
    HierarchyLocations::con(I, TRYGIVENOBJECT_HL, I"TryGivenObject", Translation::same(), template);
    HierarchyLocations::con(I, TURNSACTIONHASBEENHAPPENING_HL, I"TurnsActionHasBeenHappening", Translation::same(), template);
    HierarchyLocations::con(I, UNDERSTAND_AS_MISTAKE_NUMBER_HL, I"understand_as_mistake_number", Translation::same(), template);
    HierarchyLocations::con(I, UNICODE_TEMP_HL, I"unicode_temp", Translation::same(), template);
    HierarchyLocations::con(I, VTOORELROUTETO_HL, I"VtoORelRouteTo", Translation::same(), template);
    HierarchyLocations::con(I, VTOVRELROUTETO_HL, I"VtoVRelRouteTo", Translation::same(), template);
    HierarchyLocations::con(I, WHEN_SCENE_BEGINS_HL, I"WHEN_SCENE_BEGINS_RB", Translation::same(), template);
    HierarchyLocations::con(I, WHEN_SCENE_ENDS_HL, I"WHEN_SCENE_ENDS_RB", Translation::same(), template);
    HierarchyLocations::con(I, WN_HL, I"wn", Translation::same(), template);
    HierarchyLocations::con(I, WORDADDRESS_HL, I"WordAddress", Translation::same(), template);
    HierarchyLocations::con(I, WORDINPROPERTY_HL, I"WordInProperty", Translation::same(), template);
    HierarchyLocations::con(I, WORDLENGTH_HL, I"WordLength", Translation::same(), template);

§3.

enum KIND_DEFAULT1_HL
enum KIND_DEFAULT2_HL
enum KIND_DEFAULT3_HL
enum KIND_DEFAULT4_HL
enum KIND_DEFAULT5_HL
enum KIND_DEFAULT6_HL
enum KIND_DEFAULT7_HL
enum KIND_DEFAULT8_HL
enum KIND_DEFAULT9_HL
enum KIND_DEFAULT10_HL
enum KIND_DEFAULT11_HL
enum KIND_DEFAULT12_HL
enum KIND_DEFAULT13_HL
enum KIND_DEFAULT14_HL
enum KIND_DEFAULT15_HL
enum KIND_DEFAULT16_HL
define MAX_KIND_DEFAULTS 16
int no_kind_defaults_used;
kind_constructor *kind_defaults_used[MAX_KIND_DEFAULTS];
int Hierarchy::kind_default(kind_constructor *con, text_stream *Inter_constant_name) {
    for (int i=0; i<no_kind_defaults_used; i++)
        if (con == kind_defaults_used[i])
            return KIND_DEFAULT1_HL + i;
    if (no_kind_defaults_used >= MAX_KIND_DEFAULTS)
        internal_error("too many Neptune file-defined kinds have default values");
    location_requirement template = HierarchyLocations::plug();
    int hl = KIND_DEFAULT1_HL + no_kind_defaults_used;
    kind_defaults_used[no_kind_defaults_used++] = con;
    HierarchyLocations::con(Emit::tree(), hl, Inter_constant_name, Translation::same(), template);
    return hl;
}

§4.

enum MAX_HL
enum MAX_HAP
enum MAX_HMD

§5.

package_request *Hierarchy::exotic_package(int x) {
    switch (x) {
        case K_OBJECT_XPACKAGE: return Kinds::Behaviour::package(K_object);
        case K_NUMBER_XPACKAGE: return Kinds::Behaviour::package(K_number);
        case K_TIME_XPACKAGE: return Kinds::Behaviour::package(K_time);
        case K_TRUTH_STATE_XPACKAGE: return Kinds::Behaviour::package(K_truth_state);
        case K_TABLE_XPACKAGE: return Kinds::Behaviour::package(K_table);
        case K_VERB_XPACKAGE: return Kinds::Behaviour::package(K_verb);
        case K_FIGURE_NAME_XPACKAGE: return Kinds::Behaviour::package(K_figure_name);
        case K_SOUND_NAME_XPACKAGE: return Kinds::Behaviour::package(K_sound_name);
        case K_USE_OPTION_XPACKAGE: return Kinds::Behaviour::package(K_use_option);
        case K_EXTERNAL_FILE_XPACKAGE: return Kinds::Behaviour::package(K_external_file);
        case K_RULEBOOK_OUTCOME_XPACKAGE: return Kinds::Behaviour::package(K_rulebook_outcome);
        case K_RESPONSE_XPACKAGE: return Kinds::Behaviour::package(K_response);
        case K_SCENE_XPACKAGE: return Kinds::Behaviour::package(K_scene);
        case V_COMMAND_PROMPT_XPACKAGE:
            return InterNames::location(
                RTVariables::iname(RTTemporaryVariables::command_prompt_variable()));
    }
    internal_error("unknown exotic package");
    return NULL;
}

§6.

inter_name *Hierarchy::find(int id) {
    return HierarchyLocations::find(Emit::tree(), id);
}

void Hierarchy::make_available(inter_tree *I, inter_name *iname) {
    text_stream *ma_as = Produce::get_translation(iname);
    if (Str::len(ma_as) == 0) ma_as = Emit::to_text(iname);
    PackageTypes::get(I, I"_linkage");
    inter_symbol *S = InterNames::to_symbol(iname);
    Inter::Connectors::socket(Emit::tree(), ma_as, S);
}

package_request *Hierarchy::package(compilation_unit *C, int hap_id) {
    return HierarchyLocations::attach_new_package(Emit::tree(), C, NULL, hap_id);
}

package_request *Hierarchy::synoptic_package(int hap_id) {
    return HierarchyLocations::attach_new_package(Emit::tree(), NULL, NULL, hap_id);
}

package_request *Hierarchy::local_package(int hap_id) {
    return HierarchyLocations::attach_new_package(Emit::tree(), CompilationUnits::find(current_sentence), NULL, hap_id);
}

package_request *Hierarchy::local_package_to(int hap_id, parse_node *at) {
    return HierarchyLocations::attach_new_package(Emit::tree(), CompilationUnits::find(at), NULL, hap_id);
}

package_request *Hierarchy::package_in_enclosure(int hap_id) {
    return HierarchyLocations::attach_new_package(Emit::tree(), NULL, Packaging::enclosure(Emit::tree()), hap_id);
}

package_request *Hierarchy::package_within(int hap_id, package_request *super) {
    return HierarchyLocations::attach_new_package(Emit::tree(), NULL, super, hap_id);
}

inter_name *Hierarchy::make_iname_in(int id, package_request *P) {
    return HierarchyLocations::find_in_package(Emit::tree(), id, P, EMPTY_WORDING, NULL, -1, NULL);
}

inter_name *Hierarchy::make_iname_with_specific_name(int id, text_stream *name, package_request *P) {
    return HierarchyLocations::find_in_package(Emit::tree(), id, P, EMPTY_WORDING, NULL, -1, name);
}

inter_name *Hierarchy::derive_iname_in(int id, inter_name *derive_from, package_request *P) {
    return HierarchyLocations::find_in_package(Emit::tree(), id, P, EMPTY_WORDING, derive_from, -1, NULL);
}

inter_name *Hierarchy::make_localised_iname_in(int id, package_request *P) {
    return HierarchyLocations::find_in_package(Emit::tree(), id, P, EMPTY_WORDING, NULL, -1, NULL);
}

inter_name *Hierarchy::make_iname_with_memo(int id, package_request *P, wording W) {
    return HierarchyLocations::find_in_package(Emit::tree(), id, P, W, NULL, -1, NULL);
}

inter_name *Hierarchy::make_iname_with_memo_and_value(int id, package_request *P, wording W, int x) {
    inter_name *iname = HierarchyLocations::find_in_package(Emit::tree(), id, P, W, NULL, x, NULL);
    Hierarchy::make_available(Emit::tree(), iname);
    return iname;
}

package_request *Hierarchy::make_package_in(int id, package_request *P) {
    return HierarchyLocations::package_in_package(Emit::tree(), id, P);
}

void Hierarchy::markup(package_request *R, int hm_id, text_stream *value) {
    HierarchyLocations::markup(Emit::tree(), R, hm_id, value);
}

void Hierarchy::markup_wording(package_request *R, int hm_id, wording W) {
    TEMPORARY_TEXT(ANT)
    WRITE_TO(ANT, "%W", W);
    Hierarchy::markup(R, hm_id, ANT);
    DISCARD_TEXT(ANT)
}

void Hierarchy::markup_wa(package_request *R, int hm_id, word_assemblage WA) {
    TEMPORARY_TEXT(ANT)
    WRITE_TO(ANT, "%A", WA);
    Hierarchy::markup(R, hm_id, ANT);
    DISCARD_TEXT(ANT)
}