anchor.diff:  -export([dep_pkg/1,
            filter_package/2,
            primitive_solve/3,
  -	 	 do_solve/3
  -	 ]).
  +         do_solve/3
  +     ]).
   
   -export_type([t/0,
                 pkg/0,
  
positive.code:                 Res = all_pkgs(DepGraph, NewVisited, DepPkgs ++ OtherPkgs, UConstraints, PathInd),
                  Res
              end,
  			case constrained_package_versions(DepGraph, Pkg, Constraints) of
  				[] ->
  					{fail, [{Visited, Constraints}]};
  				missing ->
  					case OtherPkgs of
  						%%No where else to look in this version, fail, but keep looking
  						[] ->
  							{fail, [{Visited, Constraints}]};
  						_ ->
  							{missing, Pkg}
  					end;
  				Res ->
  					lists_some(F, Res, PathInd)
                end.
  
  
  
negative.code:     gb_trees:is_defined(PkgName, Dom0).
  
  find_unreachable_goals(DepGraph0, Goals) ->
      [G || G <- Goals, contains_package_version(DepGraph0, dep_pkg(G)) == false].
  
  do_solve(DepGraph0, Goals, Parent) ->
          case trim_unreachable_packages(DepGraph0, Goals) of
              Error = {error, _} ->
                  Error;
              DepGraph1 ->
                  case primitive_solve(DepGraph1, Goals, no_path) of
                      {fail, _} ->
                          [FirstCons | Rest] = Goals,
                          Parent ! {error, depsolver_culprit:search(DepGraph1, [FirstCons], Rest)};
                      {missing, Pkg} ->
                          Parent ! {error, {unreachable_package, Pkg}};
                      Solution ->
                          Parent ! {ok, Solution}
                  end
          end.
  