The problem probably stems from how arguments are synthesized for the hello_read call which may be performed by main_real.
We might be just passing all supertop (VD.top ()) values, as opposed to top values based on the argument type.
One possibility would be to try to construct correctly-typed abstract values there, although that may be difficult for some reason.
Originally posted by @sim642 in #1934