S.BoolSourceedge s is changes s.
rise s is E.fmap (fun b -> if b then Some () else None) (edge s).
fall s is E.fmap (fun b -> if b then None else Some ()) (edge s).
flip b e is a signal whose boolean value flips each time e occurs. b is the initial signal value.
flip b e]0 = not b if [e]0 = Some _flip b e]t = b if [e]<=t = Noneflip b e]t = not [flip b e]t-dt if [e]t = Some _