加入嵌套Monads

Kwa*_*rtz 4 monads haskell

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

Cir*_*dec 6

没有明显的方法可以做到这一点.您可以使用samplesyncupdates等函数拼凑正确类型的东西executeSyncIO/executeAsyncIO,但它可能不遵守Monad法律.

没有一个更通用的解决方案a (b (a (b c))) -> a (b c)),但如果bTraversable,它可以让你重新排列东西放进a (a (b (b c)))通过遍历b.