This adds proof-of-concept safe/unsafe Transactions. Unsafe means you can run arbitrary IO while safe means you can only run database operations, pure code, and synchronous exception handling. It works by defining a safe Transaction frankentype.
type Transaction db x = forall m. (MonadPQ db m, MonadResult m, MonadCatch m) => m x
This adds proof-of-concept safe/unsafe
Transaction
s. Unsafe means you can run arbitraryIO
while safe means you can only run database operations, pure code, and synchronous exception handling. It works by defining a safeTransaction
frankentype.