sig
  module PaireOrd : sig type t = int * int val compare : '-> '-> int end
  module Ensemble :
    sig
      type elt = Definitions.PaireOrd.t
      type t = Set.Make(PaireOrd).t
      val empty : Definitions.Ensemble.t
      val is_empty : Definitions.Ensemble.t -> bool
      val mem : Definitions.Ensemble.elt -> Definitions.Ensemble.t -> bool
      val add :
        Definitions.Ensemble.elt ->
        Definitions.Ensemble.t -> Definitions.Ensemble.t
      val singleton : Definitions.Ensemble.elt -> Definitions.Ensemble.t
      val remove :
        Definitions.Ensemble.elt ->
        Definitions.Ensemble.t -> Definitions.Ensemble.t
      val union :
        Definitions.Ensemble.t ->
        Definitions.Ensemble.t -> Definitions.Ensemble.t
      val inter :
        Definitions.Ensemble.t ->
        Definitions.Ensemble.t -> Definitions.Ensemble.t
      val diff :
        Definitions.Ensemble.t ->
        Definitions.Ensemble.t -> Definitions.Ensemble.t
      val compare : Definitions.Ensemble.t -> Definitions.Ensemble.t -> int
      val equal : Definitions.Ensemble.t -> Definitions.Ensemble.t -> bool
      val subset : Definitions.Ensemble.t -> Definitions.Ensemble.t -> bool
      val iter :
        (Definitions.Ensemble.elt -> unit) -> Definitions.Ensemble.t -> unit
      val fold :
        (Definitions.Ensemble.elt -> '-> 'a) ->
        Definitions.Ensemble.t -> '-> 'a
      val for_all :
        (Definitions.Ensemble.elt -> bool) -> Definitions.Ensemble.t -> bool
      val exists :
        (Definitions.Ensemble.elt -> bool) -> Definitions.Ensemble.t -> bool
      val filter :
        (Definitions.Ensemble.elt -> bool) ->
        Definitions.Ensemble.t -> Definitions.Ensemble.t
      val partition :
        (Definitions.Ensemble.elt -> bool) ->
        Definitions.Ensemble.t ->
        Definitions.Ensemble.t * Definitions.Ensemble.t
      val cardinal : Definitions.Ensemble.t -> int
      val elements : Definitions.Ensemble.t -> Definitions.Ensemble.elt list
      val min_elt : Definitions.Ensemble.t -> Definitions.Ensemble.elt
      val max_elt : Definitions.Ensemble.t -> Definitions.Ensemble.elt
      val choose : Definitions.Ensemble.t -> Definitions.Ensemble.elt
      val split :
        Definitions.Ensemble.elt ->
        Definitions.Ensemble.t ->
        Definitions.Ensemble.t * bool * Definitions.Ensemble.t
    end
  val e : Definitions.Ensemble.t
  val ( +! ) :
    Definitions.Ensemble.t ->
    Definitions.Ensemble.t -> Definitions.Ensemble.t
  val ( // ) :
    Definitions.Ensemble.t ->
    Definitions.Ensemble.t -> Definitions.Ensemble.t
  val ( +$ ) :
    Definitions.Ensemble.elt ->
    Definitions.Ensemble.t -> Definitions.Ensemble.t
  val ( --> ) : Definitions.Ensemble.elt -> Definitions.Ensemble.t -> bool
  val ( -/-> ) : Definitions.Ensemble.elt -> Definitions.Ensemble.t -> bool
  val ( -/ ) :
    Definitions.Ensemble.elt ->
    Definitions.Ensemble.t -> Definitions.Ensemble.t
  val h : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val v : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dNS : int -> int -> Definitions.Ensemble.t
  val echiquier : Definitions.Ensemble.t
  val dNE : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dSO : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dSE : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dNO : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dO : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dS : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dN : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val dE : Definitions.Ensemble.t -> int -> int -> Definitions.Ensemble.t
  val diag : int -> int -> Definitions.Ensemble.t
  val dir : int -> int -> Definitions.Ensemble.t
  val f0 : int * int -> char * char
  val f : int * int -> char * char
  val segmentF :
    int * int -> Definitions.Ensemble.elt -> Definitions.Ensemble.t
  val segO :
    Definitions.Ensemble.elt ->
    Definitions.Ensemble.elt -> Definitions.Ensemble.t
  val segV : Definitions.Ensemble.elt -> Definitions.Ensemble.elt -> bool
  val ( ++ ) : int * int -> int * int -> int * int
  val ( -- ) : int * int -> int * int -> int * int
  val ( /* ) : int -> int * int -> int * int
  val y : int * int
  val x : int * int
  val s : int * int -> bool
  val q : int -> int * int -> int * int -> bool
  val ss : ('-> 'b * 'c) -> '-> '-> bool
  val rr : ('-> char * char) -> '-> '-> bool
  val dist : int * int -> int * int -> int
  val vect64 : int array array -> int array
  val string_of_char : char -> string
  val reverse : 'a array -> unit
  val string_of_IntArray : int array -> int -> string
end