From caf3cbdd94ec8341f3233bb31c04c72f99502ed9 Mon Sep 17 00:00:00 2001 From: tslil Date: Mon, 20 Oct 2025 20:34:04 +0100 Subject: Changed monad, impl. some grouped semantics, not completely satisfied --- rprt.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'rprt.md') diff --git a/rprt.md b/rprt.md index 394f994..ec65a45 100644 --- a/rprt.md +++ b/rprt.md @@ -138,9 +138,12 @@ The grouping operator `{}` provides transactional semantics: all operations with **Syntax:** `{ op₁ , op₂ , ... , opₙ }` **Semantics:** -- Captures editor state on entry -- All operations execute with the original positions +- All operations compute addresses in the original, unmodified editor state +- Changes are validated before application: they must be "in sequence" (non-overlapping and monotonically ordered on position) +- Successive insertions at the same position are concatenated in order +- Changes are applied atomically after all operations complete - Returns the union of all resulting Selections +- Any validation failure aborts the entire group # 1.7 Composition and Parsing -- cgit v1.2.3