A Church-Style Intermediate Language for MLF

  • Didier Rémy
  • Boris Yakobowski
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6009)


ML F is a type system that seamlessly merges ML-style implicit but second-class polymorphism with System-F explicit first-class polymorphism. We present x ML F , a Church-style version of ML F with full type information that can easily be maintained during reduction. All parameters of functions are explicitly typed and both type abstraction and type instantiation are explicit. However, type instantiation in x ML F is more general than type application in System F. We equip x ML F with a small-step reduction semantics that allows reduction in any context and show that this relation is confluent and type preserving. We also show that both subject reduction and progress hold for weak-reduction strategies, including call-by-value with the value-restriction.


Type Application Type Information Reduction Rule Typing Rule Type Inference 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Barendregt, H.P.: The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam (1984), ISBN: 0-444-86748-1zbMATHGoogle Scholar
  2. Crary, K.: Typed compilation of inclusive subtyping. In: ICFP 2000: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming, pp. 68–81. ACM, New York (2000)CrossRefGoogle Scholar
  3. Herms, P.: Partial Type Inference with Higher-Order Types. Master’s thesis, University of Pisa and INRIA (2009) (to appear)Google Scholar
  4. Le Botlan, D.: MLF: An extension of ML with second-order polymorphism and implicit instantiation. PhD thesis, Ecole Polytechnique (June 2004) (english version)Google Scholar
  5. Le Botlan, D., Rémy, D.: MLF: Raising ML to the power of System-F. In: Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, August 2003, pp. 27–38 (2003)Google Scholar
  6. Le Botlan, D., Rémy, D.: Recasting MLF. Research Report 6228, INRIA, Rocquencourt, BP 105, 78 153 Le Chesnay Cedex, France (June 2007)Google Scholar
  7. Leijen, D.: A type directed translation of MLF to System F. In: The International Conference on Functional Programming (ICFP 2007). ACM Press, New York (2007)Google Scholar
  8. Leijen, D.: Flexible types: robust type inference for first-class polymorphism. In: Proceedings of the 36th annual ACM Symposium on Principles of Programming Languages (POPL 2009), pp. 66–77. ACM, New York (2009)Google Scholar
  9. Leijen, D., Löh, A.: Qualified types for MLF. In: ICFP 2005: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, pp. 144–155. ACM Press, New York (2005)CrossRefGoogle Scholar
  10. Mitchell, J.C.: Polymorphic type inference and containment. Information and Computation 2/3(76), 211–249 (1988)CrossRefGoogle Scholar
  11. Jones, S.P.: Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003), ISBN: 0521826144Google Scholar
  12. Rémy, D., Yakobowski, B.: A church-style intermediate language for MLF (extended version) (September 2008a),
  13. Rémy, D., Yakobowski, B.: From ML to MLF: Graphic type constraints with efficient type inference. In: The 13th ACM SIGPLAN International Conference on Functional Programming (ICFP 2008), Victoria, BC, Canada, September 2008, pp. 63–74 (2008b)Google Scholar
  14. Yakobowski, B.: Graphical types and constraints: second-order polymorphism and inference. PhD thesis, University of Paris 7 (December 2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Didier Rémy
    • 1
  • Boris Yakobowski
    • 2
  1. 1.INRIA Paris - Rocquencourt 
  2. 2.CEA, LIST, Laboratoire Sureté des LogicielsGif-sur-Yvette CedexFrance

Personalised recommendations