我想用 modify 来实现 put
put :: s -> m ()
modify :: (s -> s) m s
当我做
put s = modify $ const((), s)
我收到错误,
预期类型:m()
实际类型:m((),s)
我尝试过这样的事情
modify $ const((), s) >>= \x -> return (fst x)
获得预期的类型 m()
但此解决方案不起作用
有人可以向我解释如何使用 modify 来实现 put 吗?
感谢您的时间和帮助。