Having to remember to call canonical() all over the place is
error-prone; let's do it in a centralized location instead. It also
appears to improve performance slightly.
base diff difference (95% CI) sys_time 0.984 ± 0.009 0.983 ± 0.014 [ -0.8% .. +0.6%] user_time 6.508 ± 0.035 6.475 ± 0.036 [ -0.8% .. -0.2%] wall_time 5.321 ± 0.034 5.300 ± 0.033 [ -0.7% .. -0.1%] samples 36 23