ध्यान दें कि कोर एक स्पष्ट रूप से टाइप की गई भाषा है, जो अन्य भाषाओं से उत्पन्न करना मुश्किल हो सकता है (जीएचसी प्रकार चेकर I सभी प्रकारों को नफरत है इसलिए इसमें कोई समस्या नहीं है)। उदाहरण के लिए, हमेशा की तरह पहचान समारोह (id = \x -> x :: forall a. a -> a)
id = \(a :: *) (x :: a) -> a
जहां a
तरह *
का एक प्रकार चर रहा है हो जाता है। यह टाइप-लेवल forall
बाइंडिंग के लिए टर्म-स्तरीय प्लेस धारक है। इसी प्रकार, id
पर कॉल करते समय आपको इसे पहला तर्क के रूप में एक प्रकार देने की आवश्यकता है, इसलिए हास्केल अभिव्यक्ति (id 42)
को (id Int 42)
में अनुवादित किया जाता है। इस तरह के प्रकार बाइंडिंग और प्रकार के अनुप्रयोग जेनरेट किए गए मशीन कोड में मौजूद नहीं होंगे, लेकिन वे संकलक परिवर्तनों को सत्यापित करने के लिए उपयोगी हैं।
उज्जवल पक्ष पर, यह संभव हो सकता है सिर्फ हास्केल उत्पन्न करने के लिए - आप इस तरह से कि GHC हमेशा तो आप अनिवार्य रूप से सिर्फ हास्केल के एक छोटे सबसेट का उपयोग कर रहे हैं अपने प्रकार का निर्धारण करने में सक्षम होंगे में कोड उत्पन्न कर सकते हैं, तो । चाहे यह काम कर सके, आपकी स्रोत भाषा पर बहुत निर्भर करता है।
"वर्तमान में (संस्करण 6.8.2 के रूप में), जीएचसी में बाहरी कोर फ़ाइलों में स्रोत के रूप में पढ़ने की क्षमता नहीं है।" आपको _internal_ कोर में एक प्रस्तुति देना होगा और जीएचसी को पास करना होगा, मुझे डर है। आपके लिए मैं आशा करता हूं कि मैं अत्यधिक निराशावादी हूं, लेकिन मेरा मानना है कि आपको ghc-api को कुछ कॉलों की आवश्यकता होगी। –