anchor.diff:  to_expr([binary|Segs], L, Vt, St0) ->
       {Esegs,St1} = to_bitsegs(Segs, L, Vt, St0),
       {{bin,L,Esegs},St1};
  +to_expr([map|Pairs], L, Vt, St0) ->
  +    {Eps,St1} = to_map_pairs(Pairs, map_field_assoc, L, Vt, St0),
  +    {{map,L,Eps},St1};
  +to_expr([mref,Map,K], L, Vt, St) ->
  +    to_expr([call,?Q(maps),?Q(get),K,Map], L, Vt, St);
  +to_expr([mset,Map|Pairs], L, Vt, St0) ->
  +    {Em,St1} = to_expr(Map, L, Vt, St0),
  +    {Eps,St2} = to_map_pairs(Pairs, map_field_assoc, L, Vt, St1),
  +    {{map,L,Em,Eps},St2};
  +to_expr([mupd,Map|Pairs], L, Vt, St0) ->
  +    {Em,St1} = to_expr(Map, L, Vt, St0),
  +    {Eps,St2} = to_map_pairs(Pairs, map_field_exact, L, Vt, St1),
  +    {{map,L,Em,Eps},St2};
  +to_expr(['map-get',Map,K], L, Vt, St) ->
  +    to_expr([mref,Map,K], L, Vt, St);
  +to_expr(['map-set',Map|Ps], L, Vt, St) ->
  +    to_expr([mset,Map|Ps], L, Vt, St);
  +to_expr(['map-update',Map|Ps], L, Vt, St) ->
  +    to_expr([mupd,Map|Ps], L, Vt, St);
   %% Core closure special forms.
   to_expr([lambda,As|B], L, Vt, St0) ->
       {Ecl,St1} = to_fun_cl([As|B], L, Vt, St0),
  
positive.code:     Leg = from_eq_tests(Eqt),
      {[Lh,['when'|Leg ++ Lg]|Lb],Vt3,St3}.
  
  from_cls(Fun, Vt0, St0, [C]) ->
      {Lc,Vt1,St1} = Fun(C, Vt0, St0),
      {[Lc],Vt1,St1};
  
negative.code: from_bitseg_type(default) -> [];
  from_bitseg_type(Ts) ->
      map(fun ({unit,U}) -> [unit,U]; (T) -> T end, Ts).
  
  %% from_map_pairs(MapFields, VarTable, State) -> {Pairs,VarTable,State}.
  
  from_map_pairs([{_,_,Key,Val}|Ps], Vt0, St0) ->
      {Lk,Vt1,St1} = from_expr(Key, Vt0, St0),
      {Lv,Vt2,St2} = from_expr(Val, Vt1, St1),
      {Lps,Vt3,St3} = from_map_pairs(Ps, Vt2, St2),
      {[Lk,Lv|Lps],Vt3,St3};
  from_map_pairs([], Vt, St) -> {[],Vt,St}.
  
  %% split_map_pairs(MapFields) -> {ExactFields,AssocFields}.
  
  split_map_pairs(Ps) ->
      Split = fun ({map_field_exact,_,_,_}=F, {Es,As}) -> {[F|Es],As};
                  ({map_field_assoc,_,_,_}=F, {Es,As}) -> {Es,[F|As]}
              end,
      lists:foldr(Split, {[],[]},Ps).
  
  new_from_var(#from{vc=C}=St) ->
      V = list_to_atom(lists:concat(["---",C,"---"])),
  