private static bool TryMergeStructFields(StateStruct ancStruct, StateStruct descStruct) { foreach (var ancField in ancStruct.Fields) { TicNode descFieldNode = descStruct.GetFieldOrNull(ancField.Key); if (descFieldNode == null) { return(false); } // i m not sure why - but it is very important to set descFieldNode as main merge node... SolvingFunctions.MergeInplace(descFieldNode, ancField.Value); } return(true); }