Type class used to determine equality.
Represents structural equality between trees
Represents structural equality between trees
Two trees are structurally equal if their .structure is equal. This implementation is however more efficient that doing a.structure == b.structure.
Represents syntactic equality between trees Two trees are syntactically equal if their .syntax is equal.
Helper type used to help typechecker default to structural equality.
Type class used to determine equality.
For examples, see Structurally or Syntactically.
Inspired by cats.Eq and scalaz.Equal.