Do we want it to evaluate `fn` once like this, or each time it's run?