What determines whether or not a function in `base` has unfolding?
I was compiling a function f whose definition uses Data.Monoid.getFirst, and it turns out when I use cabal build, the unfolding of getFirst is available to the simplifier, and so in f's unfolding, getFirst is inlined into a Coercion; whereas when I use nix build, the unfolding is not available. The GHC version and the set of optimisation flags are the same.
Since base ships with GHC I thought it should always behave exactly the same way with the same GHC version, but apparently it doesn't. What could possibly cause this to happen?