Sourcetype ('state, 'context) rule = {from : 'state;label : string;guard : 'context -> int -> bool;target : 'state;
} Sourcetype ('state, 'context) machine = ('state, 'context) rule list Sourcetype 'state run = {state : 'state;since : int;fired : string option;
} Sourceval after : int -> 'context -> int -> bool