eliminate state variable Program.exit_status
revive Program.to_{dot,text}