{-# UNPACK #-}
प्रज्ञा अनावश्यक रचनाकारों को खत्म करने के लिए संकलक को बताती है। का हवाला देते हुए Haskell wiki:पॉलिमॉर्फिज्म के साथ सख्त फ़ील्ड कैसे अनपॅक करते हैं?
उदाहरण के लिए, यह देखते हुए इस:
data T = T {-# UNPACK #-} !(Int,Float)
GHC प्रकार टी इस तरह का प्रतिनिधित्व करेंगे:
data T = T Int Float
टपल को नष्ट करने। यह भी काम करता है,
data T = T {-# UNPACK #-} !Int
data T = T Int#
मैं सोच रहा था के रूप में प्रतिनिधित्व किया जाएगा जब क्षेत्र अनपैक किया जा करने के लिए बहुरूपी है: यह आमतौर पर अनबॉक्स्ड Ints एक निर्माता में सीधे डाल करने के लिए प्रयोग किया जाता है ? उदाहरण के लिए, अगर मैं परिभाषित
data S' a = S String {-# UNPACK #-} !a
type S1 = S' Int
newtype S2 = S2 (S' Int)
कार्यों कि S1
या S2
के साथ काम अनुकूलित किया जाएगा?