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_reverse/1,bs_not/1,bs_to_string/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,bs_oper_boolalg_test/2,bs_oper_boolsimplif_test/3]).
  
positive.code: bs_reverse(<<I:1,B/bits>> ) -> << ( bs_reverse(B))/bits,I:1 >>;
  bs_reverse(<<>>) -> <<>>.
  
  %TODO :improve performance and code design... same with bitwise comprehension if possible ? or more arithmetic ?
  % unary bitwise not
  bs_not(<<I:1/bits,B/bits>>) when I == <<0:1>> -> <<1:1,(bs_not(B))/bits >>;
  
negative.code: 	XorOp = random:uniform(255),
  	io:fwrite("| ~8s ~8.2B ||  ~8.2B  ||  ~8s  |~n",["Xor",XorOp,Num bxor XorOp,bs_to_string( bs_xor(Bin,<<XorOp:8>>))]),
  	true = <<(Num bxor XorOp):8>> == bs_xor(Bin,<<XorOp:8>>),
  	%%First true bit
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8s  |~n",["FTB","???",bs_to_string( bs_getfirst_true(Bin))]),
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8.10B  |~n",["FTB indx","???",bs_getfirst_true_index(Bin)]),
  	%%First false bit
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8s  |~n",["FFB","???",bs_to_string( bs_getfirst_false(Bin))]),
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8.10B  |~n",["FFB indx","???",bs_getfirst_false_index(Bin)]),
  	%%Last true bit
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8s  |~n",["LTB","???",bs_to_string( bs_getlast_true(Bin))]),
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8.10B  |~n",["LTB indx","???",bs_getlast_true_index(Bin)]),
  	%%Last false bit
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8s  |~n",["LFB","???",bs_to_string( bs_getlast_false(Bin))]),
  	io:fwrite("| ~8s          ||  ~8s  ||  ~8.10B  |~n",["LFB indx","???",bs_getlast_false_index(Bin)]),
  
  	ok.
  
  