Haskell 连接嵌套单子

Haskell 连接嵌套单子,haskell,monads,Haskell,Monads,我使用的是FRP.nail,我有一个类型为IO(Behavior)(IO(Behavior))的对象。我需要将该对象转换为类型IO(Behavior),使用类似于嵌套的join。这是否可能使用钠功能?对于a(b(a(b c))->a(b c)),是否有一个更通用的解决方案?没有一个明显的方法。您可以使用and或and之类的函数拼凑出正确类型的东西,但它可能不会遵守Monad法则 对于a(b(a(b c))->a(b c))没有更通用的解决方案,但是如果bis,它可以让你通过外部b将事物重新排列成

我使用的是
FRP.nail
,我有一个类型为
IO(Behavior)(IO(Behavior))
的对象。我需要将该对象转换为类型
IO(Behavior)
,使用类似于嵌套的
join
。这是否可能使用钠功能?对于
a(b(a(b c))->a(b c))
,是否有一个更通用的解决方案?

没有一个明显的方法。您可以使用and或and之类的函数拼凑出正确类型的东西,但它可能不会遵守
Monad
法则


对于
a(b(a(b c))->a(b c))
没有更通用的解决方案,但是如果
b
is,它可以让你通过外部
b
将事物重新排列成
a(b(b(b c))
,我甚至没有考虑过
遍历,这正是我想要的。通解的不存在性在第二章中讨论过。是的,这提供了一个非常全面的解释。