@Serial
	private Object writeReplace() {
		return new SerialProxy(SerialProxy.TREE_PATTERN, this);
	}
Compiles the given tree pattern string.

@param pattern the tree pattern string
@param mapper the mapper which converts the serialized string value to
       the desired type
@param <V> the value type of the tree than can be matched by the pattern
@return the compiled pattern
@throws NullPointerException if the given pattern is {@code null}
@throws IllegalArgumentException if the given parentheses tree string
        doesn't represent a valid pattern tree or one of the variable
        names is not a valid (Java) identifier
jenetics.ext/src/main/java/io/jenetics/ext/rewriting/TreePattern.java