cheng81/PEPL0 — Issue #2: Rework guards as 'when <var bindings>, <constraints>'
Author: cheng81
Created: 2012-03-01 18:11:50+00:00
State: open

Some guard construct can introduce variable in context (`Running` and `Executed`).
The `Or` guard expression does not make sense in this case, since then the actions don't know which guard path was taken.
e.g.:

when (| Executed(foo<*>) as f Executed(bar<*>) as b) {..../*f or b?*/...}

should be written as:

when Executed(foo<*>) as f {...}
when Executed(bar<*>) as b {...}

Meaning: guards are really just and-ed together, the 'or' part is encoded as different guards in the same event.