> > > # let y = z z ;; > val y : (('_a -> '_b) -> '_a -> '_b) -> '_a -> '_b = > > Can anyone get rid of the pesky underscores in the type of y above, so > that it becomes truly polymorphic? > Eta expansion does it... # let y x = z z x;; val y : (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b = Regards, François