added AP haskell module