diff --git a/generic.rkt b/generic.rkt index f15d662..2768342 100644 --- a/generic.rkt +++ b/generic.rkt @@ -12,6 +12,7 @@ gen:dds ;; Functions (contract-out [dds-step-one (-> dds? any/c (set/c any/c))] + [dds-step-one-annotated (-> dds? any/c (set/c (cons/c any/c any/c)))] [dds-step (-> dds? (set/c any/c #:kind 'dont-care) (set/c any/c))]) ;; Predicates (contract-out [dds? (-> any/c boolean?)])) @@ -25,6 +26,10 @@ (define-generics dds ;; Given a dds and a state, produce the next states of the dds. (dds-step-one dds state) + ;; Given a dds and a state, produce the next states paired with some + ;; annotation. Typical usage would include including the + ;; information about the update mode. + (dds-step-one-annotated dds state) ;; Given a dds and a set of starting states, produce the set of ;; states reachable in one step. This method falls back to running ;; dds-step-one for all states.