Abstract
In dependently typed languages run-time values can appear in types, making it possible to give programs more precise types than in languages without dependent types. This can range from keeping track of simple invariants like the length of a list, to full functional correctness. In addition to having some correctness guarantees on the final program, assigning more precise types to programs means that you can get more assistance from the type checker while writing them. This is what I focus on here, demonstrating how the programming environment of Agda can help you when developing dependently typed programs.
- E. Brady. Idris-systems programming meets full dependent types. In Proc. of 5th ACM Workshop on Programming Languages Meets Program Verification, PLPV '11, pp. 1--2. ACM, 2011. Google Scholar
Digital Library
- C. McBride and J. McKinna. The view from the left. J. of Funct. Program., 14(1):69--111, 2004. Google Scholar
Digital Library
- U. Norell. Towards a practical programming language based on dependent type theory. PhD thesis, Chalmers U. of Techn., 2007.Google Scholar
- S. Peyton Jones, D. Vytiniotis, S. Weirich, and G. Washburn. Simple unification-based type inference for GADTs. In Proc. of 11th ACM SIGPLAN Int. Conf. on Functional Programming, ICFP '06, pp. 50--61. ACM, 2006. Google Scholar
Digital Library
- T. Schrijvers, S. Peyton Jones, M. Chakravarty, and M. Sulzmann. Type checking with open type functions. In Proc. of 13th ACM SIGPLAN Int. Conf. on Functional Programming, ICFP '08, pp. 51--62. ACM, 2008. Google Scholar
Digital Library
- M. Sozeau. PROGRAM-ing finger trees in Coq. In Proc. of 12th ACM SIGPLAN Int. Conf. on Functional Programming, ICFP '07, pp. 13--24. ACM, 2007. Google Scholar
Digital Library
- }yorgey:datakindsB. A. Yorgey, S. Weirich, J. Cretin, S. Peyton Jones, D. Vytiniotis, and J. P. Magalhaes. Giving Haskell a promotion. In Proc. of 8th ACM SIGPLAN Workshop on Types in Language Design and Implementation, TLDI '12, pp. 53--66. ACM, 2012. Google Scholar
Digital Library
Index Terms
Interactive programming with dependent types
Recommendations
Dependent types and program equivalence
POPL '10: Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesThe definition of type equivalence is one of the most important design issues for any typed language. In dependently typed languages, because terms appear in types, this definition must rely on a definition of term equivalence. In that case, ...
Dependent types and program equivalence
POPL '10The definition of type equivalence is one of the most important design issues for any typed language. In dependently typed languages, because terms appear in types, this definition must rely on a definition of term equivalence. In that case, ...
Interactive programming with dependent types
ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programmingIn dependently typed languages run-time values can appear in types, making it possible to give programs more precise types than in languages without dependent types. This can range from keeping track of simple invariants like the length of a list, to ...







Comments