> What am I doing wrong? Is filling the `mi_fixities` field of the `ModIface` not enough to let importers see the correct fixities?

It seems like the renamer is looking for the fixities via `mi_fix_fn (mi_final_exts iface)`, not `mi_fixities`.

You should try to replace:

  , mi_final_exts = mi_final_exts empty

with:

  , mi_final_exts = (mi_final_exts empty){ mi_fix_fn = mkIfaceFixCache (mi_fixities partial)