There is no performance difference between candidates, so lose them
Make sure the sub and generic method version pick up optional :with