One way to set up the system is to use the Actor model at the core, and implement the FRP on top of that. The Signal objects would implement the actor interface, and having a "main" that returned a Signal would thus be returning an actor suitable for use by the runtime. This would be pretty flexible in allowing other non-FRP type applications as well.