anchor.diff:    {reply, Msg, State};
   
   handle_call(peek, _From, #state{mem=Mem} = State) ->
  -  Msg = peek(Mem),
  +  Msg = peek_front(Mem),
     {reply, Msg, State};
   
   handle_call({try_pop, Fun}, _From, #state{mem=Mem} = State) ->
  
positive.code:   ?assertEqual(6, length(Mem)),
  
    % Dequeue data
    ?assertMatch({a, false}, pop_internal(Mem, true)),
    ?assertEqual(b,          pop(Mem)),
    ?assertEqual(c,          pop(Mem)),
    ?assertEqual(1,          pop(Mem)),
    ?assertMatch(2,          peek(Mem)),
    ?assertMatch(2,          try_pop(Mem, fun(2) -> 2 end)),
    ?assertError(failed,     try_pop(Mem, fun(3) -> erlang:error(failed) end)),
    ?assertMatch({3, true},  pop_internal(Mem, true)),
    ?assertEqual(nil,        pop(Mem)),
    ?assertEqual({112,112,112,1024}, header(Mem)),
    ?assert(purge(Mem)),
  
negative.code: pop(Mem, Init, Fun) when is_function(Fun, 2) ->
    F = fun
      G(H, T, State) when H < T ->
        {Msg, NextH} = read_first(Mem, H),
        case Fun(Msg, State) of
          {cont, State1} ->
            update_head(Mem, NextH),
  