functor (Root : SCHEME_ROOT->
  sig
    val copy : ?subst:Dalton.Make.subst -> Root.t -> Root.t
    val fprint : Format.formatter -> Root.t -> unit
    val draw : Draw.window -> Root.t -> int -> int -> int * int
    type solve_report
    val report_solve :
      Format.formatter -> Dalton.Make.Scheme.solve_report -> unit
    val solve : Root.t -> Dalton.Make.Scheme.solve_report option
    type comparison_report
    val report_comparison :
      Format.formatter -> Dalton.Make.Scheme.comparison_report -> unit
    val compare :
      Root.t -> Root.t -> Dalton.Make.Scheme.comparison_report option
    val equivalent : Root.t -> Root.t -> bool
    type minimal_report
    val report_minimal :
      Format.formatter -> Dalton.Make.Scheme.minimal_report -> unit
    val has_minimal_instance :
      Root.t -> Dalton.Make.Scheme.minimal_report option
  end