method private sleep =
List.iter
(fun { transition = transition ; source = s } ->
s#leave ~dynamic:true (self:>source) ;
Lang.iter_sources (fun s -> s#leave ~dynamic:true (self:>source))
transition)
cases ;
match selected with
| None -> ()
| Some (_,s) -> s#leave (self:>source)