anchor.diff:     b_abs_can_access_formal_params_of_outer_b_abs(),
      b_abs_can_access_local_dims_of_outer_wheredim(), %% ... differently from upstream TL
      b_abs_can_access_formal_params_of_outer_b_abs_and_local_dims_of_outer_wheredim(),
  -   b_abs_cannot_access_dims_in_application_context(),
  -   b_abs_cannot_access_local_dims_in_application_context(),
  -   %%
      b_abs_can_use_argument_for_querying_creation_context(),
      b_abs_can_use_argument_for_querying_creation_context2(),
  +   b_abs_cannot_access_dims_in_application_context(),
      %%
      creation_of_b_abs_in_multiple_contexts_plays_nicely_w_cache()
     ].
  
positive.code:   {foreach, fun setup/0, fun cleanup/1,
     [ ?_assertMatch({48,_}, eval(S)) ]}.
  
  b_abs_cannot_access_dims_in_application_context() ->
    {where, "F", [FnF]} = s("F where fun F.x = x - #.t end"),
    T = {where, {'@', s("F.46"), s("[t <- 1]")}, [FnF]},
    %% "F.46 @ [t <- 1] where fun F.x = x - #.t end end"
    {foreach, fun setup/0, fun cleanup/1,
     [ ?_assertMatch({[{dim,"t"}],_}, eval(T)) ]}.
  
  b_abs_cannot_access_local_dims_in_application_context() ->
    S =
      "(F.46 where dim t <- 1 end)
      where
        fun F.x = x - #.t
      end",
    {where, {where, {fn_call, "F", [{b_param, 46}]}, _}, _} = s(S),
    {foreach, fun setup/0, fun cleanup/1,
     [ ?_assertMatch({[{dim,"t"}],_}, eval(S)) ]}.
  
  b_abs_can_use_argument_for_querying_creation_context() ->
    DimT = {dim,"t"},
    %% XXX How to create from the parser a base abstraction with frozen dims?
  
negative.code:   [
     v_fun_w_two_formal_params_is_represented_as_nested_v_abs_and_v_apply(),
     %%
     v_abs_can_access_dims_in_application_context()
    ].
  
  fn_test_() ->
  