Highest Write Wins flag, register, map and set

*Only for discussion not finished yet*

`setValue` is a bit strange for an immutable data type, perhaps `withValue`?