anchor.diff:      t_nonempty_list(Es);
   t_type([#xmlElement{name = tuple, content = Es}]) ->
       t_tuple(Es);
  -t_type([#xmlElement{name = map}]) ->
  -    t_map();
  +t_type([#xmlElement{name = map, content = Es}]) ->
  +    t_map(Es);
  +t_type([#xmlElement{name = map_field, content = Es}]) ->
  +    t_map_field(Es);
   t_type([#xmlElement{name = 'fun', content = Es}]) ->
       ["fun("] ++ t_fun(Es) ++ [")"];
   t_type([E = #xmlElement{name = record, content = Es}]) ->
  
positive.code:     ot_nonempty_list(Es);
  ot_type([#xmlElement{name = tuple, content = Es}]) ->
      ot_tuple(Es);
  ot_type([#xmlElement{name = 'fun', content = Es}]) ->
      ot_fun(Es);
  ot_type([#xmlElement{name = record, content = Es}]) ->
  
negative.code: 
  ot_tuple(Es) ->
      {type,0,tuple,[ot_utype_elem(E) || E <- Es]}.
  
  ot_map(Es) ->
      {type,0,map,[ot_utype_elem(E) || E <- Es]}.
  
  ot_map_field(Es) ->
      {type,0,map_field_assoc,[ot_utype_elem(E) || E <- Es]}.
  
  ot_fun(Es) ->
      Range = ot_utype(get_elem(type, Es)),
  