      \fitem{replace}{(t:tab, find:value, rep:value)}\label{fct:replace}
      returns a new tab in which a number of elements have been replaced
      by another. The argument \code{find} represents a sub-sequence to be
      replaced: if it is not a tab, then all the occurrences of this value
      at the top-level of \code{t} are replaced by \code{rep}:
      \begin{lstlisting}
            @replace([1, 2, 3, [2]], 2, 0]) ->[1, 0, 3, [2]]
      \end{lstlisting}
      If \code{find} is a tab, then the replacement is done on
      sub-sequence of \code{t}:
      \begin{lstlisting}
            @replace([1, 2, 3, 1, 2], [1, 2], 0) ->[0, 3, 0]
      \end{lstlisting}
      Note that the replacement is done eagerly: the first occurrence
      found is replaced and the replacement continue on the rest of the
      tab. Thus, there is no ambiguity in case of overlapping sub-sequences,
      only the first is replaced:
      \begin{lstlisting}
            @replace([1, 1, 1, 2], [1, 1], 0) ->[0, 1, 2]
      \end{lstlisting}
      If the \code{rep} argument is a tab, then it represents at
      sub-sequence to be inserted in place of the occurrences of
      \code{find}. So, if the replacement is a tab, it must be wrapped
      into a tab: 
      \begin{lstlisting}
            @replace([1, 2, 3], 2, [4,5]) ->[1, 4, 5, 3]
            @replace([1, 2, 3], 2, [[4, 5]]) ->[1, [4, 5], 3]
      \end{lstlisting}



      %%% -------------------------------------------------------

