module Dug: sig
.. end
Datatype Usage Graphs
module Id: Reins.Types.Integral
type ('gen, 'mut, 'obs)
kind =
| |
Generator of 'gen |
| |
Mutator of 'mut |
| |
Observer of 'obs |
type ('gen, 'mut, 'obs)
edge = {
|
target :Id.t ; |
|
op :('gen, 'mut, 'obs) kind ; |
|
pos :int ; |
}
type ('gen, 'mut, 'obs)
t = {
|
mutable current_id :Id.t ; |
|
nodes :(Id.t, ('gen, 'mut, 'obs) kind) Hashtbl.t ; |
|
edges :(Id.t, ('gen, 'mut, 'obs) edge) Hashtbl.t ; |
}
val create : unit -> ('gen, 'mut, 'obs) t
val clear : ('gen, 'mut, 'obs) t -> unit
val size : ('eng, 'mut, 'obs) t -> Id.t
val fresh_id : ('gen, 'mut, 'obs) t -> Id.t
val is_mutator : ('gen, 'mut, 'obs) kind -> bool
val is_generator : ('gen, 'mut, 'obs) kind -> bool
val is_observer : ('gen, 'mut, 'obs) kind -> bool