module type C = sig type elt type internal type internalnode = { internalin: internal list; internalout: internal list; internalbetween: (internal list * internal list) list; } type cfgt = elt Cfg.cfginternal type t = { t: cfgt; internalvar: internalnode Cfg.NodeMap.t; } val from_cfg : cfgt -> t val to_cfg : t -> cfgt val fixed_point : ?init:(elt list -> internalnode) -> ?update:(t -> Cfg.Node.t -> internalnode) -> t -> t val pp : out_channel -> t -> unit end module Make (M: Cfg.PrintableType) (I: Cfg.PrintableType) : C with type elt = M.t and type internal = I.t