anchor.diff:  expand_each_spec(Meta, [{Expr, _, Args} = H | T], Map, E, OriginalE) when is_atom(Expr) ->
     case validate_spec(Expr, Args) of
       {Key, Arg} ->
  -      {Value, EE} = expand_spec_arg(Arg, E),
  +      {Value, EE} = expand_spec_arg(Arg, E, OriginalE),
         validate_spec_arg(Meta, Key, Value, EE, OriginalE),
   
         case maps:get(Key, Map) of
  
positive.code:   case E of
      #{context := match} when Type == bitstring ->
        form_error(Meta, E, ?MODULE, {unaligned_bitstring_in_match, Expr});
      _ ->
        [Expr | Acc]
    end.
  
  
negative.code:       {binary, _, []} when EType == bitstring  ->
          case byte_parts(ELeft) of
            {ok, Parts} -> lists:reverse(Parts, Acc);
            error -> prepend_unless_bitstring_in_match(EType, Meta, ELeft, ERight, Acc, OriginalE)
          end;
        {bitstring, _, []} when EType == bitstring ->
          lists:reverse(element(3, ELeft), Acc);
        _ ->
          prepend_unless_bitstring_in_match(EType, Meta, ELeft, ERight, Acc, OriginalE)
      end,
  
    expand(BitstrMeta, Fun, T, EAcc, EE, alignment(Alignment, EAlignment), RequireSize);
  expand(BitstrMeta, Fun, [{_, Meta, _} = H | T], Acc, E, Alignment, RequireSize) ->
    {Expr, ES} = expand_expr(Meta, H, Fun, E),
    {EAcc, EAlignment} = wrap_expr(Expr, Acc),
    expand(BitstrMeta, Fun, T, EAcc, ES, alignment(Alignment, EAlignment), RequireSize);
  expand(Meta, Fun, [H | T], Acc, E, Alignment, RequireSize) ->
    {Expr, ES} = expand_expr(Meta, H, Fun, E),
    {EAcc, EAlignment} = wrap_expr(Expr, Acc),
    expand(Meta, Fun, T, EAcc, ES, alignment(Alignment, EAlignment), RequireSize).
  
  prepend_unless_bitstring_in_match(Type, Meta, Left, Right, Acc, E) ->
    Expr = {'::', Meta, [Left, Right]},
  