foldl : ('a -> 'b -> 'c -> 'a) -> 'a -> ('b, 'c) func -> 'a
f (f ... (f (f a x1 y1) x2 y2) ...) xn yn
# let f = (1 |-> 2) (2 |=> 3);; val f : (int, int) func =# graph f;; val it : (int * int) list = [(1, 2); (2, 3)] # foldl (fun a x y -> (x,y)::a) [] f;; val it : (int * int) list = [(1, 2); (2, 3)]