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:     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.
  
negative.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.
  
  
  