combine : ('a -> 'a -> 'a) -> ('a -> bool) -> ('b, 'a) func -> ('b, 'a) func -> ('b, 'a) func
  # let f = itlist I [1 |-> 2; 2 |-> 3; 3 |-> 6] undefined
    and g = itlist I [1 |-> 5; 2 |-> -3] undefined;;
  val f : (int, int) func = 
  val g : (int, int) func = 
  # graph(combine (+) (fun x -> x = 0) f g);;
  val it : (int * int) list = [(1, 7); (3, 6)]