Open msmorgan opened 7 years ago
Thanks for reporting the issue.
I looked at this and it wasn't obvious what the problem was. The code path is TypeSearch.matchTypesBulk
which then calls unifyQueue
which calls match_unify
. Then at some point the a
fails to unify with a1
but which a
and a1
this was isn't clear to me. I think this is more difficult than a "low hanging fruit" beginner task.
I've found I can get replace
by searching with P
filled in to something specific, e.g. (x = y) -> Maybe x -> Maybe y
. Also, if I search for (a = b) -> (b = c) -> a = c
, I additionally get replace
. Maybe = c
is a concrete enough P
for it to search for replace
?
You are able to search for things where the type constructor is free, e.g. (f : Type -> Type) -> (a -> b) -> f a -> f
, but that type constructor only takes type, rather than anything like the constructor P : a -> Type
or Category's cat : k -> k -> Type
.
It doesn't appear to be possible to find
replace
using:search
.Steps to Reproduce
Expected Behavior
replace
should be found with that search.Observed Behavior
replace
was not found.