anchor.diff:      Pkg;
   dep_pkg(Pkg) when is_atom(Pkg) orelse is_binary(Pkg) ->
       Pkg.
  -
  --spec is_valid_constraint(constraint()) -> boolean().
  -is_valid_constraint(Pkg) when is_atom(Pkg) orelse is_binary(Pkg) ->
  -    true;
  -is_valid_constraint({_Pkg, Vsn}) when is_tuple(Vsn) ->
  -    true;
  -is_valid_constraint({_Pkg, Vsn, '='}) when is_tuple(Vsn) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, gte}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, '>='}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, lte}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, '<='}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, gt}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, '>'}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, lt}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, '<'}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, pes}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn, '~>'}) ->
  -    true;
  -is_valid_constraint({_Pkg, _LVsn1, _LVsn2, between}) ->
  -    true;
  -is_valid_constraint(_InvalidConstraint) ->
  -    false.
   
   -spec add_constraint(pkg_name(), vsn(), [constraint()],constraint()) -> ordered_constraints().
   add_constraint(SrcPkg, SrcVsn, PkgsConstraints, PkgConstraint) ->
  
positive.code: parse_version(Vsn)
    when erlang:is_tuple(Vsn) ->
      Vsn.
  
  %% @doc given a list of package name version pairs, and a list of constraints
  %% return every member of that list that matches all constraints.
  
negative.code:             end
      end.
  
  %% @doc Parse a string version into a tuple based version
  -spec parse_version(raw_vsn() | vsn()) -> vsn().
  parse_version(RawVsn)
    when erlang:is_list(RawVsn);
  