## Changes to the language {#language} Go 1.23 makes the (Go 1.22) ["range-over-func" experiment](/wiki/RangefuncExperiment) a part of the language. The "range" clause in a "for-range" loop now accepts iterator functions of the following types func(func() bool) func(func(K) bool) func(func(K, V) bool) as range expressions. Calls of the iterator argument function produce the iteration values for the "for-range" loop. For details see the [language spec](/ref/spec#For_statements). Go 1.23 includes preview support for [generic type aliases](/issue/46477). Building the toolchain with `GOEXPERIMENT=aliastypeparams` enables this feature.