let get_output (p: pointer) (ie:input_event) : output_event list = match (p (label_input ie)) with Waiting sw -> let (s2, oes2) = receive ie sw in oes2 | Running rw -> raise WrongStateInGetOutput