2015-12-21 16 views

Trả lời

4

Trong ví dụ này, không có sự khác biệt thực sự giữa hai đơn đặt hàng. Lý do là: không giống như nhiều máy biến áp bao gồm ExceptT, máy biến áp tài nguyên thực hiện không “ tiêm ” hoạt động của riêng nó vào đơn nguyên cơ sở mà bạn áp dụng nó, nhưng thay vì bắt đầu toàn bộ hành động.

Nếu bạn viết ra các loại (tôi sẽ đề cập đến MaybeT thay vì ExceptT vì lợi ích của sự đơn giản, họ đang rõ ràng là tương đương với mục đích của câu hỏi này) sau đó bạn có cơ bản

type MaybeResourceT m a = MaybeT (IORef RelMap -> m a) 
         = IORef RelMap -> m (Maybe a) 
type ResourceMaybeT m a = ResourceT (m (Maybe a)) 
         = IORef RelMap -> m (Maybe a) 

tức các loại tương đương thực sự. Tôi cho rằng bạn cũng có thể chỉ ra điều đó cho các hoạt động.

Các vấn đề liên quan