There are some decent object plugins on github. Look at vim-textobj-user for the parent plugin and then vim-textobj-indent for some useful ones based on indent level. I don't think there's anything that can handle haskell style arguments... although I think they are always either single identifiers or something wrapped in parens, so yiw and yib should handle it usually.