Skip to content

Immutables

Kassing edited this page Mar 30, 2026 · 1 revision

See http://c2.com/cgi/wiki?ImmutableValue for a quick intro on what immutable data structures are and why they're (often) a good idea. The AProVE implementation is described in the following:

In case you are using data structures like maps, sets, pairs etc. which you want to be immutable, you are recommended to use the corresponding classes from immutables.Immutable to encapsulate your objects. Furthermore, the interface immutables.Immutable.Immutable is supposed to be implemented if you want to indicate immutability of your class.

The implementation (previously maintained as a separate mutables project) is now bundled directly inside the aprove repository. No separate checkout is needed. The immutable data structures are a lightweight extension of the java.util package — use these classes whenever you want to signal immutability at the type level.

Note that you must rebuild after pulling changes that touch the immutables package!

Clone this wiki locally