let teacher_of_fun f = (fun student examiners grades -> let res = f student in let next_grades = make_exam examiners res in (res,next_grades :: grades) )