sig
  type internal = int option
  type link = FREE | VAL of int
  type agent = {
    a_type : int;
    a_ports : Raw_mixture.link array;
    a_ints : Raw_mixture.internal array;
  }
  type t = Raw_mixture.agent list
  val print :
    created:bool ->
    ?sigs:Signature.s -> Format.formatter -> Raw_mixture.t -> unit
  val to_json : Raw_mixture.t -> Yojson.Basic.json
  val of_json : Yojson.Basic.json -> Raw_mixture.t
  type incr_t = {
    father : int Mods.DynArray.t;
    rank : (int * (bool * bool)) Mods.DynArray.t;
  }
  val union_find_counters :
    Signature.s option -> Raw_mixture.t -> Raw_mixture.incr_t
  val find : Raw_mixture.incr_t -> int -> int
  val union : Raw_mixture.incr_t -> int -> int -> unit
  val create : int -> Raw_mixture.incr_t
end