unison
unison copied to clipboard
`find` should skip transitive dependencies
If you do find test.verify you get a million results, buried in the versions of base that exist in your transitive dependencies. For instance:
arcella/page> find test.verify
☝️
I couldn't find matches in this namespace, searching in 'lib'...
1. lib.ceedubs_exists_1_6_0.lib.unison_base_3_13_0.test.verify : '{g,
Exception,
Each,
Random,
Label} ()
->{g} [Result]
2. lib.orderator_0_10_0.lib.unison_base_3_32_0.test.verify : '{g,
Exception,
Each,
Random,
Label} ()
->{g} [Result]
3. lib.unison_cloud_20_15_0.lib.unison_http_3_6_0.lib.systemfw_concurrent_2_2_0.lib.unison_base_3_7_0.test.verify : '{g,
Exception,
Each,
Random,
Label} ()
->{g} [Result]
4. lib.ceedubs_exists_1_6_0.lib.unison_base_3_13_0.test.verify.doc : Doc
5. lib.ceedubs_exists_1_6_0.lib.unison_base_3_13_0.test.verifyWithSeed : Nat
-> '{g,
Exception,
Each,
Random,
Label} ()
->{g} [Result]
6. lib.ceedubs_exists_1_6_0.lib.unison_base_3_13_0.test.verifyWithSeed.doc : Doc
7. lib.orderator_0_10_0.lib.unison_base_3_32_0.test.verify.doc : Doc
8. lib.orderator_0_10_0.lib.unison_base_3_32_0.test.verifyWithSeed : Nat
-> '{g,
Exception,
Each,
Random,
Label} ()
->{g} [Result]
9. lib.orderator_0_10_0.lib.unison_base_3_32_0.test.verifyWithSeed.doc : Doc
10. lib.unison_base_4_2_0.test.verify.doc : Doc
11. lib.unison_base_4_2_0.test.verifyWithSeed.doc : Doc
12. lib.unison_cloud_20_15_0.lib.unison_base_4_0_0.test.verify.doc : Doc
13. lib.unison_cloud_20_15_0.lib.unison_http_3_6_0.lib.systemfw_concurrent_2_2_0.lib.unison_base_3_7_0.test.verify.doc : Doc
14. lib.unison_cloud_20_15_0.lib.unison_http_3_6_0.lib.systemfw_concurrent_2_2_0.lib.unison_base_3_7_0.test.verifyWithSeed : Nat
-> '{g,
Exception,
Each,
Random,
Label} ()
->{g} [Result]
15. lib.unison_cloud_20_15_0.lib.unison_http_3_6_0.lib.systemfw_concurrent_2_2_0.lib.unison_base_3_7_0.test.verifyWithSeed.doc : Doc
Gak!
Easy fix. Don't search transitive dependencies, unless there are no results otherwise.
Side note, I think I've hit the case where I want to look up a library function (probably a direct dependency, not transitive, but I'm not sure offhand), but can't because another name in my project itself matches, so ucm doesn't end up looking through the libs.
Point being, there should probably be a flag for doing any search that can get skipped.