From ea3c6a7345e8580055c5e172e9d7cdcbed20da6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Hillerstr=C3=B6m?= Date: Fri, 8 Jan 2021 16:16:05 +0000 Subject: [PATCH] Structured interface explanation --- thesis.tex | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/thesis.tex b/thesis.tex index 869c600..3a8ab8b 100644 --- a/thesis.tex +++ b/thesis.tex @@ -4280,12 +4280,17 @@ the programmer via the handler as a first-class value, and thus, it may be invoked, discarded, or stored for later use at the discretion of the programmer. -Effect handlers provide a structured interface for programming with -delimited control that operationally augments exception handlers with -the ability to resume its operations. Effect handlers structured in -the sense that the invocation site of an operation is decoupled from -the use site of its continuation -- akin to how the throw-site for an -exception is decoupled from its handling site. +Effect handlers provide a structured and modular interface for +programming with delimited control. They are structured in the sense +that the invocation site of an operation is decoupled from the use +site of its continuation. A handler consists of a collection of +operation clauses, one for each operation it handles. Effect handlers +are modular as a handler will only capture and expose continuations +for operations that it handles, other operation invocations pass +seamlessly through the handler such that the operation can be handled +by another suitable handler. This allows modular construction of +programs, where multiple handlers can be composed to interpret all +effects of the whole program. From here onwards I will make a slight change of terminology to disambiguate programmatic continuations, i.e. continuations exposed to