anchor.diff:  	    {fail, {other_result, X}}
       end.
   
  -pcompose_worker(Parent, Validator, Tree, StoreMod) ->
  +pcompose_worker(Parent, Validator, Tree, StoreMod) when is_function(Validator,2) ->
       Result = try
   		 Validator(Tree, StoreMod)
   	     catch
   		 Kind:Reason -> {fail, {Kind, Reason}}
   	     end,
  -    Parent ! {result_for, self(), is, Result}.
  +    Parent ! {result_for, self(), Result}.
   
   -ifdef(TEST).
   -include_lib("eunit/include/eunit.hrl").
  
positive.code: 	    pcompose_loop(ordsets:from_list(Pids))
      end.
  
  pcompose_loop([]) ->
      ok;
  pcompose_loop(Pids) ->
      receive
  	{result_for, Pid, is, ok} ->
  	    NewPidSet = ordsets:del_element(Pid, Pids),
  	    pcompose_loop(NewPidSet);
  	{result_for, _, is, {fail, _}=Failure} ->
  	    lists:map(fun(P) -> exit(P, kill) end, Pids),
  	    Failure;
  	X ->
  
negative.code: 	    end
      end.
  
  -spec pcompose([validator()]) -> validator().		     
  pcompose(Validators) when is_list(Validators) ->
      fun(Tree, StoreMod) ->
  	    Self = self(),
  