a few niceties: `concat` channels together, `do-effects` from a channel like println
a more straightforward port of Elm signals with all the basics working
lift-msgs & foldp-msgs
put event ids and values together on one channel