anchor.diff:  		  "maximum allowed is ~w", [Arity,?MAX_ARGUMENTS]);
   %% --- patterns and guards ---
   format_error(illegal_pattern) -> "illegal pattern";
  -format_error(illegal_map_key) ->
  -    "illegal map key";
  -format_error({illegal_map_key_variable,K}) ->
  -    io_lib:format("illegal use of variable ~w in map",[K]);
  +format_error(illegal_map_key) -> "illegal map key in pattern";
   format_error(illegal_bin_pattern) ->
       "binary patterns cannot be matched in parallel using '='";
   format_error(illegal_expr) -> "illegal expression";
  
positive.code: is_pattern_expr_1({op,_Line,Op,A1,A2}) ->
      erl_internal:arith_op(Op, 2) andalso all(fun is_pattern_expr/1, [A1,A2]);
  is_pattern_expr_1(_Other) -> false.
  
  %% pattern_bin([Element], VarTable, Old, BinVarTable, State) ->
  %%           {UpdVarTable,UpdBinVarTable,State}.
  
negative.code: 	    % core and kernel
  	    foldl(fun
  		    ({bin_element,_,E,_,_},B) ->
  		    B andalso is_valid_map_key_value(E)
  		end,true,Es);
  	Val -> is_pattern_expr(Val)
      end.
  
  %% record_def(Line, RecordName, [RecField], State) -> State.
  