sig
  type cc_port = {
    port_links : (int * int) list;
    port_states : string list;
  }
  type site = Port of User_graph.cc_port | Counter of int
  type cc_site = { site_name : string; site_type : User_graph.site; }
  type cc_node = {
    node_type : string;
    node_sites : User_graph.cc_site array;
  }
  type connected_component = User_graph.cc_node array
  val print_cc : Format.formatter -> User_graph.connected_component -> unit
  val print_dot_cc :
    int -> Format.formatter -> User_graph.connected_component -> unit
  val write_connected_component :
    Bi_outbuf.t -> User_graph.connected_component -> unit
  val string_of_connected_component :
    ?len:int -> User_graph.connected_component -> string
  val read_connected_component :
    Yojson.Safe.lexer_state ->
    Lexing.lexbuf -> User_graph.connected_component
  val connected_component_of_string :
    string -> User_graph.connected_component
end