anchor.diff:  
       let conflictState : ConflictState = {
           Status               = (status : Resolution)
  -        CurrentRequirement   = currentRequirement
           LastConflictReported = DateTime.Now
           TryRelaxed           = false
           GlobalOverride       = false
           Conflicts            = (Set.empty : Set<PackageRequirement>)
           VersionsToExplore    = (Seq.empty : seq<SemVerInfo * PackageSource list>)
  -        CompatibleVersions   = (Seq.empty : seq<SemVerInfo * PackageSource list>)
       }
  -
   
       let stackpack = {
           ExploredPackages     = Dictionary<PackageName*SemVerInfo,ResolvedPackage>()
           KnownConflicts       = (HashSet() : HashSet<Set<PackageRequirement> * ((SemVerInfo * PackageSource list) list * bool) option>)
           ConflictHistory      = (Dictionary() : Dictionary<PackageName, int>)
       }
  -
   
       let flags =
           StepFlags
  
positive.code: 
  
  type private Stage =
      | Step  of conflictState : ConflictState
      | Outer of conflictState : ConflictState
      | Inner of conflictState : ConflictState
  
  /// Resolves all direct and transitive dependencies
  let Resolve (getVersionsF, getPackageDetailsF, groupName:GroupName, globalStrategyForDirectDependencies, globalStrategyForTransitives, globalFrameworkRestrictions, (rootDependencies:PackageRequirement Set), updateMode : UpdateMode) =
  
negative.code:             )
  
  
      match step (Step(conflictState,None)) startingStep stackpack flags  with
      | { Status = Resolution.Conflict _ } as conflict ->
          if conflict.TryRelaxed then
              stackpack.KnownConflicts.Clear()
              stackpack.ConflictHistory.Clear()
              (step (Step(conflict,None)) { startingStep with Relax = true } stackpack flags ).Status
          else
              conflict.Status
      | x -> x.Status
  