public static bool GetCombinedTargets(SlotOrFunction fCand, SlotOrFunction rCand, out SlotOrFunction fTarget, out SlotOrFunction rTarget) {
fTarget = rTarget = Empty;
if (fCand.Success) {
if (rCand.Success) {
if (fCand.NarrowingLevel <= rCand.NarrowingLevel) {
fTarget = fCand;
rTarget = rCand;
} else {
fTarget = Empty;
rTarget = rCand;
}
} else {
fTarget = fCand;
}
} else if (rCand.Success) {
rTarget = rCand;
} else {
return false;
}
return true;
}