Elm is already considering things like `Signal (Command a) -> Signal a` to blend imperative programming with FRP; in this case, you'd have functions like `Signal (Glitch a) -> Signal a`
[0]: https://groups.google.com/forum/#!topic/elm-discuss/ALLG6GrW...
http://lambda-the-ultimate.org/node/2149
However, I was disappointed because I couldn't use signal abstractions in the implementation of this system; instead I invented something that was the beginning of the work presented here.
Once you have effects (implicit or explicit), something like Glitch will work for that system. However, it is very important to make sure effects are de-serialized syntactically (they basically need to be wrapped up in commutative monads), otherwise replay isn't well defined and you'd need to go with more of a self-adjusting computation approach that preserves partial orders.