This avoids creating refcounted strings during evaluation and makes it easier to use the same parsed string in multiple places (should be useful once we implement functions).