The engine produces a XOR-composition m1-m2-xor-comp of two HDL modules (here they're called m1 and m2). The m1-m2-xor-comp is an HDL module that has the same input\output interface with the only one distinction called, for example, "xor_err_detect". The m1-m2-xor-comp contains instances of m1 and m2; it's inputs are linked to their same-name inputs; it's outputs are equal to OR expressions of their same-name outputs (in fact, it doesn't matter now); xor_err_detect equals to OR (outputs(m1) XOR outputs(m2)). If xor_err_detect equals TRUE the error message should be printed.
It is supposed to use the engine in the ATPG project for measuring the coverage in terms of detected stuck-at faults for the tests being produced by FATE\RETGA\SMV based engines.
For an initial version it would be enough for this engine to take only one CfgInterface object related to m1 as input (it is supposed that m1 is an original HDL description and m2 is a mutant and they have equal interfaces) and an m2 module name as engine-specific parameter.
For VHDL\Verilog two engines can be implemented: vhdl-xor-composition-printer and verilog-xor-composition-printer respectively.