Both explicit polymorphic annotations and the polymorphic syntax of locally abstract types are extensions. http://caml.inria.fr/pub/docs/manual-ocaml/extn.html See subsections 7.12 and 7.13. Jacques Garrigue 2013/10/26 10:09 "Norman Hardy" : > > On 2013 Oct 25, at 13:44 , Jacques Le Normand > wrote: > > I'm surprised noone has pointed out the new type annotation syntax: > > let id : type s. s -> s = fun x -> x > > > I like that syntax, I think. > I suppose that "id : type s. s -> s = fun x -> x" is a let-binding > and that "id : type s. s -> s" is a pattern, > but I cannot get the syntax at > http://caml.inria.fr/pub/docs/manual-ocaml/patterns.html > to produce "id : type s. s -> s”. >