When returning a IntermediateResult in FPCF the list of dependees has to be given. Currently this is a Traversable[SomeEOptionP]. So it is either possible to have duplicates of the exact same EOptionP within the dependees or more realistic multiple EOptionP elements having the same EPK. These cases can crash FPCF and they can actually occur.
Consider an analysis requiring a property of a method. If we analyze a very large piece of code and query the result of the same method several times, it could be the case that for the first time, the property store returns just the EPK, and later on the EP with an conditional result.
If I used the proposed type Set[SomeEPK] locally and always call
ep.toEPK before adding it to dependees, the analysis runs forever. Which might seems like a bug to me.