I think the correct place to insert such a check would be when doing staged programming while going down a level - say we have some argument that represents code, it should be possible to declaratively insert assertions about what the result of evaluating that splice is; that is
And it would not only make sense in the last stage - cross compilation could contain assertions like "the host and target platform's width of the following primitive types should agree"