make `fn` argument of `.diff` optional