यहाँ कोड है कि काम करने के लिए प्रयोग किया जाता है (उचित रूप से छोटा कर दिया मुझे आशा है कि)प्रतिक्रियाशील केला 1.0.0 - यह पुराना कोड क्यों टूट रहा है?
makeNetworkDescription :: forall t . Frameworks t => Parameters -> Moment t()
makeNetworkDescription params = do
eInput <- fromAddHandler (input params)
eTick <- fromAddHandler (tick params)
..
let
bResourceMap :: Behavior t ResourceMap
bResourceMap = accumB initRmap $
adjustMarket <$>
bMarketRolls <@
eTick
है लेकिन अब प्रकार बदल दिया है।
हमने:
makeNetworkDescription :: Parameters -> MomentIO()
और accumB :: MonadMoment m => a -> Event (a -> a) -> m (Behavior a)
कहते हैं कि मैं थोड़ा accumB
परिभाषा से दूर
bResourceMap :: Behavior ResourceMap
bResourceMap = accumB initRmap $
adjustMarket <$>
bMarketRolls <@
eTick
करने के लिए bResourceMap
की परिभाषा बदलने के लिए, लेकिन देखते हैं क्या होता है।
ghc
प्रकार accumB
के व्यवहार एक MonadMoment
के संदर्भ में होने की जरूरत है की वजह से एक त्रुटि
Couldn't match type ‘Behavior ResourceMap’ with ‘ResourceMap’
Expected type: Behavior ResourceMap
Actual type: Behavior (Behavior ResourceMap)
अधिकार देता है। MonadMoment
पर एक नज़र होने मैं दो उदाहरणों
instance MonadMoment Moment where liftMoment = id
instance MonadMoment MomentIO where liftMoment = MIO . unM
तो क्यों Behavior (Behavior ResourceMap)
को वास्तविक प्रकार संकल्प किया था, बाहरी प्रकार एक MonadMoment
, जो मेल नहीं खाता हो गया लगता है।
मुझे इस प्रकार की समस्या को हल करने के बारे में सलाह चाहिए, यह मेरी सभी Behavior
परिभाषाओं के साथ होता है।
सिर्फ उत्सुक: क्या यह वास्तविक या शौक परियोजना है? –
यह वास्तविक है, लेकिन गेम क्वा गेम नहीं है। यह एक गेम होने के अलावा एक उद्देश्य की सेवा करने वाला एक गेम है। –