7
động như thế nào đến, mà kiểm tra loại sauCách loại từ đồng nghĩa chính xác hoạt động như thế nào?
{-# LANGUAGE RankNTypes #-}
module Main where
class Foo a where
type FunFoo = (Foo a) => a -> IO()
data Bar = Bar {
funFoo :: FunFoo
}
setFunFoo :: FunFoo -> Bar -> Bar
setFunFoo action bar = bar {funFoo = action}
nhưng khi thay đổi chữ ký kiểu tắt setFunFoo để
setFunFoo :: ((Foo a) => a -> IO()) -> Bar -> Bar
nó không? Có cách nào để diễn tả mã trên mà không có từ đồng nghĩa FunFoo không?
Bạn có chắc chắn định sử dụng loại xếp hạng n không? Đó là một chủ đề khá tiên tiến cho một người nào đó hỏi làm thế nào loại từ đồng nghĩa làm việc. –