Luật Naturality quy định rằng:
t . traverse f == traverse (t . f) -- for every applicative transformer t
Bây giờ đối với RHS của luật, nếu f có loại Applicative a => x -> a y
, thì t phải là loại (Applicative a, Applicative b) => a y -> b y
, do thành phần chức năng.
Đối với LHS, traverse f có loại (Applicative a, Traversable c) => c x -> a (c y)
. Nhưng vì traverse f được cấu tạo với t. traverse f, t phải thuộc loại (cx -> a (cy)) -> b y.
Bây giờ, đối với LHS, t có loại a (cy) -> bởi, nhưng từ RHS, nó có loại ay -> b y. Làm thế nào là âm thanh pháp luật từ một quan điểm loại?
Chỉnh sửa: Đã sửa lỗi loại t trong LHS