Duyệt haddocks các gói khác nhau tôi thường đi cùng các tài liệu ví dụ mà trông như thế này (Control.Category):gì * (sao) hoặc các loại khác có nghĩa là trong một danh sách thể hiện của Haddock
Category k (Coercion k)
Category * (->)
hay này (Control.Monad.Trans.Identity):
MonadTrans (IdentityT *)
Chính xác chữ ký loại này có ý nghĩa gì? Nó không hiển thị trong nguồn, nhưng tôi đã nhận thấy rằng nó dường như xảy ra trong các mô-đun sử dụng tiện ích mở rộng PolyKinds. Tôi nghi ngờ nó có lẽ giống như một TypeApplication nhưng với một loại. Vì vậy, ví dụ: ví dụ cuối cùng có nghĩa là IdentityT
là một biến áp đơn lẻ nếu đối số đầu tiên của nó có loại *
.
Vì vậy, câu hỏi của tôi là:
- là giải thích của tôi chính xác và chính xác những gì không chữ ký loại tham khảo?
- Trong ví dụ
Category
đầu tiên, làm thế nào để tôi biết rằngk
là một loại và không phải là một loại? Hay tôi chỉ cần biết sự tinh thần củaCategory
? - Mã nguồn tương tự với cú pháp này là gì?
Tôi không yêu cầu giải thích về các loại.
Đồng ý, tôi cũng xem đây là lỗi. Có thể sử dụng 'Danh mục @k (Coercion k)' sẽ là một ký hiệu tốt hơn. – chi
Có những trường hợp cần xác định loại biến không có trong loại. Sự kết hợp đó khiến cho việc tìm kiếm một cách tài liệu thật sự khó khăn. – Carl