anchor.diff:      member __.FirstTrial  = firstTrial
   
   
  -
  -// While looping to evaluate a package resolution the 'dive conflict' is the one 
  -// being actively processed. When this conflict needs to pause its evaluation 
  -// to spawn a new child currentConflict it "floats" with it throughout the recursive
  -// evaluation. When the child diver has finished evaluating it will fuse with 
  -// the floater to make a new conflictState that will resume the dive.
   type private Stage =
  -    | Step  of currentConflict : ConflictState * priorConflictSteps : (ConflictState * ResolverStep) list
  -    | Outer of currentConflict : ConflictState * priorConflictSteps : (ConflictState * ResolverStep) list
  -    | Inner of currentConflict : ConflictState * priorConflictSteps : (ConflictState * ResolverStep) list
  +    | Step  of currentConflict : (ConflictState * ResolverStep * PackageRequirement) * priorConflictSteps : (ConflictState * ResolverStep * PackageRequirement) list
  +    | Outer of currentConflict : (ConflictState * ResolverStep * PackageRequirement) * priorConflictSteps : (ConflictState * ResolverStep * PackageRequirement) list
  +    | Inner of currentConflict : (ConflictState * ResolverStep * PackageRequirement) * priorConflictSteps : (ConflictState * ResolverStep * PackageRequirement) list
   
   
   /// Resolves all direct and transitive dependencies
  
positive.code:                         StepFlags(flags.Ready,flags.UseUnlisted,hasUnlisted,flags.ForceBreak,flags.FirstTrial)
                      if exploredPackage.Unlisted && not flags.UseUnlisted then
                          tracefn "     unlisted"
                          step (Inner (currentConflict, priorConflictSteps)) currentStep stackpack
                                  currentRequirement compatibleVersions  flags 
                      else
                          let nextStep =
                              {   Relax              = currentStep.Relax
  
negative.code:                     else
                          StepFlags(true,flags.UseUnlisted,flags.HasUnlisted,flags.ForceBreak,flags.FirstTrial)
  
                  step (Outer((currentConflict,currentStep,currentRequirement), priorConflictSteps)) stackpack compatibleVersions  flags 
              else
                  let flags = StepFlags(flags.Ready,flags.UseUnlisted,flags.HasUnlisted,flags.ForceBreak,false)
                  let (version,sources) & versionToExplore = Seq.head currentConflict.VersionsToExplore
  