ऐसा लगता है कि किसी भी बंधे हुए उदाहरण में Enum का एक सामान्य कार्यान्वयन होना चाहिए। मैं व्यक्तिगत रूप से एक प्रतिरूप के बारे में नहीं सोच सकता, हालांकि अगर कोई व्यक्ति ऐसा है जो रोगविज्ञानी नहीं है तो मैं समझूंगा कि ऐसा क्यों नहीं है।
:i
दो टाइपकास्टेस पर करने से ऐसा लगता है कि मानक पुस्तकालय में वर्तमान में एकमात्र अपवाद ट्यूपल्स के लिए है, जो बाउंडेड हैं, लेकिन एनम नहीं। हालाँकि, किसी भी बंधे हुए टपल को भी एक सार तरीके से Enumerable होना चाहिए, बस अंतिम तत्व को बढ़ाना और फिर जब यह अधिकतम हो जाता है तो चारों ओर लपेटना।
यह परिवर्तन शायद भी जोड़ने शामिल होगा predB
और nextB
/ एक सुरक्षित के लिए या घिरा करने के लिए ऐसा ही कुछ Enum मूल्यों के माध्यम से पार करने के लिए जिस तरह से पाशन। इस मामले में toEnum 0 :: (...)
बराबर होगा(toEnum 0, toEnum 0, ...) :: (...)
Double
/ Float
और सभी समान प्रकार Enum
वैसे भी लागू होते हैं , वे बस बनाते हैं succ = (+ 1)
और fromEnum = truncate
। हास्केल का तरीका वास्तव में व्यावहारिकता के दृष्टिकोण से समझ में आता है, अन्यथा [0, 0.5 ..] और इसी तरह से काम नहीं करेगा, इसलिए ऐसा लगता है कि हस्केल जब एनम की बात करते हैं, तो उनकी गिनती के बारे में चिंता नहीं होती है।