anchor.diff:    capture(Meta, Expr, E);
   
   capture(Meta, {'__block__', _, _} = Expr, E) ->
  -  Message = "invalid args for &, block expressions are not allowed, got: ~ts",
  -  compile_error(Meta, ?key(E, file), Message, ['Elixir.Macro':to_string(Expr)]);
  +  form_error(Meta, ?key(E, file), ?MODULE, {block_expr_in_capture, Expr});
   
   capture(Meta, {Atom, _, Args} = Expr, E) when is_atom(Atom), is_list(Args) ->
     capture_import(Meta, Expr, E, is_sequential_and_not_empty(Args));
  
positive.code: is_sequential([{'&', _, [Int]} | T], Int) -> is_sequential(T, Int + 1);
  is_sequential([], _Int) -> true;
  is_sequential(_, _Int) -> false.
  
negative.code: args_from_arity(_Meta, A, _E) when is_integer(A), A >= 0, A =< 255 ->
    [{'&', [], [X]} || X <- lists:seq(1, A)];
  args_from_arity(Meta, A, E) ->
    form_error(Meta, ?key(E, file), ?MODULE, {invalid_arity_for_capture, A}).
  
  is_sequential_and_not_empty([])   -> false;
  is_sequential_and_not_empty(List) -> is_sequential(List, 1).
  