anchor.diff:                        catch
                             {subst_error, Description} ->
                                 ct:pal("substitution error ~w in ~w:~w ~w", [Description, Module, FunName, AFunSpec]),
  -                              exit(foobar);
  +                              throw(subst_error);
                             {parse_error, Description} ->
                                 ct:pal("parse error ~w in ~w:~w ~w", [Description, Module, FunName, AFunSpec]),
  -                              exit(foobar)
  +                              throw(parse_error)
                         end;
                     _ ->
                         TheFunSpec
  
positive.code:                     {ok, {Module, [{abstract_code, {_AbstVersion, AbstractCode}}]}}
                      = beam_lib:chunks(FileName, [abstract_code]),
                      lists:foldl(fun (Chunk, InnerParseState) ->
                                          parse_chunk(Chunk, Module, InnerParseState)
                                  end, ParseState, AbstractCode)
              end
      end.
  
  
  -spec parse_chunk/3 :: (any(), module(), tester_parse_state:state()) ->
      tester_parse_state:state().
  
negative.code:         parse_type(Type, Module, ParseState)
      catch
          unkown_type ->
              ct:pal("~p:~p: failed to parse type ~p", [Module, Info, Type]),
              exit(foobar)
          error:Reason ->
              ct:pal("~p:~p: failed to parse type ~p (error:~p)", [Module, Info, Type, Reason]),
              exit(foobar)
      end.
  
  