该changes
函数具有类型Frameworks t => Behavior t a -> Moment t (Event t (Future a))
。Future
是抽象的,只有一个函数使用它(reactimate'
)。
但是,我可以轻松编写以下函数:
changes' :: Frameworks t => Behavior t a -> Moment t (Event t a)
changes' b = fmap (fmap const b <@>) (changes b)
得到一个正常的(非Future
)事件。
该功能有问题吗?如果不是,为什么原始changes
函数有更严格的类型?