* add weak reduction in typing rules