anchor.diff:  
   %% clojerl.ICounted
   
  -count(#{?TYPE := ?M, array := Array, index := Index}) ->
  -  array:size(Array) - Index.
  +count(#{?TYPE := ?M, size := Size, index := Index}) ->
  +  Size - Index.
   
   %% clojerl.IColl
   
  
positive.code: 
  %% clojerl.IEquiv
  
  equiv( #{?TYPE := ?M, array := X}
       , #{?TYPE := ?M, array := Y}
       ) ->
    case array:size(X) =:= array:size(Y) of
      true ->
        X1 = array:to_list(X),
        Y1 = array:to_list(Y),
  
negative.code: 
  %% clojerl.IChunkedSeq
  
  chunked_first(#{?TYPE := ?M, array := Array, size := Size, index := Index}) ->
    End  = lists:min([Size, Index + ?CHUNK_SIZE]),
    List = [array:get(I, Array) || I <- lists:seq(Index, End - 1)],
    'clojerl.TupleChunk':?CONSTRUCTOR(list_to_tuple(List)).
  
  chunked_next(#{?TYPE := ?M, array := Array, size := Size, index := Index}) ->
    End = lists:min([Size, Index + ?CHUNK_SIZE]),
    case End < Size of
      true  -> ?CONSTRUCTOR(Array, Index + ?CHUNK_SIZE);
      false -> ?NIL
    end.
  