weaken types
merge