Add when-first, more complex for exprs work