Mentions légales du service

Skip to content
Snippets Groups Projects
GraphNumbering.mli 1.91 KiB
(******************************************************************************)
(*                                                                            *)
(*                                    Fix                                     *)
(*                                                                            *)
(*                       François Pottier, Inria Paris                        *)
(*                                                                            *)
(*  Copyright Inria. All rights reserved. This file is distributed under the  *)
(*  terms of the GNU Library General Public License version 2, with a         *)
(*  special exception on linking, as described in the file LICENSE.           *)
(*                                                                            *)
(******************************************************************************)

open Sigs

(* [Make(M)(G)] produces a numbering of the graph [G], or more precisely, of
   the subset of the vertices of [G] that are reachable from the roots. The
   type of the vertices must be equipped with an implementation of imperative
   maps. *)

module Make
  (M : IMPERATIVE_MAPS)
  (G : GRAPH with type t = M.key)
     : NUMBERING with type t = G.t

(* [ForOrderedType] is a special case of [Make] where it suffices for
   the vertices of [G] to be ordered. *)

module ForOrderedType
  (T : OrderedType)
  (G : GRAPH with type t = T.t)
     : NUMBERING with type t = G.t

(* [ForHashedType] is a special case of [Make] where it suffices for
   the vertices of [G] to be hashed. *)

module ForHashedType
  (T : HashedType)
  (G : GRAPH with type t = T.t)
     : NUMBERING with type t = G.t

(* [ForType] is a special case of [Make] where the vertices of [G] can
   have arbitrary type. OCaml's built-in generic equality and hash
   functions are used. *)

module ForType
  (T : TYPE)
  (G : GRAPH with type t = T.t)
     : NUMBERING with type t = G.t