I see that the PR description includes a mention of "general cleanup". I find it harder to review with these non-pertinent changes mixed in. IM(not so)HO a separate PR for all these `@spec` to `-spec` changes would have been easier to review.