вообще, передача функции означает «хз что это, давай перепроверим в рантайме» и поэтому внутри функций можно использовать как поля объектов так и всё что угодно другое
исключение, деление на ноль, io, мутация, вызовы других функций — это всё разные виды сайд-эффектов, в Koka функции имеют как бы сдвоенный тип, один показывает тип как обычно, второй — перечень сайд-эффектов