TaPL Language Implement by Haskell