Feigns being a subclass of ExpansionTreeWithMerges.
The apply methods in the pseudo case classes return ETs in case the arguments forming the children are ETs.
As the children are immutable, this ensures that the tree does not contain merges.
The classes also contain methods that have ETs as formal input and output parameters, which eliminates the need for
a lot of casting in client code.
Feigns being a subclass of ExpansionTreeWithMerges. The apply methods in the pseudo case classes return ETs in case the arguments forming the children are ETs. As the children are immutable, this ensures that the tree does not contain merges. The classes also contain methods that have ETs as formal input and output parameters, which eliminates the need for a lot of casting in client code.