There is certainly prior art for complex games running smoothly in Haskell:
https://wiki.haskell.org/Frag
This particular solution used functional reactive programming, essentially a composition of signal/event processing functions/automatons.
This particular solution used functional reactive programming, essentially a composition of signal/event processing functions/automatons.
Note the upload date: