let add_loc_node state ~exact loc node =
  P.debug ~level:2 "[pdg state] add_loc_node (%s) : node %a -> %a@."
      (if exact then "exact" else "merge")
      PdgTypes.Node.pretty node
      Locations.Zone.pretty loc ;
  let new_info = NodeSetLattice.inject_singleton node in
  let new_loc_info = LocInfo.add_binding exact state.loc_info loc new_info in
  let new_outputs = (* Zone.link in the under-approx version of Zone.join *)
    if exact then Locations.Zone.link state.under_outputs loc
    else state.under_outputs
  in let state = make new_loc_info new_outputs in
    P.debug ~level:2 "add_loc_node -> %a" pretty state;
    state