Nice simple demo Sridatta!
Nobody likes the tilde-arrow lift syntax! The last line could be rewritten as follows. Does anybody think it's better or worse? I tend to prefer it, though many don't like it.
main = lift2 display Window.dimensions <| lift renderState gameState
main = display <~ Window.dimensions ~ (renderState <~ gameState)
Signals exhibit the characteristics of an applicative functor, after all, so pure functions of any arity can be lifted without needing to think if you're using lift2, lift3, etc.