compiler: pass generator= to compile rather than __init__, in order to get better cache reuse