Open
Description
It would perhaps be nice if HLS suggested using in scope type synonyms sometimes.
To make an example using the hnix
package: if I use the excellent code action Define funArity :: Fix (Compose (Ann SrcSpan) NExprF) -> Int
I end up with the unhuman given type sig, when funArity :: NExprLoc -> Int
would be much nicer.
It's probably quite hard to come up with the perfect rule here, but how do people feel about a heuristic along the lines of:
- The sig is in scope
- The types are equal
- Using the synonym is much shorter
(Better but more difficult would be to calculate the preference in existing code (user and library) between the synonym and the expanded version)