Перегрузка происходит, когда вы вызываете метод для объекта , это не происходит с вызовами голых функций. Таким образом, вы можете определить только перегруженные методы для класса. Блок не является классом, поэтому у него не может быть перегруженных методов.
Ваш код «правильно скомпилировать» будет работать только в том случае, если он размещен непосредственно внутри класса / объекта.