sig
  exception Already_configured
  class virtual t :
    object
      method virtual click : unit -> bool
      method extract_ligand : Ligand.t
      method virtual get_initial_lbprojs : unit -> bool array
      method virtual get_initial_sbprojs : unit -> bool array
      method lb_change_string : int -> string -> unit
      method virtual lb_get_marker : int -> Ligand.Matcher.matcher
      method lb_join : int -> int -> Incubator.joinorder -> unit
      method lb_release : int -> unit
      method lb_set_act : int -> bool -> unit
      method lb_split : int -> int -> Incubator.splitorder -> unit
      method lb_synth_string : int -> string -> unit
      method lb_transfer : int -> int -> unit
      method virtual lb_unimate : int -> string -> unit
      method virtual lb_unirelease : int -> unit
      method notify : unit -> unit
      method virtual sb_get_marker : int -> Ligand.Matcher.snippet
      method sb_release : int -> unit
      method sb_set_act : int -> bool -> unit
      method virtual sb_unimate : int -> string -> unit
      method virtual sb_unirelease : int -> unit
      method set_notifier : Incubator.Procunit.notifier -> unit
    end
  class virtual notifier :
    object
      method virtual lb_change_string : int -> string -> unit
      method virtual lb_join : int -> int -> Incubator.joinorder -> unit
      method virtual lb_release : int -> unit
      method virtual lb_set_act : int -> bool -> unit
      method virtual lb_split : int -> int -> Incubator.splitorder -> unit
      method virtual lb_synth_string : int -> string -> unit
      method virtual lb_transfer : int -> int -> unit
      method virtual notify : unit -> unit
      method virtual sb_release : int -> unit
      method virtual sb_set_act : int -> bool -> unit
    end
  type typeA_proj = {
    matcher : Ligand.Matcher.matcher;
    initially_active : bool;
    func : Incubator.Procunit.notifier -> string -> unit;
  } 
  and typeA_conf = Incubator.Procunit.typeA_proj array
  val make_typeA_pu : Incubator.Procunit.typeA_conf -> Incubator.Procunit.t
end