ensure implies a crash if it's not an early def