如何在没有外部接口的情况下实现类似 Eff 的 monad
How to implement an Eff-like monad without foreign interface
我有兴趣在 PureScript 中实现类似 Freer Monads, more Extensible Effects 的东西,但使用行而不是开放联合(我想这是可能的)。
但是,我无法定义没有 foreign import
的种类。我希望能够做类似的事情:
kind X
data Y :: # X -> Type -> Type
data Z :: X
这是我能做的事还是我应该寻找其他方法?
Nathan Faubion 使用行多态性、变体和代理实现了可扩展效果,称为 purescript-run
。
我有兴趣在 PureScript 中实现类似 Freer Monads, more Extensible Effects 的东西,但使用行而不是开放联合(我想这是可能的)。
但是,我无法定义没有 foreign import
的种类。我希望能够做类似的事情:
kind X
data Y :: # X -> Type -> Type
data Z :: X
这是我能做的事还是我应该寻找其他方法?
Nathan Faubion 使用行多态性、变体和代理实现了可扩展效果,称为 purescript-run
。