some haskell code