In general FP languages tend to be super great at hole-driven development tooling where you're refining programs with missing parts, based on the expected type. It's a bit different to the OOP approach though. Agda, Haskell, and Idris use this style.
This is something I wish Rust had - the ability to have 'typed holes' in expressions and patterns that you could interact with via your editor. For example interacting with `match` is kind of a chore without it :(