let assign_coerce ?check_qual ?struct_allowed e1 t = let e1 = assign_coerce ?check_qual ?struct_allowed e1 t in try fold_constants e1 with NotConstant -> e1