See the causal commutative arrows stuff here: http://haskell.cs.yale.edu/publications/publications-chronologically/
There's also a very nice related work section at the end of the pldi Elm paper, which gives a bunch of references one may wish to chase down: http://people.seas.harvard.edu/~chong/pubs/pldi13-elm.pdf