कम से कम 1 99 0 के उत्तरार्ध में वापस जाकर लोग restricted monads को एक दोस्ताना तरीके से हास्केल में एकीकरण के लिए इच्छुक हैं।प्रतिबंधित मोनैड की वर्तमान स्थिति क्या है?
उदाहरण के लिए, प्रतिबंधित मोनैड के बिना आप Set
, Map
या probability distributions से एक कुशल मोनड नहीं बना सकते हैं। यहां कुछ साल पहले एक SO question है जहां कोई और इस समस्या से दूर भाग गया।
हर संभव प्रतिबंध के लिए एक new type class बनाना:
विभिन्न समाधान है कि लोगों को भी शामिल है, के साथ आए हैं कर रहे हैं।
Template Haskell का उपयोग करना।
Constraint Kinds का उपयोग करना।
हालांकि इनमें से कोई भी दृष्टिकोण "कैननिकल" प्रतीत नहीं होता है। मुझे 2007 में डॉन स्टीवर्ट से this blog post पर एक टिप्पणी मिली, जहां उन्होंने सूचित किया कि हम Indexed types के साथ प्रतिबंधित मोनैड रखने के लिए "काफी करीब" थे।
वर्तमान स्थिति क्या है? क्या अब प्रतिबंधित मोनैड करने का एक 'कैननिकल' तरीका है? या हम अभी भी कामकाज के साथ रह रहे हैं?
मुझे लगता है कि यह बाध्यकारी प्रकारों के साथ लगता है जैसे यह हो जाता है, वे अभी तक के लिए सबसे अधिक _common_ समाधान होने के लिए थोड़ा सा नया हैं। – leftaroundabout