Wingman won't apply return-type-polymorphic functions, even if they're the only things that would typecheck #1803
Labels
component: wingman
type: bug
Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..
@masaeedu reports:
Wingman should be able to produce
fwd
andbwd
if given enough gas, but it doesn't! It gets stuck applyingc
, failing with aTooPolymorphic
error. This appears to be caused by the call torequireConcreteHole
inapply
, which doesn't allow return-type-polymorphic calls. I've forgotten the original impetus for this, but it appears to be related to #534, and presumably to prevent Wingman from wasting its time solving holes viaread
andunsafeCoerce
.But there's another bug corresponding to
requireConcreteHole
:haskell-language-server/plugins/hls-tactics-plugin/src/Wingman/Tactics.hs
Lines 64 to 65 in 1e47c75
which suggests we're barking up the entirely wrong tree with this check.
I think it's reasonable to
requireConcreteHoles
when applying non-local definitions, which would still rule outread
andunsafeCoerce
, but will allow recursion and application.The text was updated successfully, but these errors were encountered: