What about merging them using default parameters, with `fn` defaulting to `NULL` or similar?