anchor.diff:  
   map_new() -> emptymap.
   
  -map_get(FK, {map, {K,V}, L, R, D}) ->
  +map_get(FK, {map, {K,V}, L, R, _}) ->
       case comp(FK, K) of
           eq -> {ok, V};
           lt -> map_get(FK, L);
  
positive.code:     end;
  map_put(NK,NV, emptymap) -> {map, {NK, NV}, emptymap, emptymap, 1}.
  
  
  
  map_rotate({map, KV, L, R, _}) ->
      LD = map_depth(L),
      RD = map_depth(R),
  
negative.code:             if
                  LLD > LRD -> % 左の木の左が深いなら左の木を上げる
                      NR = map_rotate({map, KV, LR, R, 0}),
                      map_rotate({map, KVL, LL, NR, 0});
                  true -> % 左の木の右が深いなら左の木の右を上げる
                      {_, KVLR, LRL, LRR, _} = LR,
                      NR = map_rotate({map, KV, LRR, R, 0}),
                      NL = map_rotate({map, KVL, LL, LRL, 0}),
                      map_rotate({map, KVLR, NL, NR, 0})
              end;
          X when X < -1 -> % 右の木が深過ぎ
              {_, KVR, RL, RR, _} = R,
  