anchor.diff:  %%-------------------------------------------------------------------------------------
   transform1(Xi, _P, _HD, HV) when is_list(Xi) orelse is_atom(Xi) ->
     case lists:keyfind(Xi, 2, HV) of
  -    {phi, Xi} = DimReplacingLocalVar ->
  +    {phi, Xi} = HDim ->
  +      %% Replace formal parameter of abstraction with context query of
  +      %% previously allocated hidden dimension
         %% XXX Re-introduce internal '?' (constant dimension query) in tcore?
  -      {'#', DimReplacingLocalVar};
  +      {'#', HDim};
       false ->
         Xi
     end.
  
positive.code: %%-------------------------------------------------------------------------------------
  transform1({dim, Xi}=Di, _P, HD, _HV) when is_list(Xi) orelse is_atom(Xi) ->
    case lists:keyfind(Xi, 3, HD) of
      {dim, _, Xi} = HiddenDimReplacingLocalDim ->
        HiddenDimReplacingLocalDim;
      false ->
        Di
    end;
  
negative.code:   transform1(E, root_expr_pos(), [], []).
  
  
  -spec transform1(AstIn :: term(), P :: pos(), HD, HV) -> AstOut :: term() when
      %% HD is the list of hidden dimensions allocated for replacing
      %% local dimensions in wheredim clauses
      HD :: [{dim, hidden_dim(), VarId}],
      %% HV is the list of hidden dimensions allocated for replacing
      %% formal parameters in abstractions
      HV :: [{phi, VarId}],
      VarId :: nonempty_string() | atom().
  
  %%------------------------------------------------------------------------------
  