Usually, X is expected to succeed or to raise an exception – fail is not in scope.
But, i guess, the general case would include fail without exception as well – which would / could count as success.
Btw, since those calls can have side effects i am also wrapping them into a snapshot predicate – to ensure that any side effects are removed.
however, now i noticed that inside i have transaction – so, now i better check if a snapshot … transaction nesting – works to remove changes committed by the “inner” transaction that might succeed.
Interestingly, my code does generate an anonymous variable within the E structure – making var succeed at all time. I am using domain_error to throw the exception – need to see why it generates such a unbound thing in E …
I thought that ground and var are opposites and when ground didn’t work due to the anonymous variable in the error structure – I assumed that var will also not work.