Laziness typically implies something isn't evaluated until you need the data (e.g. you coerce it to a native language data structure, or you need to print it, or write it to a file or network). So saying list(query) lazily evaluates the query, while saying query.run() is a more strict (explicit) evaluation model.
I actually think strict is better here, but that's a different discussion altogether :)
I actually think strict is better here, but that's a different discussion altogether :)