anchor.diff:  
     %% Expand the first argument to pattern match on all fields so that they are
     %% available in the functions scope.
  -  TypeTupleAst = type_tuple(Module, AllFieldsAsts, [], match),
  +  TypeTupleAst = type_tuple(Module, Anno, AllFieldsAsts, [], match),
     MethodsAsts1 = lists:map( fun(F) ->
                                   expand_first_argument(F, TypeTupleAst)
                               end
  
positive.code: accessor_function(Typename, FieldAst) ->
    Anno         = cerl:get_ann(FieldAst),
    FieldName    = cerl:var_name(FieldAst),
    TupleAst     = type_tuple(Typename, [FieldAst], [], match),
    AccessorName = field_fun_name(FieldName),
    ClauseAst    = cerl:ann_c_clause(Anno, [TupleAst], FieldAst),
    {Vars, CaseAst} = case_from_clauses(Anno, [ClauseAst]),
  
negative.code:   ok     = clj_module:ensure_loaded(Module, file_from(Env)),
  
    %% Attributes
    Attributes = [ { cerl:ann_c_atom(Anno, behavior)
                   , cerl:ann_abstract(Anno, [sym_to_kw(ProtocolName)])
                   }
                   || #{type := ProtocolName} <- ProtocolsExprs
                 ],
  
    %% Functions
    {AllFieldsAsts, State} = pop_ast( lists:foldl(fun ast/2, State0, FieldsExprs)
  