anchor.diff:      is_list(X);
   check_term_predef(proplist, X) ->
       case X of
  -        ?P(Y) when is_list(Y) ->
  +        {'#P', Y} when is_list(Y) ->
               is_proplist(Y);
           _ ->
               false
       end;
   check_term_predef(string, X) ->
       case X of
  -        ?S(Y) when is_list(Y) ->
  +        {'#S', Y} when is_list(Y) ->
               is_string(Y);
           _ ->
               false
  
positive.code:     is_list(X) andalso check_term_attrlist(list,Attrs,X);
  check_term_predef({proplist,Attrs}, X) ->
      case X of
          ?P(Y) when is_list(Y) ->
              is_proplist(Y) andalso check_term_attrlist(proplist,Attrs,X);
          _ ->
              false
      end;
  check_term_predef({string,Attrs}, X) ->
      case X of
          ?S(Y) when is_list(Y) ->
              is_string(Y) andalso check_term_attrlist(string,Attrs,X);
          _ ->
              false
  
negative.code: 
  
  %% is_proplist
  is_proplist([P|T]) when tuple_size(P) =:= 2 ->
      is_proplist(T);
  is_proplist([]) -> true;
  is_proplist(_)  -> false.
  