The parse tree's several class definitions all currently go out
of their ways to ensure that they support only move constructors
and operator= (generated automatically via =default;). This was
by intent -- during construction of the backtracking parser combinators,
I did not want to worry about any risk of accidentally creating
expensive deep copies of partial parse trees.
However, copyable parse tree classes are a prerequisite for possible
implementations of possible future features, including inlining,
outlining, F'202Y template prototyping, and parameterized modules.
This patch makes it possible to enable copy construction and copy
assignment for parse tree classes. It's still off by default.