I use similar style as you. neovim with ghci inside, plus hls, and ghciwatch.
Claude code is nice because it is just a separate cli tool that doesn't force you to change editor etc. It can also research things for you, make plans that you can iterate before letting it loose, etc.
Claude is also better than chatgpt at writing haskell in my experience.
I'm in a similar situation. I write Haskell daily and have been working with Haskell for a bunch of years.
Though I use claude code. The setup is mostly stock, though I do have a hook that feeds the output of `ghciwatch` back into claude directly after editing. I think this helps.
- I find the code quality to be so-so. It is much more into if-then-else than the style is to yolo for my liking.
- I don't rely on it for making architectural decisions. We do discuss when I'm unsure though.
- I do not use it for critical things such as data migrations. I find that the errors is makes are easy to miss, but not something I do myself.
- I let it build "leaves" that are not so sensitive more freely.
- If you define the tasks well with types then it works faily well.
- cluade is very prone to writing tests that test nothing. Last week it wrote a test that put 3 tuples with strings in a list and checked the length of the list and that none of the strings where empty. A slight overfit on untyped languages :)
- In my experience, the uplift from Opus vs Sonnet is much larger when doing Haskell than JS/Python.
- It matters a lot if the project is well structured.
- I think there is plenty of room to improve with better setup, even without models changing.
Claude code is nice because it is just a separate cli tool that doesn't force you to change editor etc. It can also research things for you, make plans that you can iterate before letting it loose, etc.
Claude is also better than chatgpt at writing haskell in my experience.