据我所知,GHC8的新功能之一是ApplicativeDo语言扩展,它将do-notation尽可能地展开成相应的Applicative方法(
它如何判断是否可以把do-notation展开成Applicative方法?据我所知,它会进行依赖性检查(如果后者依赖于前者的结果)来确定资格。还有其他标准吗?
尽管这种新增功能使得没有任何Monad实例的类的可读性更高,但对于既有Monad实例又有Applicative实例的结构:从可读性的角度来看,这是推荐的做法吗?是否还有其他好处?
<$>
、<*>
)。以下是我的问题。它如何判断是否可以把do-notation展开成Applicative方法?据我所知,它会进行依赖性检查(如果后者依赖于前者的结果)来确定资格。还有其他标准吗?
尽管这种新增功能使得没有任何Monad实例的类的可读性更高,但对于既有Monad实例又有Applicative实例的结构:从可读性的角度来看,这是推荐的做法吗?是否还有其他好处?