Don't unnecessarily observe types when peeking is enough

Review by @cvogt