anchor.diff:          {ABind,true} ->     fun(X) -> Ab=?BoundVal(ABind,X),Bb=B(X),re_match(re_compile(Bb),Ab) end;
           {ABind,BBind} ->    fun(X) -> Ab=?BoundVal(ABind,X),Bb=?BoundVal(BBind,X),re_match(re_compile(Bb),Ab) end
       end;
  -binary_fun_final({Op, A, B}) when Op=='to_decimal';Op=='from_decimal';Op=='add_dt';Op=='add_ts';Op=='is_member';Op=='concat';Op=='json_arr_proj';Op=='json_obj_proj';Op=='json_value';Op=='json_diff';Op=='is_key' ->
  +binary_fun_final({Op, A, B}) when Op=='to_decimal';Op=='from_decimal';Op=='add_dt';Op=='add_ts';Op=='is_member';Op=='concat';Op=='json_arr_proj';Op=='json_obj_proj';Op=='json_value';Op=='json_diff';Op=='is_key';Op=='slice' ->
       case {bind_action(A),bind_action(B)} of 
           {false,false} ->    mod_op_2(?MODULE,Op,A,B);        
           {false,true} ->     fun(X) -> Bb=B(X),mod_op_2(?MODULE,Op,A,Bb) end;
  
positive.code:         true ->   fun(X) -> Cb=Args(X),apply(Mod,Func,Cb) end;        
          CBind ->  fun(X) -> Cb=?BoundVal(CBind,X),apply(Mod,Func,Cb) end
      end;
  ternary_fun_final({Op, A, B, C}) when Op=='remap';Op=='mfa'->
      case {bind_action(A),bind_action(B),bind_action(C)} of 
          {false,false,false} ->  mod_op_3(?MODULE,Op,A,B,C);        
          {false,true,false} ->   fun(X) -> Bb=B(X),mod_op_3(?MODULE,Op,A,Bb,C) end;
  
negative.code: %% Binary custom filters
  expr_fun({Op, A, B}) when Op=='is_member';Op=='is_like';Op=='is_regexp_like';Op=='element';Op=='concat';Op=='is_key' ->
      binary_fun({Op, A, B});
  expr_fun({Op, A, B}) when Op=='to_decimal';Op=='from_decimal';Op=='add_dt';Op=='add_ts';Op=='slice' ->
      binary_fun({Op, A, B});
  expr_fun({Op, A, B}) when Op=='json_arr_proj';Op=='json_obj_proj';Op=='json_value';Op=='json_diff' ->
      binary_fun({Op, A, B});
  expr_fun({Op, A, B}) ->
      ?UnimplementedException({"Unsupported expression operator", {Op, A, B}});
  %% Ternary custom filters
  expr_fun({Op, A, B, C}) when Op=='remap';Op=='mfa';Op=='slice' ->
      ternary_fun({Op, A, B, C});
  expr_fun({Op, A, B, C}) ->
      ?UnimplementedException({"Unsupported function arity 3", {Op, A, B, C}});
  