However, if you replace the function f withf :: (MonadState s m, Has Int s) => m Intf = do x <- projecty <- projectreturn xthen it fails with the errorCould not deduce (Has α s)from the context (MonadState s m, Has Int s)arising from a use of `project'at /Users/sean/uploads/Weird.hs:16:12-18Possible fix:add (Has α s) to the context of the type signature for `f'In a stmt of a 'do' expression: y <- projectIn the expression:do x <- projecty <- projectreturn xIn the definition of `f':f = do x <- projecty <- projectreturn x