anchor.diff:                  NewVisited = [{Pkg, Vsn} | Visited],
                   Res = all_pkgs(DepGraph, NewVisited, DepPkgs ++ OtherPkgs, UConstraints, PathInd),
                   Res
  -			end,
  -			  case constrained_package_versions(DepGraph, Pkg, Constraints) of
  -				[] ->
  -				  {fail, [{Visited, Constraints}]};
  -				missing ->
  -				  {missing, Pkg};
  -				Res ->
  -				  lists_some(F, Res, PathInd)
  -			  end.
  +            end,
  +              case constrained_package_versions(DepGraph, Pkg, Constraints) of
  +                [] ->
  +                  {fail, [{Visited, Constraints}]};
  +                missing ->
  +                  {missing, Pkg};
  +                Res ->
  +                  lists_some(F, Res, PathInd)
  +              end.
   
   
   %% @doc This gathers the dependency constraints for a given package vsn from the
  
positive.code: constrained_package_versions(State, PkgName, PkgConstraints) ->
      Versions = get_versions(State, PkgName),
      Result = [Vsn || Vsn <- Versions, valid_version(PkgName, Vsn, PkgConstraints)],
  	case Result of
  	  [{missing}] ->
  		missing;
  	  Result ->
  		lists:filter(fun({missing}) ->
  			  false;
  			(_FilteredVersion) -> true  end, Result)
  	end.
  
  %% Given a list of constraints filter said list such that only fail (for things
  %% that do not match a package and pkg are returned. Since at the end only pkg()
  
negative.code:                     NewGraph1 = gb_trees:insert(PkgName, Info, NewGraph0),
                      rewrite_vsns(ExistingGraph, NewGraph1, Info);
                  none ->
                    NewGraph1 = gb_trees:insert(PkgName, [{{missing},[]}],NewGraph0), %{error, {unreachable_package, PkgName}}
                      rewrite_vsns(ExistingGraph, NewGraph1, [{{missing},[]}])
              end
      end.
  