anchor.diff:    {State1, CList} = handle_clauses_1(Clauses, TopVar, Arg, DefinedVars,
   				     State, SubtrTypeList, []),
     {NewCs, NewState} =
  -    case Action of
  -      none ->
  -	if CList =:= [] -> throw(error);
  -	   true -> {CList, State1}
  -	end;
  -      _ ->
  -	try
  -	  {State2, ActionVar} = traverse(Action, DefinedVars, State1),
  -	  TmpC = mk_constraint(TopVar, eq, ActionVar),
  -	  ActionCs = mk_conj_constraint_list([state__cs(State2),TmpC]),
  -	  {[ActionCs|CList], State2}
  -	catch
  -	  throw:error ->
  -	    if CList =:= [] -> throw(error);
  -	       true -> {CList, State1}
  -	    end
  -	end
  +    if CList =:= [] -> throw(error);
  +       true -> {CList, State1}
       end,
     OldCs = state__cs(State),
     NewCList = mk_disj_constraint_list(NewCs),
  
positive.code: 	  end;
  	_ -> {State, t_from_term(cerl:concrete(Tree))}
        end;
      module ->
        Defs = cerl:module_defs(Tree),
        Funs = [Fun || {_Var, Fun} <- Defs],
        Vars = [Var || {Var, _Fun} <- Defs],
        DefinedVars1 = add_def_list(Vars, DefinedVars),
        State1 = state__store_funs(Vars, Funs, State),
        FoldFun = fun(Fun, AccState) ->
  		    {S, _} = traverse(Fun, DefinedVars1,
  				      state__new_constraint_context(AccState)),
  		    S
  		end,
        lists:foldl(FoldFun, State1, Funs);
      primop ->
        case cerl:atom_val(cerl:primop_name(Tree)) of
  	match_fail -> throw(error);
  
negative.code:           {State, t_any()};
  	Other -> erlang:error({'Unsupported primop', Other})
        end;
      seq ->
        Body = cerl:seq_body(Tree),
        Arg = cerl:seq_arg(Tree),
  