pure package:unliftio

Evaluate the value to WHNF and catch any synchronous exceptions. The expression may still have bottom values within it; you may instead want to use pureTryDeep.
Evaluate the value to NF and catch any synchronous exceptions.
Generate a pure value which, when forced, will synchronously throw the given exception. Generally it's better to avoid using this function and instead use throwIO, see https://github.com/fpco/safe-exceptions#quickstart.