Implement generalised list comprehensions