diff --git a/lang/spec.html b/lang/spec.html
index 6a9b5816..f14b4efb 100644
--- a/lang/spec.html
+++ b/lang/spec.html
@@ -8397,7 +8397,7 @@
Sync send action
Receiving messages
receive-action := single-receive-action | multiple-receive-action
+class="grammar">receive-action := single-receive-action | multiple-receive-action | alternate-receive-action
Each receive-action has one or more references to peer workers. A reference to a
@@ -8509,6 +8509,47 @@
Multiple receive action
the multiple-receive-action
F is the union of the send failure types of the slots
+
+
+Alternate receive action
+
+alternate-receive-action := <-
peer-worker (|
peer-worker)+
+
+
+
+An alternate-receive-action receives a message from one of multiple peer-workers.
+
+
+As with other receive actions, each reference to a peer worker is associated with a slot in
+a queue. An alternate-receive-action is evaluated by repeatedly waiting until either
+
+
+- a sending worker terminates abnormally with a panic; in this, case the
+evaluation completes abruptly with a panic, with the associated value being the
+termination value of the sending worker;
+- a slot k is ready, and is not empty, and the value in the slot is
+not an error; in this case the alternate-receive-action; in this case, a value
+is received from every slot; the result or failure of these receive operations
+is ignored except for slot k; the evaluation completes normally, with
+the result being the value received from slot k; or
+- all sending workers have terminated normally; in this case also, a value is
+received from every slot and the evaluation completes normally with the result
+of the alternative-receive-action being as follows
+
+- if the receive operation of every slot fails, then a new value of type
+
error:NoMessage
;
+- otherwise, the result of the first receive operation that did not fail,
+(in this case, that result will be an error value).
+
+
+
+
+The static type of the alternative-receive-action is T|F, where T is union of
+message type of the associated slots and F is the union the send failure type of
+the slots.
+
+
@@ -11740,6 +11781,7 @@ Summary of changes from 2023R1 to 2024R1
The compile-time requirement that a send-action must always be executed
unless its containing worker terminates with an error or panic has been
removed.
+An alternate-receive-action has been added.