add C implementation of backtrack unions