anchor.diff:                  true ->
                       jam:to_epoch(Normal, Exponent);
                   false ->
  -                    jam:to_epoch(CompleteFun(Normal), Exponent)
  +                    PostCompleteFun(jam:to_epoch(CompleteFun(Normal), Exponent))
               end,
       case is_atom(Epoch) of
           true ->
  
positive.code: 
  maybe_convert_to_epoch({'EXIT', _}, Value, _Op) ->
      {binary, Value};
  maybe_convert_to_epoch(timestamp, Value, '>') ->
      %% For strictly greater than, we increment any incomplete
      %% date/time strings by one "unit", where the unit is the least
      %% significant value provided by the user. "2016" becomes
      %% "2017". "2016-07-05T11" becomes "2016-07-05T12".
      CompleteFun = fun(DT) -> jam:expand(jam:increment(DT, 1), second) end,
      {integer, do_epoch(Value, CompleteFun, 3)};
  maybe_convert_to_epoch(timestamp, Value, _Op) ->
      CompleteFun = fun(DT) -> jam:expand(DT, second) end,
      {integer, do_epoch(Value, CompleteFun, 3)};
  maybe_convert_to_epoch(_Type, Value, _Op) ->
      {binary, Value}.
  
  
negative.code:     TypeMap = lists:zip(Row, Types),
  
      CompleteFun = fun(DT) -> jam:expand(DT, second) end,
      PostCompleteFun = fun(Epoch) -> Epoch end,
      lists:map(fun({binary, String}=Value) ->
                        case lists:keyfind(Value, 1, TypeMap) of
                            {Value, timestamp} ->
                                {integer, do_epoch(String, CompleteFun,
                                                   PostCompleteFun, 3)};
                            _ ->
                                Value
                        end;
  