Also, `filename_or_program` is not a lie, it's a string representing either a filename or program.

I guess I slapped it on a separate line because with the added struct here (not present at 692 where the values are more immediately accessible) the ternary would get pretty ugly. It's just one beta reduction away from the other expression, but I agree that whether this is more approachable than just expanding out the whole thing is a matter of taste. I'll change it.