anchor.diff:        Function :: fun((Index :: array_indx(), Type1) -> Type2).
   
   sparse_map(Function, Array=#array{size = N, elements = E, default = D})
  -  when is_function(Function, 2) ->
  +  when is_function(Function, 2), is_integer(N) ->
       if N > 0 ->
   	    A = Array#array{elements = []}, % kill reference, for GC
   	    A#array{elements = sparse_map_1(N-1, E, 0, Function, D)};
  
positive.code: 
  to_list(#array{size = 0}) ->
      [];
  to_list(#array{size = N, elements = E, default = D}) ->
      to_list_1(E, D, N - 1);
  to_list(_) ->
      erlang:error(badarg).
  
negative.code: 
  sparse_to_orddict(#array{size = 0}) ->
      [];
  sparse_to_orddict(#array{size = N, elements = E, default = D})
    when is_integer(N) ->
      I = N - 1,
      sparse_to_orddict_1(E, I, D, I);
  sparse_to_orddict(_) ->
  