snippet: while