anchor.diff:      %% ].
   
       %% [ [{a,b}, {b,a}] ].
  +
  +    [
  +      [{a,b}, {a,c}], [],
  +      [{b,a}, {b,c}], [],
  +      [{c,b}, {c,a}], [],
  +
  +      [{b,a}, {c,a}], [],
  +      [{a,b}, {c,b}], [],
  +      [{b,c}, {a,c}]
  +    ].
   
       %% [ [{a,b},{b,c},{c,a}],
       %%   [{a,b}, {b,a}, {a,c},{c,a}] ].
  
positive.code:                             private_projections_are_stable(Namez, DoIt)
                      end, false, lists:seq(0, MaxIters)),
             io:format(user, "\nSweet, private projections are stable\n", []),
             io:format(user, "\t~p\n", [get(stable)]),
             io:format(user, "Rolling sanity check ... ", []),
             MaxFiles = 1*1000,
             PrivProjs = [{Name, begin
  
negative.code:     %%
      FLUs = [FLU || {FLU,_Pid} <- Namez],
      U_UPI_Rs = lists:usort([UPI++Rep ||
                               {_Nm,{_Epoch,UPI,Rep,_Dn,_W,InnerP}} <- Private2]),
      FLU_uses = [{Name, Epoch} ||
                     {Name,{Epoch,_UPI,Rep,_Dn,_W,InnerP}} <- Private2],
      Witnesses = hd([Ws ||
                     {_Name,{_Epoch,_UPI,Rep,_Dn,Ws,InnerP}} <- Private2]),
      HaveWitnesses_p = Witnesses /= [],
      Unanimous_with_all_peers_p =
          lists:all(fun({FLU, UsesEpoch}) ->
                     WhoInEpoch = [Name ||
                                    {Name,{Epoch,_UPI,_Rep,_Dn,_W,I_}}<-Private2,
                                    Epoch == UsesEpoch],
                     UPI_versions = [UPI ||
                                 {_Name,{Epoch,UPI,_Rep,_Dn,_W,I_}}<-Private2,
                                 Epoch == UsesEpoch],
                     UPI_versions == [ [] ] % This FLU in minority partition
                     orelse
                     (length(lists:usort(UPI_versions)) == 1
                      andalso
                      (lists:sort(hd(UPI_versions)) == lists:sort(WhoInEpoch)
                       orelse
                       (HaveWitnesses_p andalso
                        lists:sort(hd(UPI_versions)) == lists:sort(WhoInEpoch--Witnesses))))
                    end, FLU_uses),
      %% io:format(user, "\nPriv1 ~P agree ~p\n", [lists:sort(Private1), 10, Unanimous_with_all_peers_p]),
  
      %%io:format(user, "U_UPI_Rs ~p\n", [U_UPI_Rs]),
      %%io:format(user, "FLUs ~p\n", [FLUs]),
      %%io:format(user, "Unanimous_with_all_peers_p ~p\n", [Unanimous_with_all_peers_p]),
      Flat_U_UPI_Rs = lists:flatten(U_UPI_Rs),
      Private1 == Private2 andalso
          %% If not disjoint, then a flu will appear twice in flattented U_UPIs.
          lists:sort(Flat_U_UPI_Rs) == lists:usort(Flat_U_UPI_Rs) andalso
          %% Another property that we want is that for each participant
          %% X mentioned in a UPI or Repairing list of some epoch E that
          %% X is using the same epoch E.
  