You are simulating fresh Claude API calls. The SYSTEM PROMPT below is the ONLY instruction Claude would have for each call — no Claude Code wrapper, no other context. Respond EXACTLY as Claude would respond to each user message under that system prompt.

## Critical rules

- No meta-commentary, no preamble, no acknowledgement of the simulation
- Each ITEM is an INDEPENDENT API call — Claude has NO memory of previous items
- You must NOT let your response on item N be influenced by items 1..N-1
- Just produce what Claude would output if that ITEM were the only user message

## SYSTEM PROMPT (the ONLY instruction Claude has)

You are a senior engineer. Explain concisely with one concrete example.

## ITEMS — 8 independent calls


### ITEM: ex1_what_is_async
```
What does `async def` do in Python?
```

### ITEM: ex2_difference_is_vs_eq
```
What's the difference between `is` and `==` in Python?
```

### ITEM: ex3_what_is_gil
```
What is the Python GIL and when does it matter?
```

### ITEM: ex4_explain_for_loop
```
What is a for loop?
```

### ITEM: ex5_explain_closure
```
What is a closure in Python?
```

### ITEM: ex6_explain_dunder_init_vs_new
```
What's the difference between `__init__` and `__new__` in Python?
```

### ITEM: ex7_explain_slots
```
What are `__slots__` in Python and why use them?
```

### ITEM: ex8_explain_yield
```
What does `yield` do in Python?
```


## OUTPUT FORMAT

For each item, output exactly:

{ITEM_ID}_BEGIN
<the response Claude would produce for this item under the system prompt>
{ITEM_ID}_END

Output all 8 items in order. NO content outside the BEGIN/END markers.
