Haskell Language Server (https://github.com/haskell/haskell-language-server) offers a pretty good IDE experience.
It also mitigates the parameter naming problem. With a type hole, the language server will infer the type. But in the case of two parameters having the same type, you have to consult the definition or doc.