definition module CollectTypes; import typetable; import type_io_read; :: *CollectTypesState = { // Input cts_type_tables :: !*{#TypeTable} // Reserved , cts_collected_types :: !*{#Bool} // already collected types , cts_module_base_indices :: !{#Int} // Output , cts_type_dependencies :: ![(TIO_TypeReference,TIO_TypeReference)] // Reserved , cts_type_dependencies_to_be_collected :: ![(TIO_TypeReference,TIO_TypeReference)] // set of type dependencies to be examined , cts_left_i :: !Int , cts_right_i :: !Int , cts_left_module_i :: !Int , cts_right_module_i :: !Int }; // interne type equivalenties default_collect_types_state :: !*CollectTypesState; class collect_types a :: !a !a !*CollectTypesState -> !*CollectTypesState; instance collect_types TypeTableTypeReference;