More Atomic types

This is a follow up to #6732. Makes everything a little more sound.

r? @brson