anchor.diff:          = check_query_syntax(Query),
       ?assertEqual(true, erlang:is_function(Fun, 3)).
   
  +bad_strfun_test() ->
  +    Query = [{map, {strfun, "fun(_,_,_) -> [] end"}, none, true}],
  +    {bad_qterm, _} = check_query_syntax(Query).
  +
  +unbound_var_strfun_test() ->
  +    Query = [{map, {strfun, "fun(_,_,_) -> [UnboundVar] end."}, none, true}],
  +    {bad_qterm, _} = check_query_syntax(Query).
  +
   -endif.
  
positive.code:     {value, Fun, _} = erl_eval:expr(Form, erl_eval:new_bindings()),
      Fun.
  
  -ifdef(TEST).
  -include_lib("eunit/include/eunit.hrl").
  
  
negative.code:                                {phase_mod(T), phase_behavior(T, QueryFun, Acc), [{erlang, QTerm}]};
                             {qfun, Fun} when is_function(Fun) ->
                                 {phase_mod(T), phase_behavior(T, QueryFun, Acc), [{erlang, QTerm}]};
                             {strfun, FunStr} ->
                                 handle_strfun(FunStr, QTerm);
                             {jsanon, JS} when is_binary(JS) ->
                                 {phase_mod(T), phase_behavior(T, QueryFun, Acc), [{javascript, QTerm}]};
                             {jsanon, {Bucket, Key}} when is_binary(Bucket),
  