Functor PdgMarks.F_Fct


module F_Fct: 
functor (M : T_Mark) -> sig .. end
If the marks provided by the user respect some constraints (see T_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 : T_Mark


type t_mark = M.t 
type t_call_info = M.t_call_info 
type t_fi = (t_mark, t_call_info) PdgIndex.FctIndex.t 
type t = PdgTypes.Pdg.t * t_fi 
type t_mark_info_inter = t_mark PdgMarks.t_info_inter 
val empty_to_prop : 'a list * 'b list
val create : 'a -> 'a * ('b, 'c) PdgIndex.FctIndex.t
val get_idx : 'a * 'b -> 'b
val mark_and_propagate : PdgTypes.Pdg.t * (M.t, 'a) PdgIndex.FctIndex.t ->
?to_prop:(PdgIndex.Signature.t_in_key * M.t) list *
(Cil_types.stmt * (PdgIndex.Signature.t_out_key * M.t) list) list ->
(PdgMarks.t_select_elem * M.t) list ->
(PdgIndex.Signature.t_in_key * M.t) list *
(Cil_types.stmt * (PdgIndex.Signature.t_out_key * M.t) list) list