anchor.diff:  % this modules redefine bitwise operators for bitstream, instead of only on 8 bits by default
   
   -export([bs_reverse/1,bs_not/1]).
  +-export([bs_true/1,bs_false/1,bs_random/1]).
   -export([bs_and/2,bs_or/2,bs_xor/2,bs_sl/2,bs_sr/2]).
  --export([bs_show/1,bs_autotest/1]).
  +-export([bs_show/1,bs_autotest/1,bs_oper_boolalg_test/2,bs_oper_boolsimplif_test/3]).
   
   %%existing bitstring operators : 
   %%Signature                                                Definition
  
positive.code: 	true = <<(Num band AndOp):8>> == bs_and(Bin,<<AndOp:8>>),
  	%% Or
  	OrOp = random:uniform(255),
  	io:fwrite("| ~8s ~8.2B ||  ~8.2B  ||  ~8s  |~n",["Or",OrOp,Num bor OrOp,bs_to_string( bs_and(Bin,<<OrOp:8>>))]),
  	true = <<(Num bor OrOp):8>> == bs_or(Bin,<<OrOp:8>>),
  	%% Xor	
  	XorOp = random:uniform(255),
  	io:fwrite("| ~8s ~8.2B ||  ~8.2B  ||  ~8s  |~n",["Xor",XorOp,Num bxor XorOp,bs_to_string( bs_and(Bin,<<XorOp:8>>))]),
  	true = <<(Num bxor XorOp):8>> == bs_and(Bin,<<XorOp:8>>),
  
  	ok.
  
  bs_oper_bigbits_test(Bin) ->
  	io:fwrite("Bin : ~w ~n", [Bin]),
  	io:fwrite("TODO : find an set of binary operations that we can easily test having only the input value~n",[]).
  
  
  
  
  
  
negative.code: 
  
  % bitshift right
  bs_sr(<<B/bits>>,N) when N >= 0 -> bs_reverse(bs_sl(bs_reverse(<<B/bits>>),N));
  %WRONG
  %bs_sr(<<I:1/bits,B/bits>>,N) when N < (bit_size(B)+1) -> bs_sr(<<0:1,I:1,B/bits>>,N-1);
  %bs_sr(<<B/bits>>,N) when N >= (bit_size(B)) -> <<0:(bit_size(B))>>;
  bs_sr(<<B/bits>>,N) when N < 0 -> bs_sl(<<B/bits>>, -1 * N).
  
  
  