Tôi đã xác định một ví dụ NumericPreludeRing
cho loại dữ liệu của riêng tôi, nhưng không thể xác định one
hoặc fromInteger
. Khi tôi biên soạn chương trình, tôi không nhận được cảnh báo nào vì lớp Ring
có mặc định triển khai đệ quy cùng nhau cho one
và fromInteger
. Kết quả: tràn bộ nhớ rất khó tìm. (Thật vậy, khi sử dụng -XRebindableSyntax, các fromInteger
về hằng số số không cần phải rõ ràng, do đó, nó đã được khá khó khăn để tìm ra fromInteger
là thủ phạm của tràn ngăn xếp.)Chú thích định nghĩa đầy đủ tối thiểu cho Haskell
Có cách nào để các nhà phát triển chú thích các lớp học cho biết định nghĩa hoàn chỉnh tối thiểu? Nó sẽ rất hữu ích nếu GHC có thể ném một cảnh báo cho các trường hợp không đáp ứng được định nghĩa này, trong khi cho phép một bộ hoàn chỉnh các cài đặt mặc định. Nếu không, thực hành được chấp nhận ở đây là gì? Các nhà phát triển có nên để các phương thức tối thiểu (a?) Của các phương thức không có mặc định sao cho các cảnh báo thích hợp được ném hay chúng ta dựa vào người dùng vào RTFM?