anchor.diff:                  || << MantissaDigit >> <= MantissaBytes],
       % If the number is negative, you do the same, but subsequently the bits are
       % inverted.
  +%io:format(user, "MantissaBytes ~p~nMantissa ~p~n", [MantissaBytes, Mantissa]),
       << Exp/integer >> = << (bnot E)/integer >>,
       [$- | ?TO_STR(Mantissa, Exp - 128 - 65)].
   
  
positive.code:            Mantissa = [lists:flatten(io_lib:format("~2..0B", [MantissaDigit - 1]))
                         || << MantissaDigit >> <= MantissaBytes],
             % To calculate the decimal exponent, add 65 to the base-100 exponent
             ?TO_STR(Mantissa, E - 65);
         true -> "0"
      end;
  
negative.code: ins_dp([H|T], DP) when DP > 0 -> [H | ins_dp(T, DP-1)];
  ins_dp(M, DP) when DP =:= -1 -> ins_dp(["0"|M], DP+1);
  ins_dp(M, DP) when DP < 0 -> ins_dp(["00"|M], DP+1).
  
  %% - % strip all spaces from both ends
  %% - to_num([$ |_] = Num) -> to_num(string:strip(Num));
  %% - to_num("") -> exit(invalid_number);
  %% - to_num("-") -> exit(invalid_number);
  %% - to_num("0") -> <<1,128>>;
  %% - to_num(Num) ->
  %% -     case Num of
  %% -         % -ve number
  %% -         [$-|Rest] ->
  %% -             {E, Digits} = expo_digits(Rest),
  %% -             << length(Num) + 1
  %% -                , 0:1/integer-unit:1
  %% -                , bnot (E+128+65):7/integer-unit:1
  %% -                , list_to_binary(Digits)/bytes
  %% -             >>;
  %% -         % +ve number
  %% -         Num ->
  %% -             {E, Digits} = expo_digits(Num),
  %% -             << length(Num) + 1
  %% -                , 1:1/integer-unit:1
  %% -                , (E+128+65):7/integer-unit:1
  %% -                , list_to_binary(Digits)/bytes
  %% -             >>
  %% -     end.
  %% - 
  %% - tidy(Num) ->
  %% -     % leading and trailing spaces and and then leading zeros removed
  %% -     % except for < 1 numbers where 0. is added
  %% -     {Dot, Num2} =
  %% -         case string:strip(string:strip(Num), left, $0) of
  %% -             [$.|T] -> {true,[$0,$.|T]};
  %% -             Num1 -> {false,Num1}
  %% -         end,
  %% -     .
  %% - % trailing zero removed only if decimal
  %% - tidy(Dot,[],Tidy) ->
  %% -     if Dot -> string:strip(Tidy, right, $0);
  %% -        true -> Tidy
  %% -     end;
  %% - % 0.
  %% - tidy(_,[$0,$.|Num],Tidy) -> tidy(true,Num,[$0,$.|Tidy]);
  %% - % has dot
  %% - tidy(false,[$0|Num],Tidy) -> tidy(Dot,Num,[D|Tidy]);
  %% - tidy(false,[D|Num],Tidy) -> tidy(Num,[D|Tidy]);
  %% - 
  %% - 
  %% - expo_digits(Num) ->
  %% -     Num1 = 
  %% -     expo_digits({0,[]}, Num).
  %% - expo_digits({E,Num},[]) -> {E, Num};
  %% - % number with leading decimal and zeros (in pair)
  %% - expo_digits({E,Acc},[$0,$.,$0,$0|Rest]) ->
  %% -     expo_digits({E+1,Acc},[$0,$.|Rest]);
  %% - % number with leading decimal
  %% - expo_digits({E,Acc},[$0,$.|Rest]) ->
  %% -     expo_digits({E
  %% -                  , Acc ++
  %% -                  if (length(Rest) rem 2) /= 0 ->
  %% -                         Rest++[$0];
  %% -                     true -> Rest
  %% -                  end
  %% -                 },[]);
  %% - 
  %% - expo_digits({E,Acc},[$.|Rest]) -> {E,lists:reverse(Acc)++Rest};
  %% - expo_digits({E,Acc},[D|Num]) -> expo_digits({E+1,[D|Acc],Num).
  %% - 
  %% - % Digits
  %% - digits([]) -> [];
  %% - digits(Num)
  %% -   when (length(Num) rem 2) /= 0 -> digits([$0|Num]);
  %% - digits([N1,N2|Num]) -> [[N1,N2]|digits(Num)].
  
  -spec from_dts(Date | TimeStamp | TimeStampWithZone) ->
          {{year(),month(),day()}, {hour(),minute(),second()}}
  