`tryEtaReduce [x,y,z] e sd` returns `Just e'` if `x y z -> e` is
evaluated according to sd and can soundly and gainfully be
eta-reduced to e'. See Note [Eta reduction soundness] and
Note [Eta reduction makes sense] when that is the case.
Like try, but pass through UserInterrupt and Panic exceptions. Used
when we want soft failures when reading interface files, for example.
TODO: I'm not entirely sure if this is catching what we really want to
catch