MLton 20210117

# MLtonRandom

    signature MLTON_RANDOM =
       sig
          val alphaNumChar: unit -> char
          val alphaNumString: int -> string
          val rand: unit -> word
          val seed: unit -> word option
          val srand: word -> unit
          val useed: unit -> word option
       end

- alphaNumChar ()

  returns a random alphanumeric character.

- alphaNumString n

  returns a string of length n of random alphanumeric characters.

- rand ()

  returns the next pseudo-random number.

- seed ()

  returns a random word from /dev/random. Useful as an arg to srand. If /dev/random can not be read from, seed () returns NONE. A call to seed may block until enough random bits are available.

- srand w

  sets the seed used by rand to w.

- useed ()

  returns a random word from /dev/urandom. Useful as an arg to srand. If /dev/urandom can not be read from, useed () returns NONE. A call to useed will never block — it will instead return lower quality random bits.