anchor.diff:          %% io:format("apply ~p ~p ~p~n", [M,F,A]),
           {ok, apply(M, F, A)}
       catch
  -	error:Kind when Kind == undef; Kind == function_clause ->
  -	    case erlang:get_stacktrace() of
  -		%% the first stack call should match MFA when `apply' fails because the function is undefined
  -		%% they won't match if the function is currently running and an error happens in the middle
  -		[MFA|_] -> undef;           % trapped successfully
  -		ST ->
  +        error:Kind when Kind == undef; Kind == function_clause ->
  +            case erlang:get_stacktrace() of
  +                %% the first stack call should match MFA when `apply' fails because the function is undefined
  +                %% they won't match if the function is currently running and an error happens in the middle
  +                [MFA|_] -> undef;           % trapped successfully
  +                ST ->
                       io:format("DONIT THE EXIT THING ~p~n", [Kind]),
                       exit({Kind, ST}) % some unrelated error, re-exit
  -	    end
  +            end
       end.
   
   get_superobject(Obj) ->
  
positive.code:         {ok, V} -> V;
          undef   ->
              case get_superobject(Obj) of
  		{ ok, Superobj } ->
  		    Superobj1 = set(Superobj, Field, Value),
                      Module:attr(Obj, set, super, Superobj1);
  		undef ->
  		    error(missing_attr_set, Field, Obj)
  	    end
      end.
  
  %%
  
negative.code:     Current = atom_to_list(Class) ++ ": " ++ Inspect,
  
      case get_superobject(Obj) of
          {ok, Superobj} ->
              inspect1(Superobj, Str ++ Current ++ " | ");
          undef ->
              Str ++ Current ++ ">"
      end.
  
  %% class(Obj) -> atom() = Class
  