anchor.diff:    Tuple   = {Name, Arity},
     HasBody = Clauses =/= [],
   
  +  if
  +    Defaults > 0 ->
  +      ets:insert(Defs, {{default, Name}, Arity, Defaults});
  +    true ->
  +      ok
  +  end,
  +
     MaxDefaults =
       case ets:take(Defs, {def, Tuple}) of
         [{_, StoredKind, StoredMeta, StoredFile, StoredCheck,
  
positive.code:         (Check and StoredCheck) andalso
            check_valid_clause(Meta, File, Name, Arity, Kind, Data, StoredMeta, StoredFile),
          check_valid_defaults(Meta, File, Name, Arity, Kind, Defaults, StoredDefaults, LastDefaults, LastHasBody),
          {max(Defaults, StoredDefaults), HasBody, Defaults};
        [] ->
          {Defaults, HasBody, Defaults}
      end,
  
    Check andalso ets:insert(Data, {?last_def, Tuple}),
    ets:insert(Defs, [{{clauses, Tuple}, Clause} || Clause <- Clauses]),
    ets:insert(Defs, {{def, Tuple}, Kind, Meta, File, Check, MaxDefaults}).
  
  %% Handling of defaults
  
  
negative.code: format_error({no_module, {Kind, Name, Arity}}) ->
    io_lib:format("cannot define function outside module, invalid scope for ~ts ~ts/~B", [Kind, Name, Arity]);
  
  format_error({defs_with_defaults, Kind, Name, Arity, A}) when Arity > A ->
    io_lib:format("~ts ~ts/~B defaults conflicts with ~ts/~B",
      [Kind, Name, Arity, Name, A]);
  
  format_error({defs_with_defaults, Kind, Name, Arity, A}) when Arity < A ->
    io_lib:format("~ts ~ts/~B conflicts with defaults from ~ts/~B",
      [Kind, Name, Arity, Name, A]);
  
  format_error({clauses_with_defaults, {Kind, Name, Arity}}) ->
    io_lib:format(""
  