Réponse:   Il suffit d'inclure un effet de bord dans le passage d'argument.
    function trace (n : integer) : integer;
    begin
      write (x);
      trace := x
    end;
    function erronée () : integer;
    begin
       erronée := carré (trace x)
    end;
La fonction erronée évalue trace x une seule fois. Après l'expansion en ligne naïve, trace x sera évalué deux fois et imprimera deux fois la valeur de x, changeant ainsi la sémantique du programme.