add `unionWith`