A problem with order of evaluation
Data flow graphs do not capture causal information:
let
r
:ref =
ref
(
0
);
let
r
:ref =
ref
(
0
);
r
:=
1
;
let
x
:int =
!
(
r
);
let
x
:int =
!
(
r
);
r
:=
1
;
return
x
;
return
x
;
These graphs are isomorphic, but the programs have different semantics.