No way around it! Absolutely have to have two separate def files. Because there's no way to avoid generating totally invalid casts---even if it is in code that cannot possibly be run.