2012-05-03 10 views
12

मैंने पहले इस question से पूछा था, और अधिक जांच के बाद मैंने निष्कर्ष निकाला कि विशेष नियम हैं जीएचसी केवल इंफिक्स $ और . के लिए लागू होता है।उच्च रैंक प्रकारों के लिए जीएचसी प्रकार अनुमान - मोनोटाइप को

इस प्रश्न के लिए, मुझे लगता है कि जीएचसी RankNTypes - Haskell Prime पृष्ठ पर उल्लिखित सिस्टम का पालन करता है और आगे arbitary-rank में विस्तारित है। निम्नलिखित

RankNTypes - Haskell Prime पेज कहता है: स्पष्ट हस्ताक्षर के बिना

पैरामीटर चर ऊपर की तरफ अनुमान में monotypes आवंटित कर रहे हैं, लेकिन नीचे की ओर जाँच में मनमाने ढंग से रैंक प्रकार को प्राप्त कर सके ।

मुझे लगता है कि "असाइन किए गए मोनोटाइप" का अर्थ है कि रैंक-एन प्रकार अपने सभी क्वालीफायरों को बाहरी स्तर तक ले जाकर रैंक -1 प्रकार में परिवर्तित हो जाते हैं।

मुझे यह भी विश्वास है कि इस वजह से असामान्य प्रकार की त्रुटि हुई जिसने मुझे मेरे पिछले प्रश्न पूछने का कारण बताया।

1) वहाँ वैसे भी है GHC चेतावनी देने के लिए (या त्रुटि प्राप्त करने के लिए) निहित रूपांतरण पर monotypes रहे हैं:

तो मैं कुछ प्रश्न हैं? मेरे पिछले question में टाइप त्रुटि में काम करने के लिए कुछ समय लगा, मोनोटाइप में रूपांतरण की चेतावनी एक प्रकार की त्रुटि से अधिक उपयोगी होगी।
2) क्या ऐसे मामले हैं जहां अंतर्निहित "मोनोटाइप को असाइन करना" समझदार व्यवहार है, और यदि ऐसा है, तो क्या आप एक उदाहरण दे सकते हैं?
3) infix $ और . के संबंध में, ये जीएचसी में विशेष नियम हैं। यह दस्तावेज कहां है? और क्या कोई अन्य विशेष नियम हैं जिनके पास जीएचसी है, और वे कहां दस्तावेज किए गए हैं?

+1

[यह] (http://stackoverflow.com/q/9468963/775806) ब्याज का हो सकता है। –

+0

3 बिंदु के रूप में, मेरा संदेह यह है कि वे केवल जीएचसी स्रोत में दस्तावेज हैं। मुझे किसी भी दस्तावेज के बारे में पता नहीं है। आप एक आधिकारिक उत्तर के लिए ghc-users सूची पर पूछने का प्रयास कर सकते हैं। –

उत्तर