add some haskell codes