title: How did Haskell add Turing-completeness to System F?
body: <p>I've been reading up on various type systems and lambda calculi, and i see that all of the typed lambda calculi in the lambda cube are <em>strongly normalizing</em> rather than Turing equivalent. This includes System F, the simply typed lambda calculus plus polymorphism.</p>
  
  <p>This leads me to the following questions, for which I've been unable to find any comprehensible answer:</p>
  
  <ul>
  <li>How does the formalism of (e.g.) Haskell differ from the calculus on which it is ostensibly based?</li>
  <li>What language features in Haskell don't fall within System F formalism?</li>
  <li>What's the minimum change necessary to allow Turing complete computation?</li>
  </ul>
  
  <p>Thank you so much to whomever helps me understand this.</p>