anchor.diff:             ,cvmfs_lease_path_util:are_overlapping(Path1, Path2)).
   
   % Test cases
  -overlap_test() ->
  +qc_overlap_test() ->
       ?assertEqual(true, proper:quickcheck(prop_are_overlapping())).
  +
  +% Test cases
  +spec_overlap_test() ->
  +    ?assert(cvmfs_lease_path_util:are_overlapping(<<"abc/def">>, <<"abc">>)),
  +    ?assert(cvmfs_lease_path_util:are_overlapping(<<"abc">>, <<"abc/def">>)),
  +    ?assertNot(cvmfs_lease_path_util:are_overlapping(<<"abcdef">>, <<"abc">>)),
  +    ?assertNot(cvmfs_lease_path_util:are_overlapping(<<"abc">>, <<"abcdef">>)),
  +    ?assertNot(cvmfs_lease_path_util:are_overlapping(<<"abc/def">>, <<"abc/de">>)),
  +    ?assertNot(cvmfs_lease_path_util:are_overlapping(<<"abc/de">>, <<"abc/def">>)),
  +    ?assertNot(cvmfs_lease_path_util:are_overlapping(<<"abc/def">>, <<"ab">>)),
  +    ?assertNot(cvmfs_lease_path_util:are_overlapping(<<"ab">>, <<"abc/def">>)).
  +
  
positive.code: -include_lib("proper/include/proper.hrl").
  -include_lib("eunit/include/eunit.hrl").
  
  -export([all/0, qc_path_overlap_test/1]).
  
  %% Tests description
  
  all() ->
      [qc_path_overlap_test].
  
  qc_path_overlap_test(_Config) ->
      ok = eunit:test(?MODULE).
  
  %% Test cases
  
negative.code: ne_binary_pair() ->
      ?LET({B1, B2},
           {non_empty_binary(), non_empty_binary()},
           proper_types:oneof([{<<B1/binary,"/",B2/binary>>, B1} ,{B1, <<B1/binary,"/",B2/binary>>}])).
  
  %% Two paths of the form P2 and P2P1 (e.g. foo and foo/bar) overlap
  prop_are_overlapping() ->
  