Right now the repair only suggests fixes which consist of replacing an expression with
a single identifier which has the same type as the expression, or
an already existing expression in the program which has the same type.
However, this is very limited. We do however have an ace in our hole: refinement hole-fits.
Refinement hole-fits are hole-fits which have additional holes in them, essentially saying "this function applied to the right arguments would have the correct type", which is very powerful. We can generate such fits easily by increasing the hole-lvl parameter, which controls the number of additional holes allowed. Picking the right arguments is tricky, but I think it could be integrated into our current approach.
Right now the repair only suggests fixes which consist of replacing an expression with
However, this is very limited. We do however have an ace in our hole: refinement hole-fits.
Refinement hole-fits are hole-fits which have additional holes in them, essentially saying "this function applied to the right arguments would have the correct type", which is very powerful. We can generate such fits easily by increasing the
hole-lvl
parameter, which controls the number of additional holes allowed. Picking the right arguments is tricky, but I think it could be integrated into our current approach.