commutate :: ExprTree a -> ExprTree a
-- ^ should be commutation laws for addition and multiplication
commutate (Node l fun lb rb) = relabelAt l (Node l fun rb lb)
commutate :: ExprTree a -> ExprTree a
commutate (Node l fun lb rb) = relabelAt l (Node l fun rb lb)
commutate (Node l fun lb rb) = relabelAt l (Node l fun rb lb)