anchor.diff:  
   -include("lasp.hrl").
   
  --export([create/1]).
  +-export([create/1,
  +         create/2]).
   
  --record(state, {set_id, projection_output_id, predicate_output_id}).
  +-record(state, {output_id, set_id, projection_output_id, predicate_output_id}).
   
   -define(DEFAULT, <<"hi">>).
   
   %% @doc Create a SQL view from a textual specification.
   create(Specification) when is_list(Specification) ->
  +
  +    %% Create a node for the result of the predicate.
  +    {ok, {OutputId, _, _, _}} = lasp:declare(?SET),
  +
  +    %% Create using a given output.
  +    create(OutputId, Specification).
  +
  +%% @doc Create a SQL view from a textual specification.
  +create(OutputId, Specification) when is_list(Specification) ->
  +
       %% Tokenize the string.
       {ok, Tokens, _EndLine} = ?SQL_LEXER:string(Specification),
   
  
positive.code: 
  extract(Variable, Tuple) ->
      maps:get(Variable, Tuple).
  
negative.code: %% Entry point to evaluation of the parse tree.
  materialize({query, Projections, {from, Collection}, Predicates}, State0) ->
      %% Convert collection identifier to binary.
      CollectionId = generate_identifier(Collection),
  
      %% Materialize a dataflow graph for the predicate tree.
      {PredicateOutputId, State1} = materialize(Predicates,
  