sig
  exception DontKnow
  type priority
  val immediate : Fcl_cstr.priority
  val normal : Fcl_cstr.priority
  val later : Fcl_cstr.priority
  type t
  val create :
    ?name:string ->
    ?nb_wakings:int ->
    ?fprint:(Pervasives.out_channel -> unit) ->
    ?priority:Fcl_cstr.priority ->
    ?init:(unit -> unit) ->
    ?check:(unit -> bool) ->
    ?not:(unit -> Fcl_cstr.t) ->
    (int -> bool) -> (Fcl_cstr.t -> unit) -> Fcl_cstr.t
  val post : Fcl_cstr.t -> unit
  val one : Fcl_cstr.t
  val zero : Fcl_cstr.t
  val id : Fcl_cstr.t -> int
  val name : Fcl_cstr.t -> string
  val priority : Fcl_cstr.t -> Fcl_cstr.priority
  val fprint : Pervasives.out_channel -> Fcl_cstr.t -> unit
  val is_solved : Fcl_cstr.t -> bool
  val active_store : unit -> Fcl_cstr.t list
  val not : Fcl_cstr.t -> Fcl_cstr.t
  type event
  val new_event : unit -> Fcl_cstr.event
  val schedule : Fcl_cstr.event -> unit
  val register : Fcl_cstr.event -> ?waking_id:int -> Fcl_cstr.t -> unit
  val registered : Fcl_cstr.event -> (Fcl_cstr.t * int) list
  val delay : Fcl_cstr.event list -> ?waking_id:int -> Fcl_cstr.t -> unit
  val conjunction : Fcl_cstr.t list -> Fcl_cstr.t
  val reset_queue : unit -> unit
  val assert_empty_queue : unit -> unit
  val wake_all : unit -> unit
  val init : Fcl_cstr.t -> unit
  val self_delay : Fcl_cstr.t -> Fcl_cstr.t -> unit
  val check : Fcl_cstr.t -> bool
end