An alternative way of defining an action specification is first to declare the action as a procedure/function, and then specify the dependency link using the command:
dependency-link: identifier ~> [ identifier-list ] ;
where each identifier in the identifier list refers to an action (procedure) that depends on the value of the object referred to by identifier. So the action:
proc p : a, b, c { /* action body */ }
is equivalent to
a ~> [ p ] ; b ~> [ p ] ; c ~> [ p ] ;
Note that the dependency link command adds dependency linkage to actions. If the user wants to remove a particular linkage, the whole action must be re-specified. For example, to remove c from the specification of action p above, p must be re-defined as:
proc p : a, b { /* action body */ }