一句话:提出用 fold/build 融合与 CPS 变换推导效应处理器组合的充分条件,以判定复合处理器语义。
效应处理器按顺序组合时,每个处理器只处理部分操作,但复合语义对顺序敏感,确定正确顺序困难。本文提出系统方法,用 fold/build 融合与 CPS 变换将两个处理器融合为一个,仅由相关操作子句推导复合处理器正确处理效应理论之和、张量组合的充分条件。案例研究覆盖交换与分配交互,得到:处理器遵守的等式在组合后保持;先处理可变状态可使其操作与后续处理器操作交换;writer 效应与可变状态按任一顺序处理均得到交换组合的正确处理器。
Effect handlers can be composed by applying them sequentially, each handling some operations and leaving other operations uninterpreted in the syntax tree. However, the semantics of composed handlers can be subtle---it is well known that different orders of composing handlers can lead to drastically different semantics. Determining the correct order of composition is a non-trivial task. To alleviate this problem, this paper presents a systematic way of deriving sufficient conditions on handlers for their composite to correctly handle combinations, such as the sum and the tensor, of the effect theories separately handled. These conditions are solely characterised by the clauses for relevant operations of the handlers, and are derived by fusing two handlers into one using a form of fold/build fusion and continuation-passing style transformation. As case studies, the technique is applied to commutative and distributive interaction of handlers to obtain a series of results about the interaction of common handlers: (a) equations respected by each handler are preserved after handler composition; (b) handling mutable state before any handler gives rise to a semantics in which state operations are commutative with any operations from the latter handler; (c) handling the writer effect and mutable state in either order gives rise to a correct handler of the commutative combination of these two theories.