Skip to main content
    • Aa
    • Aa
  • Get access
    Check if you have access via personal or institutional login
  • Cited by 5
  • Cited by
    This article has been cited by the following publications. This list is generated based on data provided by CrossRef.

    Zhu, He Nori, Aditya V. and Jagannathan, Suresh 2015. Learning refinement types. ACM SIGPLAN Notices, Vol. 50, Issue. 9, p. 400.

    Zhu, He Nori, Aditya V. and Jagannathan, Suresh 2015. Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015. p. 400.

    Vazou, Niki Seidel, Eric L. and Jhala, Ranjit 2014. LiquidHaskell. ACM SIGPLAN Notices, Vol. 49, Issue. 12, p. 39.

    Hamana, Makoto and Curien, Pierre-Louis 2010. Initial Algebra Semantics for Cyclic Sharing Tree Structures. Logical Methods in Computer Science, Vol. 6, Issue. 3,

    Kiselyov, Oleg and Shan, Chung-chieh 2007. Lightweight Static Capabilities. Electronic Notes in Theoretical Computer Science, Vol. 174, Issue. 7, p. 79.


Faking it Simulating dependent types in Haskell

  • CONOR McBRIDE (a1)
  • DOI:
  • Published online: 01 July 2002

Dependent types reflect the fact that validity of data is often a relative notion by allowing prior data to affect the types of subsequent data. Not only does this make for a precise type system, but also a highly generic one: both the type and the program for each instance of a family of operations can be computed from the data which codes for that instance. Recent experimental extensions to the Haskell type class mechanism give us strong tools to relativize types to other types. We may simulate some aspects of dependent typing by making counterfeit type-level copies of data, with type constructors simulating data constructors and type classes simulating datatypes. This paper gives examples of the technique and discusses its potential.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *