After experimenting, I learnt the following:
* the static keyword informs the compiler that the value is known at compile
time
* object invariants can't have the same property in each case of match
* runtime dispatch uses dispatch trees which are more performant than the
more common indirect branchesTherefore, because I want each Specialised Something to have the same set of properties, runtime dispatch is my friend. Thanks both :-)
