DataKinds के साथ, जैसेक्या कोई कारण है कि हम डेटाकिंड्स के साथ प्रकारों को पॉप्युलेट नहीं कर सकते हैं?
data KFoo = TFoo
एक परिभाषा तरह KFoo :: BOX
और प्रकार TFoo :: KFoo
परिचय देता है। क्यों नहीं मैं तो
data TFoo = CFoo
ऐसी है कि CFoo :: TFoo
, TFoo :: KFoo
, KFoo :: BOX
परिभाषित करने के लिए पर जा सकते हैं?
क्या सभी रचनाकारों को *
से संबंधित किसी प्रकार से संबंधित होना चाहिए? यदि हां, तो क्यों?
संपादित: जब मैं यह कर मैं कोई त्रुटि मिलती नहीं है, क्योंकि निर्माणकर्ता और प्रकार एक नाम स्थान साझा करते हैं, लेकिन क्योंकि यह नियमित प्रकार के बजाय पदोन्नत कंस्ट्रक्टर्स के रूप में नाम स्पष्ट रूप से दिखाता GHC संघर्ष अनुमति देता है। प्रमोटेड कन्स्ट्रक्टर को संदर्भित करने के लिए दस्तावेज़ '
के साथ उपसर्ग करने के लिए कहते हैं। जब मैं
data 'TFoo = CFoo
करने के लिए बदल कि दूसरी पंक्ति मैं त्रुटि प्रकार या वर्ग घोषणा के
विकृत सिर मिलती है: TFoo
'डेटा TFoo' को परिभाषित करने का प्रयास करते समय आपको क्या त्रुटि मिलती है? – cdk