forkWith :: ExprTree a -> Fun -> Side -> ExprTree a -> ExprTree a
-- ^ Just an insert on top level
forkWith branch fun L trunk = relabelAt l (Node l fun branch trunk)
                             where l = lab trunk
forkWith :: ExprTree a -> Fun -> Side -> ExprTree a -> ExprTree a
forkWith branch fun L trunk = relabelAt l (Node l fun branch trunk)
                             where l = lab trunk
forkWith branch fun L trunk = relabelAt l (Node l fun branch trunk)
                             where l = lab trunk