के लिए न्यूनतम पूर्ण परिभाषा एनोटेशन मैंने अपने डेटा प्रकार के लिए NumericPreludeRing
उदाहरण परिभाषित किया, लेकिन one
या fromInteger
को परिभाषित करने में विफल रहा। जब मैंने प्रोग्राम संकलित किया, तो मुझे कोई चेतावनी नहीं मिली क्योंकि Ring
कक्षा में पारस्परिक रूप सेone
और fromInteger
के लिए कार्यान्वयन है। नतीजा: एक ढेर अतिप्रवाह जो खोजना बहुत मुश्किल था। (वास्तव में, जब -XRebindableSyntax, आंकिक स्थिरांक पर fromInteger
का उपयोग कर स्पष्ट होने की ज़रूरत नहीं है, तो यह काफी यह पता लगाने की fromInteger
ढेर अतिप्रवाह के अपराधी था मुश्किल था।)हास्केल
वहाँ एक रास्ता डेवलपर्स के लिए कक्षाएं टिप्पणी करने के लिए के लिए है एक न्यूनतम पूर्ण परिभाषा इंगित करें? यह बहुत उपयोगी होगा अगर जीएचसी उन उदाहरणों के लिए चेतावनी दे सकता है जो इस परिभाषा को पूरा नहीं करते हैं, जबकि डिफ़ॉल्ट कार्यान्वयन के पूर्ण सेट की अनुमति देते हैं। यदि नहीं, तो यहां स्वीकार्य अभ्यास क्या है? क्या डेवलपर्स को (ए?) डिफ़ॉल्ट रूप से बिना किसी डिफ़ॉल्ट सेट के सेट को छोड़ना चाहिए ताकि उपयुक्त चेतावनियां फेंक दी जाए, या क्या हम उपयोगकर्ताओं पर आरटीएफएम पर भरोसा करते हैं?