functor (Param : Nts_functor.NTS_PARAM->
  sig
    module NFParam :
      sig
        type anotations = Nts_functor.Make(Param).anotations
        type control = Nts_functor.Make(Param).control = Nts_State of Param.t
        type transitions_container =
            Nts_functor.Make(Param).transitions_container
        type states_container = Nts_functor.Make(Param).states_container
        type inv_relation_container =
            Nts_functor.Make(Param).inv_relation_container
        val fold_states_containers :
          Expand_eldarica_compressed_bloc.Make.NFParam.states_container ->
          ('-> Expand_eldarica_compressed_bloc.Make.NFParam.control -> 'a) ->
          '-> 'a
        val fold_transitions_container :
          Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
          ('->
           Expand_eldarica_compressed_bloc.Make.NFParam.control ->
           Nts_types.nts_trans_label list ->
           Expand_eldarica_compressed_bloc.Make.NFParam.control -> 'a) ->
          '-> 'a
        val add_transition_to_container :
          Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Nts_types.nts_trans_label list ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> unit
        val iter_transitions_container :
          Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
          (Expand_eldarica_compressed_bloc.Make.NFParam.control ->
           Nts_types.nts_trans_label list ->
           Expand_eldarica_compressed_bloc.Make.NFParam.control -> unit) ->
          unit
        val iter_state_container :
          Expand_eldarica_compressed_bloc.Make.NFParam.states_container ->
          (Expand_eldarica_compressed_bloc.Make.NFParam.control -> unit) ->
          unit
        val is_state_in_inv_relation :
          Expand_eldarica_compressed_bloc.Make.NFParam.inv_relation_container ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
        val is_state_in_transition_container :
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
          bool
        type nts_automaton =
          Nts_functor.Make(Param).nts_automaton = {
          mutable nts_automata_name : string;
          mutable anot :
            Expand_eldarica_compressed_bloc.Make.NFParam.anotations;
          init_states :
            Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
          final_states :
            Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
          error_states :
            Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
          input_vars : Nts_types.nts_genrel_var list;
          output_vars : Nts_types.nts_genrel_var list;
          local_vars : Nts_types.nts_genrel_var list;
          transitions :
            Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container;
        }
        type nts_system =
          Nts_functor.Make(Param).nts_system = {
          nts_system_name : string;
          nts_global_vars : Nts_types.nts_genrel_var list;
          nts_automata :
            (string,
             Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton)
            Hashtbl.t;
          nts_gvars_init : Nts_types.nts_gen_relation list option;
          nts_system_threads : (string * Big_int.big_int) list option;
        }
        type num_subrel_in_cautomaton =
          Nts_functor.Make(Param).num_subrel_in_cautomaton = {
          subrel_root : Expand_eldarica_compressed_bloc.Make.NFParam.control;
          sub_vertices :
            Expand_eldarica_compressed_bloc.Make.NFParam.states_container;
          sub_transitions :
            Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container;
        }
        val is_state_in_cautomaton :
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> bool
        val pprint_control :
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> string
        val anot_parser :
          unit -> Expand_eldarica_compressed_bloc.Make.NFParam.anotations
        val states_container_of_states_list :
          Expand_eldarica_compressed_bloc.Make.NFParam.control list ->
          Expand_eldarica_compressed_bloc.Make.NFParam.states_container
        val transitions_container_of_trans_list :
          (Expand_eldarica_compressed_bloc.Make.NFParam.control *
           Expand_eldarica_compressed_bloc.Make.NFParam.control *
           Nts_types.nts_trans_label list)
          list ->
          Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container
        val control_of_id_param :
          Param.t -> Expand_eldarica_compressed_bloc.Make.NFParam.control
        val out_degree_of_control_state :
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton -> int
        val get_varinfo_by_optname :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
          string option -> string -> Nts_types.nts_genrel_var option
        val get_varinfo_by_optcautomaton :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton option ->
          string -> Nts_types.nts_genrel_var option
        val is_error_state :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
        val is_initial_state :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
        val is_final_state :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
        val get_transition_from :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Nts_types.nts_trans_label list list option
        val get_successor_of :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.states_container
        val get_one_state :
          Expand_eldarica_compressed_bloc.Make.NFParam.states_container ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control option
        val is_successor_of :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control -> bool
        val get_one_transition :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control *
          Nts_types.nts_trans_label list
        val pprint_inputvars :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          string
        val pprint_outputvars :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          string
        val pprint_localvars :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          string
        val nt_system_var_cleaner :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system
        val nt_system_uncalled_subsystem_cleaner :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system
        val pprint_to_nts :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          string
        val pprint_nts :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system -> string
        val get_cautomaton_by_name :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
          string ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton
        val pprint_transitions :
          string ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          string
        val compute_pred_relation :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.inv_relation_container
        val subgraph_between :
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.control ->
          Expand_eldarica_compressed_bloc.Make.NFParam.num_subrel_in_cautomaton
        val pprint_subgraph_transitions :
          Expand_eldarica_compressed_bloc.Make.NFParam.num_subrel_in_cautomaton ->
          string
        val cautomaton_of_subrelation_cautomaton :
          string ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.num_subrel_in_cautomaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton
        val cautomaton_of_transitions_container :
          string ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton ->
          Expand_eldarica_compressed_bloc.Make.NFParam.transitions_container ->
          Expand_eldarica_compressed_bloc.Make.NFParam.nts_automaton
      end
    val nts_out_trace :
      Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
      Expand_eldarica_compressed_bloc.Make.NFParam.nts_system ->
      Trace_types.sys_control list ->
      Expand_eldarica_compressed_bloc.Make.NFParam.nts_system
  end