序言一个MonadTransformer到类型检查了已经完成的动作
这是那些我认为,有人已经解决了我的问题的问题之一,但我不知道去哪里找。
问题
我要找携带的是这样的单子堆栈的操作将无法进行类型检查,除非它是完整的完全或不完全的想法MonadTransformer。
我的情况
我有一个单子与持有兆乏的状态叠加。未能写入此MVar将导致thread blocked indefinitely in an MVar
异常。我可以检查MVar本身,但将它交给另一个线程(遵循相同的规则)也是获得MVar填充的有效方法(正如抛出一个错误)。
我正在寻找某种方式让typechecker抛出一个错误,如果其中一个条件没有被monad运行时所满足。我可以在运行时检查,但我认为可能有一种使用类型系统的方法。
不是Haskell,但很有趣:http://docs.idris-lang.org/zh/latest/st/ – danidiaz