It is possible we can have a error that needs to get thrown from setup and an exception that should get thrown from releasing a save point in the finally clause. We should throw both exceptions. We need a type like
data TwoExceptions = TwoExceptions SomeException SomeException
but with a better name.
We will need to rework the code to handle this ... assuming it is possible.