Walk() returns val, ok and new ErrValue/NilValue types