anchor.diff:  %%     {_, Row} = lists:foldl(F, {1, []}, Fields),
   %%     unpack_rows(Fields, T, [lists:reverse(Row)|Accum]).
   
  +-spec unpack_rows([], [array()]) -> [[tuple()]].
   unpack_rows(Columns, RowData) ->
       Rows = [ lists:zip(Columns, Row) || Row <- RowData ], 
       ?debugVal(Rows),
  
positive.code:             load_statements(Connection, T, dict:store(Name, {Columns, Statement}, Dict));
          Error ->
              %% TODO: Discover what errors can flow out of this, and write tests.
              Error
      end.
  
  %% Converts contents of result_packet into our "standard"
  
negative.code:             {{error, Result}, State}
      end.
  
  -spec exec_prepared_statement(atom(), [], any()) -> {{ok, integer()} | {error, any()}, state()}.
  exec_prepared_statement(Name, Args, #state{cn=Cn, statements=Statements}=State) ->
      {_Columns, Stmt} = dict:fetch(Name, Statements),
      ok = pgsql:bind(Cn, Stmt, Args),
      %% Note: we might get partial results here for big selects!
      case pgsql:execute(Cn, Stmt, Args) of
          {ok, Count} -> 
              {{ok, Count}, State};
          Result ->
  