Add whenM/unlessM
Rename chop to repeatedly
Optimise the numeric conversions
Switch distinct for allSame/anySame
Update generated code