Whiley differs from traditional object-oriented languages by supporting value semantics and pure functions. These choices have been made to simplify the problem of automatically checking constraints at compile time.

  1. Values — It is important to understand the difference between the way value behave in Whiley, and other languages (e.g. Java).
  2. Purity — Similarly, understanding the impact of having pure functions is essential.