anchor.diff:  	    ok
       catch
   	{error,Reason} ->
  -	    error({type,Reason,S});
  +	    Reason;
   	{asn1_class,_ClassDef} ->
   	    {asn1_class,Name};
   	{asn1_param_class,_} ->
  
positive.code: 	    end
      catch
  	{error,Reason} ->
  	    error({type,Reason,NewS});
  	{asn1_class,_ClassDef} ->
  	    {asn1_class,Name};
  	pobjectsetdef ->
  
negative.code: checko(S0,[Name|Os],Acc,ExclO,ExclOS) ->
      Item = asn1_db:dbget(S0#state.mname, Name),
      S = S0#state{error_context=Item},
      try checko_1(S, Item, Name, ExclO, ExclOS) of
  	{NewExclO,NewExclOS} ->
  	    checko(S, Os, Acc, NewExclO, NewExclOS)
      catch
  	throw:{error, Error} ->
  	    checko(S, Os, [Error|Acc], ExclO, ExclOS)
      end;
  checko(_S,[],Acc,ExclO,ExclOS) ->
      {lists:reverse(Acc),lists:reverse(ExclO),lists:reverse(ExclOS)}.
  
  checko_1(S, #typedef{typespec=TS}=Object, Name, ExclO, ExclOS) ->
      NewS = S#state{type=Object,tname=Name},
      O = check_object(NewS, Object, TS),
      NewObj = Object#typedef{checked=true,typespec=O},
      asn1_db:dbput(NewS#state.mname, Name, NewObj),
      case O of
  	#'Object'{gen=true} ->
  	    {ExclO,ExclOS};
  	#'Object'{gen=false} ->
  	    {[Name|ExclO],ExclOS};
  	#'ObjectSet'{gen=true} ->
  	    {ExclO,ExclOS};
  	#'ObjectSet'{gen=false} ->
  	    {ExclO,[Name|ExclOS]}
      end;
  checko_1(S, #pobjectdef{}=PObject, Name, ExclO, ExclOS) ->
      NewS = S#state{type=PObject,tname=Name},
      PO = check_pobject(NewS, PObject),
      NewPObj = PObject#pobjectdef{def=PO},
      asn1_db:dbput(NewS#state.mname, Name, NewPObj),
      {[Name|ExclO],ExclOS};
  checko_1(S, #pvaluesetdef{}=PObjSet, Name, ExclO, ExclOS) ->
      NewS = S#state{type=PObjSet,tname=Name},
      POS = check_pobjectset(NewS, PObjSet),
      asn1_db:dbput(NewS#state.mname, Name, POS),
      {ExclO,[Name|ExclOS]}.
  
  check_class(S,CDef=#classdef{checked=Ch,name=Name,typespec=TS}) ->
      case Ch of
  