I’m trying to use data classes with such functions as one of the values as a key in a Set, to avoid creating duplicated instances. I need to apply combinators on a set of functions created as per an externally defined directed graph which is allowed to have cycles. Vertices -> Functions, Edges -> Combinators. cycles will obviously cause recursive function generation, I would like to avoid that.