anchor.diff:  
   -module('List').
   -export([call/4]).
  +-include("../core/reia_types.hrl").
   
   call(List, '[]', {Index}, _Block) ->
     if
  
positive.code:   lists:flatten(["[", string:join([convert(Elem) || Elem <- List], ","), "]"]);
  
  call(List, reverse, _Args, _Block) ->
    lists:reverse(List).
  
  replace(List, Index, Value) ->
    replace(List, 0, Index, Value).
  
negative.code: replace([Head|Tail], N, Index, Value) ->
    [Head|replace(Tail, N + 1, Index, Value)].
  
  convert(Value) -> reia_dispatch:call(Value, to_s, [], nil).
  
  join_list(Result, [Elem], _) ->
    lists:reverse([element_to_string(Elem)|Result]);
  join_list(Result, [Elem|Rest], Separator) ->
    join_list([Separator,element_to_string(Elem)|Result], Rest, Separator).
    
  element_to_string(Elem) ->
    reia_dispatch:call(Elem, to_s, {}, nil).