reduce expression struct