Tôi đã sử dụng thư viện STM của Haskell và tôi thực sự thích khả năng soạn các giao dịch và tính chất chung "bạn không thể-làm-sai" của STM.Sử dụng các giao dịch STM và Cơ sở dữ liệu với nhau
Vì lý do chính đáng, STM không cho phép các hành động IO trong giao dịch. Không có cách nào để thử lại một hành động IO. (chèn Khởi chạy tên lửa tham chiếu ở đây). Mặt khác, các giao dịch cơ sở dữ liệu có một số đảm bảo nguyên tử rất giống nhau. Có cách nào được chấp nhận để sử dụng cả hai với nhau?