anchor.diff:          {command, p} ->
               print(Defs),
               S;
  +        {command, time} ->
  +            Now = erlang:now(),
  +            io:format("~fs\n", [timer:now_diff(Now, TStamp)/1000/1000]),
  +            S#state{tstamp = Now};
  +        {command, {time_expr, Expr}} ->
  +            QQ = parse_line(Expr),
  +             do_query(QQ, S, tc);
           {command, {l, Name}} ->
               S#state{defs = load(Name, Defs)};
           {command, cache_on} ->
  
positive.code:             {command, p};
          {match, ["q", ""]} ->
              {command, q};
          {match, ["c", OnOff]} ->
              case string:strip(OnOff) of
                  "on"++ _ ->
                      {command, cache_on};
                   "off" ++ _ ->
                       {command, cache_off};
                   _ ->
                       {command, print_cache_state}
               end;
          {match, ["l", File]} ->
              {command, {l, File}};
          {match, [C|_]} ->
  
negative.code:             do_line(L ++ Line, S)
      end.
  
  do_line(L, #state{defs = Defs, cache = C, tstamp = TStamp} = S) ->
      try check_line(L) of
          empty ->
              S;
  