Similarly to new_behavior, we define a signal add_behavior on which the adding requests will be sent.

signal add_behavior
  default (fun state -> process ())
  gather (fun p q state ->
            process (run (p state) || run (q state)))
;;

We can run an extensible moving point,

#run extend moving_point (new_state ()) add_behavior ;;

and add an up/down behavior to this point moving left to right.

emit add_behavior up_down ;;