let check ec param =
    if ec.assertion param then
      (* assertion succeeded *)
      if ec.success_last then
        (* and it succeeded last time too -- no change *)
        None
      else
        (* it did not succeed last time -- change to success *)
        begin
          ec.success_last <- true;
          Some (ec.success_alert param)
        end
    else
      (* assertion failed *)
      if ec.success_last then
        (* but succeeded last time -- change to failure *)
        begin
          ec.success_last <- false;
          Some (ec.fail_alert param)
        end
      else
        (* but failed last time -- no change *)
        None