public interface Retriever<Arg,Value>
extends HasCost
For an object retrieves a value being a set of objects of some type. In other words it's a function (in mathematical terms) f:Arg -> {x:Value} (result is a set!).
It is allowed to return an empty set.