यह कोई जवाब नहीं है, लेकिन यह एक टिप्पणी के भीतर फिट नहीं होगा।
मैं भी इसी तरह की कार्यक्षमता चाहता था। मुझे लगता है आंतरिक प्रकार इस तरह दिखेगा:
-- The same `FreeF` type from the `free` package in `Control.Monad.Trans.Free`
data FreeF f a x = Pure a | Free (f x)
newtype FreeP f p a' a b' b m r
= FreeP { unFreeP ::
p a'
(FreeF f a (FreeP f p a' a b' b m r))
b'
(FreeF f b (FreeP f p a' a b' b m r))
m
(FreeF f r (FreeP f p a' a b' b m r)) }
ही, वर्तमान में मौजूदा मशीनरी के साथ संभव नहीं हो सकता है, लेकिन यह ठीक है। उदाहरण के लिए, StateP
प्रॉक्सी ट्रांसफ़ॉर्मर से परामर्श लें, जो पर ProxyInternal
से संबंधित है। पर एक समान एनालॉग FreeP
लागू करने के लिए आवश्यक हो सकता है।
स्रोत
2013-05-16 18:05:56