Add type checks to with_init

Ye hath asked and ye shall receive.

Unless it’s not what ye hath asked, @dreid?