FN interpreter written in Haskell