egraphs-good/egglog

Proposal: Change `Set` to store an `Expr` as the first child

oflatt opened this issue · 0 comments

oflatt commented

Right now, the representation of Action::Set looks like this: Set(Head, Vec<GenericAtomTerm<Leaf>>, GenericAtomTerm<Leaf>)
While this is good because it disallows variables or literals as the left child to the set, it's bad because it makes it hard to map over set terms.

The map_exprs function is a bit inconsistent right now because it doesn't map over the first argument of Set.