+ * @param currentState
+ * The current state of a system
+ * @return The new state, containing a meaningful merge between the previous
+ * and the current state
+ */
+ State mergeStates(State previousState, State currentState);
+
+ /**
+ * Checks whether the states given to {@link #mergeStates(State, State)}
+ * warrant a change trigger.
+ *
+ * @return {@code true} if the states given to
+ * {@link #mergeStates(State, State)} warrant a change trigger,