anchor.diff:  parse_version(Vsn)
     when erlang:is_tuple(Vsn) ->
       Vsn.
  +
  +%% @doc check that a specified constraint is a valid constraint.
  +-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.
  +
   
   %% @doc given a list of package name version pairs, and a list of constraints
   %% return every member of that list that matches all constraints.
  
positive.code:             end
      end.
  
  %% Parse a string version into a tuple based version
  -spec parse_version(raw_vsn() | vsn()) -> vsn().
  parse_version(RawVsn)
    when erlang:is_list(RawVsn);
  
negative.code:     Pkg;
  dep_pkg(Pkg) when is_atom(Pkg) orelse is_binary(Pkg) ->
      Pkg.
  
  -spec add_constraint(pkg_name(), vsn(), [constraint()],constraint()) -> ordered_constraints().
  add_constraint(SrcPkg, SrcVsn, PkgsConstraints, PkgConstraint) ->
  