Functor PdgMarks.F_Fct

module F_Fct: 
functor (M : Mark-> Fct with type mark = M.t and type call_info = M.call_info

If the marks provided by the user respect some constraints (see Mark), we have that, after the marks propagation, the mark of a node are always smaller than the sum of the marks of its dependencies. It means that the mark of the statement x = a + b; have to be smaller that the mark of a plus the mark of b at this point.

If the marks are used for visibility for instance, it means that if this statement is visible, so must be the computation of a and b, but a and/or b can be visible while x is not.

Parameters:
M : Mark

type mark 
type call_info 
type fi = (mark, call_info) PdgIndex.FctIndex.t 
type t = PdgTypes.Pdg.t * fi 
val create : PdgTypes.Pdg.t -> t
val get_idx : t -> fi
type mark_info_inter = mark PdgMarks.info_inter 
val empty_to_prop : mark_info_inter
val mark_and_propagate : t ->
?to_prop:mark_info_inter ->
mark PdgMarks.select -> mark_info_inter