MODULE Random; (* Random number generator *) PROC r := Real01() IS SKIP END; /* external procedure */ (* Return a uniformly-distributed real number in the half-open interval "[0.0, 1.0)". *) PROC r := Real(lo, hi) IS SKIP END; /* external procedure */ (* Return a uniformly-distributed real number in the half-open interval "[lo, hi)". It is a checked run-time error for "lo >= hi". *) PROC r := Int(lo, hi) IS SKIP END; /* external procedure */ (* Return a uniformly-distributed integer in the half-open interval "[lo, hi)". It is a checked run-time error for "lo" or "hi" not to be an integer or for "lo >= hi". *)