anchor.diff:  	_         -> filter_ast(T, [H | Acc])
       end.
   
  --spec build_extract_fn([#riak_field{}] , pos_integer(), [ast()]) ->
  +-spec build_extract_fn([[#riak_field{}]], pos_integer(), ast()) ->
   			      {expr(), pos_integer()}.
   build_extract_fn([], LineNo, Acc) ->
       Clauses = lists:flatten(lists:reverse(Acc)),
  
positive.code: -spec make_atom(atom(), pos_integer()) -> expr().
  make_atom(A, LineNo) when is_atom(A) -> {atom, LineNo, A}.
  
  -spec make_call(expr(), expr(), pos_integer()) -> expr().
  make_call(FnName, Args, LineNo) ->
      {call, LineNo, FnName, Args}.
  
  
negative.code:     Fun = make_fun(FunName, 1, [ClauseS, ClauseF], LineNo2),
      {[Fun], LineNo2, Maps, FunNo + 1}.
  
  -spec make_fun(atom(), pos_integer(), ast(), pos_integer()) -> expr().
  make_fun(FunName, Arity, Clause, LineNo) ->
      {function, LineNo, FunName, Arity, Clause}.
  
  