“…Finally, the remarkable expressive power of System Fω exposes some limitations of functional programming languages: for example, OCaml's type language supports only first-order applications, and Haskell's supports only higher-order applications; neither supports type abstractions (although it is often possible to simulate abstractions via lambda-lifting [Lindley 2012]); contrariwise, the limitations of System Fω, which does not support primitive effects or general recursion, help to make clear exactly what can be accomplished without those facilities (Cf. Turner [2004]).…”