The main point I was trying to make here was that very complex expressions are very, very rare.

An acceptable compromise would be to analyse what can be done without busting a vein, and to flag anything anthing else as an error ("expression too complicated") and document the way around, presumably a user-defined variable where the user provides the type. And if the expressions is really so complex, this might even imrove readability ;-)

Wolfgang