The motivation for this typeclass is to extract values out of trees that could have been fields on the classes.
The motivation for this typeclass is to extract values out of trees that could have been fields on the classes. However, these values are not included as fields on the tree nodes because of various reasons.
The purpose of this typeclass is to replace one list of things with another of that type.
The purpose of this typeclass is to replace one list of things with another of that type.
eg. replacing the statements of a Defn.Class with a new set of statements
the object you are replacing the items in
the type of items you are replacing
Helper to default tree equality to use structural equality.
Helper to default tree equality to use structural equality.