I guess it was only a matter of time before someone wrote an FPS in Haskell.
All fields are optional. Feedback is private by default; if it's okay for me to post your comment publically, be sure to say so.