Matthew, just a thought -- it might sense to combine your unused-args pass with MLton's remove-unused pass so that the fixed points can feed off each other.