Мне не совсем понятно, чего вы хотите. Если вам нужна функция, которая возвращает геттер для поля, вы можете сделать это довольно легко:
class Holder(var s: String) { }
class StringSaver(f: Holder => (() => String), h: Holder) {
val getter = f(h)
def lookAtString = getter()
}
val held = new Holder("Hello")
val ss = new StringSaver((h: Holder) => (h.s _) , held)
println(ss.lookAtString)
held.s = "Bye now"
println(ss.lookAtString)
Ключ должен превратить геттер h.s в функцию через (h.s _).