I wrote a mini platformer in Elm and it was great fun to make, but suffered the same problem as this demo: quite janky (seemed to suffer a lot GC hicups, especially in Firefox), and that's just at 30fps. At the time I thought it was because it was doing a lot of unnecessary canvas operations under the hood - which you just can't afford to do if you want buttery-smooth games, but figured I'd revisit Elm when it's sorted out ;)