let computeFirstPredecessor (s: stmt) data =
    match s.skind with
      | Switch (exp,_,_,_)
      | If (exp,_,_,_) ->
          (* update [over_inputs] using the [exp] condition:
             I+ = I+ \/+ (D+(exp) /+ O-)
          *)

          let inputs = find_deps_no_transitivity (Kstmt s) exp in
            {data with
               over_inputs =
                Zone.join data.over_inputs
                  (Zone.diff inputs data.under_outputs)}
      | _ -> data