@Override
	protected Stream<AssemblyResolvedPatterns> resolve(AssemblyResolvedPatterns fromRight,
			Collection<AssemblyResolvedError> errors) {
		String desc = "Resolving constructor: " + sem.getLocation();
		return resolveRemainingChildren(fromRight, errors, children)
				.flatMap(fromChildren -> resolveMutations(fromChildren, errors))
				.flatMap(fromMutations -> resolvePatterns(fromMutations, errors))
				.map(pat -> pat.parent(desc, children.size()).withConstructor(sem.cons));
	}
{@inheritDoc}

<p>
Currently, this is used to generate machine-code from a generated assembly instruction
prototype, but it is not used to apply recursive constructors, i.e., for prefix generation.
TODO: That should change. This performs the reverse of the machine-code parsing process, both
in concept and in implementation. First, it descends to the children. Each child is a
{@link AbstractAssemblyState}, i.e., either another constructor, or a value operand. (There
are also specializations for dealing with hidden constructor and value operands.) Then it
solves context changes, in the reverse order of the specification. Finally, it applies the
patterns, in order to satisfy the constraints specified by the constructor. As a final
detail, it records, for diagnostic purposes, the intermediate child patterns into the parent
pattern.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/sem/AssemblyConstructState.java