Maybe (Lens' a b)
जैसे एक प्रकार काम नहीं करता है क्योंकि Lens'
एक रैंक-2 प्रकार के हुड के नीचे है, जिसे -XImpredicativeTypes
एक्सटेंशन (जो वास्तव में जीएचसी में समर्थित नहीं है) के बिना एक प्रकार के कन्स्ट्रक्टर में लपेटा नहीं जा सकता है।गैर-अपरिवर्तनीय रूप से 'लेंस' वापस कैसे लौट सकता है?
क्या इस प्रकार सबसे अच्छा प्रकार एक समारोह है कि नैतिक रूप से प्रकार
foo :: A -> Maybe (Lens' B C)
एक संभावना एक से पारित कर दिया निरंतरता
foo' :: ∀ y . A -> (Lens' B C -> y) -> Maybe y
में Maybe
स्थगित करने होगा होता देने के लिए है, लेकिन मुझे नहीं पता खासकर उस तरह।
उपयोग [ 'ALens'] (https://hackage.haskell.org/package/lens-4.15.1/docs/Control-Lens-Lens.html#t:ALens) हो सकता है? –
'ReifiedLens' भी है जो केवल सामान्य न्यूटाइप रैपर है।' लेंस 'को बढ़ाएं। जब आप एक लेंस लौट रहे हैं तो 'एलेंस 'की तुलना में' ReifiedLens' का उपयोग करने के लिए यह अधिक कुशल हो सकता है, और यह उपभोक्ता के लिए समान रूप से सुविधाजनक लगता है। –