I'm not sure that this should be an `invariant`... do we want to stop execution or should we let it keep running and just warn? @petehunt?