समय में, मैं "सुविधा" है कि हास्केल केवल उदाहरण सिर से मेल खाता है, अर्थात् में चलाने,क्या कोई भाषा एक्सटेंशन या हास्केल की भाषा वंशज हैं, जो अभिव्यक्ति का पक्ष लेते हैं, खासकर उदाहरण में हैंडलिंग?
instance (a ~ NewDataTyp b) => C a
अब किसी भी प्रकार से मेल खाएगी, अपने कार्यक्रम में C
का एक और उदाहरण घोषणा लेखन यानी होगा एक त्रुटि है, भले ही संभवतः संदर्भ a ~ NewDataTyp b
के कारण संघर्ष नहीं कर सकता है। कभी-कभी, इसे दूर करने के लिए बहुत मेहनत होती है; इस सीमा से बचने के लिए मुझे कोड की सैकड़ों लाइनों को पुन: स्थापित करना पड़ा है।
क्या कोई भाषा एक्सटेंशन, या वंशज भाषाएं हैं (करी? आगाडा?) जो अभिव्यक्ति के लिए उच्च प्राथमिकता के साथ डिज़ाइन की गई हैं? यह संभवतः टाइपक्लास दुनिया (बी) बहुपद समय टाइपकेकिंग की खुलीपन (ए) बलिदान कर सकता है।
संपादित - सवाल में रुचि रखने वालों के लिए, यह पेज भी ब्याज की हो सकती है: http://www.haskell.org/haskellwiki/Future_of_Haskell
खुली दुनिया धारणा निकाला जा रहा है की ओर जाता है [और अधिक समस्याओं से आप उम्मीद कर सकते] (http://stackoverflow.com/questions/8728596/explicitly-import-instances/8731340#8731340)। जहां तक मुझे पता है, उस समस्या से ठीक होने का एकमात्र तरीका पूर्ण निर्भर प्रकारों को जोड़ना है, और 'सेट' प्रकार में 'Ord' उदाहरण का उपयोग करना शामिल है। – ehird
हास्केल प्रकार की जांच बहुपद नहीं है, क्योंकि एचएम प्रकार की जांच (दोगुनी) घातीय है। – augustss
मुझे यकीन नहीं है कि गिरगिट का इतना विस्तार था या नहीं। इसके लिए बैकट्रैकिंग करने के लिए बाधा सॉल्वर की आवश्यकता होती है, लेकिन मुझे कोई कारण नहीं दिखता है कि इसे काम नहीं करना चाहिए। – augustss