I still don't see why they have to be rational. What's wrong with `symbols('a b c')`?