Module Contract.Notifications

type request
type outcome =
  1. | Drained of reduction
  2. | Awaiting of request
val run : reduction -> (outcome, string) Stdlib.result

Drains accepted intents until empty or until a strategy callback must suspend the transition. No later phase runs with pending feedback.

val has_pending : reduction -> bool
val payload : request -> context * event
val resume : request -> intent list -> reduction