anchor.diff:                          {?MAX_SCORE, 1, construct_line_muta(fun erlamsa_generic:list_repeat/2, line_repeat), lr},
                           {?MAX_SCORE, 1, construct_line_muta(fun erlamsa_generic:list_perm/2, line_perm), lp}
                           ].
  -                        
   
   -spec default(list()) -> [{atom(), non_neg_integer()}].
   default(CustomMutas) -> [{Name, Pri} || {_, Pri, _, Name, _Desc} <- mutations(CustomMutas)].
  
positive.code:         fun (Cs) -> string_delimeter_mutate(Cs, length(Cs), 0)
          end,
          ascii_delimeter).
  
  
  %%
  
negative.code:                         {?MAX_SCORE, 1, fun sed_fuse_next/2, fn, "likely clone data between similar positions"},
                          {?MAX_SCORE, 2, fun sed_fuse_old/2, fo, "fuse previously seen data elsewhere"},
                          {?MAX_SCORE, 2, fun length_predict/2, len, "predicted length mutation"},
                          {?MAX_SCORE, 2, fun base64_mutator/2, b64, "try mutate base64-encoded block"},
                          {?MAX_SCORE, 0, fun nomutation/2, nil, "no mutation will occur (debugging purposes)"}
                          |CustomMutas].
  
  %% convert mutas list to standalone format     
  %% {Max_Score, Pri, F, Name, Desc} -> {Score, Val, F, Name}                    
  -spec mutas_list(list()) -> [mutation()].
  mutas_list(Lst) ->
      lists:map(fun({Score, Pri, F, Name, _Desc}) -> {Score, Pri, F, Name} end, Lst).
  
  -spec inner_mutations() -> [mutation()].
  %% JSON/XML inner mutations
  