public sync forEach(func(Type, Int, List<Type>)) => this {
var Int i = 0
for (value in this) {
func(value, i++, this)
}
}
public async forEach(async func(Type, Int, List<Type>)) => this {
var Int i = 0
for (value in this) {
func(value, i++, this)
}
}
where it calls the respective one depending on if the lambda passed to it is async or not