sig
  module type Domain =
    sig
      type static_information
      type local_dynamic_information
      type dynamic_information = {
        local : Analyzer_domain_sig.Domain.local_dynamic_information;
        global : Analyzer_headers.global_dynamic_information;
      }
      val get_parameter :
        Analyzer_domain_sig.Domain.static_information ->
        Remanent_parameters_sig.parameters
      val get_global_dynamic_information :
        Analyzer_domain_sig.Domain.dynamic_information ->
        Analyzer_headers.global_dynamic_information
      val set_global_dynamic_information :
        Analyzer_headers.global_dynamic_information ->
        Analyzer_domain_sig.Domain.dynamic_information ->
        Analyzer_domain_sig.Domain.dynamic_information
      val initialize :
        Analyzer_headers.global_static_information ->
        Analyzer_headers.global_dynamic_information ->
        Exception.method_handler ->
        Exception.method_handler *
        Analyzer_domain_sig.Domain.static_information *
        Analyzer_domain_sig.Domain.dynamic_information *
        Communication.event list
      val complete_wake_up_relation :
        Analyzer_domain_sig.Domain.static_information ->
        Exception.method_handler ->
        Common_static.site_to_rules_tmp ->
        Exception.method_handler * Common_static.site_to_rules_tmp
      type 'a zeroary =
          Analyzer_domain_sig.Domain.static_information ->
          Analyzer_domain_sig.Domain.dynamic_information ->
          Exception.method_handler ->
          Exception.method_handler *
          Analyzer_domain_sig.Domain.dynamic_information * 'a
      type ('a, 'b) unary =
          Analyzer_domain_sig.Domain.static_information ->
          Analyzer_domain_sig.Domain.dynamic_information ->
          Exception.method_handler ->
          '->
          Exception.method_handler *
          Analyzer_domain_sig.Domain.dynamic_information * 'b
      type ('a, 'b, 'c) binary =
          Analyzer_domain_sig.Domain.static_information ->
          Analyzer_domain_sig.Domain.dynamic_information ->
          Exception.method_handler ->
          '->
          '->
          Exception.method_handler *
          Analyzer_domain_sig.Domain.dynamic_information * 'c
      type ('a, 'b, 'c, 'd) ternary =
          Analyzer_domain_sig.Domain.static_information ->
          Analyzer_domain_sig.Domain.dynamic_information ->
          Exception.method_handler ->
          '->
          '->
          '->
          Exception.method_handler *
          Analyzer_domain_sig.Domain.dynamic_information * 'd
      val add_initial_state :
        (Analyzer_headers.initial_state, Communication.event list)
        Analyzer_domain_sig.Domain.unary
      val is_enabled :
        (Ckappa_sig.c_rule_id, Communication.precondition,
         Communication.precondition option)
        Analyzer_domain_sig.Domain.binary
      val apply_rule :
        (Ckappa_sig.c_rule_id, Communication.precondition,
         Communication.precondition * Communication.event list)
        Analyzer_domain_sig.Domain.binary
      val apply_event_list :
        (Communication.event list, Communication.event list)
        Analyzer_domain_sig.Domain.unary
      val stabilize : unit Analyzer_domain_sig.Domain.zeroary
      val export :
        (('static, 'dynamic) Analyzer_headers.kasa_state,
         ('static, 'dynamic) Analyzer_headers.kasa_state)
        Analyzer_domain_sig.Domain.unary
      val print :
        ?dead_rules:(Remanent_parameters_sig.parameters ->
                     Exception.method_handler ->
                     Ckappa_sig.c_rule_id -> Exception.method_handler * bool) ->
        (Loggers.t, unit) Analyzer_domain_sig.Domain.unary
      val maybe_reachable :
        (Analyzer_headers.pattern_matching_flag, Cckappa_sig.mixture,
         Communication.precondition, Communication.precondition option)
        Analyzer_domain_sig.Domain.ternary
      val get_dead_rules :
        Analyzer_domain_sig.Domain.static_information ->
        Analyzer_domain_sig.Domain.dynamic_information ->
        Remanent_parameters_sig.parameters ->
        Exception.method_handler ->
        Ckappa_sig.c_rule_id -> Exception.method_handler * bool
    end
end