Logic programming in the LF logical framework
Logical frameworks
TAPSOFT '89 2nd international joint conference on Theory and practice of software development
A framework for defining logics
Journal of the ACM (JACM)
Handbook of logic in computer science (vol. 2)
A system of constructor classes: overloading and implicit higher-order polymorphism
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic typing for distributed programming in polymorphic languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-safe cast: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Refinement-Type Checker for Standard ML
AMAST '97 Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology
Inductive Definitions and Type Theory: an Introduction (Preliminary Version)
Proceedings of the 14th Conference on Foundations of Software Technology and Theoretical Computer Science
Dependent types in practical programming
Dependent types in practical programming
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
The role of type equality in meta-programming
The role of type equality in meta-programming
A constraint-based approach to guarded algebraic data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Epigram: practical programming with dependent types
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Open data types and open functions
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A multi-stage language with intensional analysis
Proceedings of the 5th international conference on Generative programming and component engineering
Type-level Computation Using Narrowing in Ωmega
Electronic Notes in Theoretical Computer Science (ENTCS)
Language-Based Program Verification via Expressive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Constructive Membership Predicates as Index Types
Electronic Notes in Theoretical Computer Science (ENTCS)
A coinductive monad for prop-bounded recursion
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
AspectML: A polymorphic aspect-oriented functional programming language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Implementation and Application of Functional Languages
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Central European Functional Programming School
Compositional reasoning and decidable checking for dependent contract types
Proceedings of the 3rd workshop on Programming languages meets program verification
Arity-generic datatype-generic programming
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
A framework for extended algebraic data types
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
ΠΣ: dependent types without the sugar
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Generic programming with dependent types
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Hi-index | 0.00 |
The Curry-Howard isomorphism states that types are propositions and that programs are proofs. This allows programmers to state and enforce invariants of programs by using types. Unfortunately, the type systems of today's functional languages cannot directly express interesting properties of programs. To alleviate this problem, we propose the addition of three new features to functional programming languages such as Haskell: Generalized Algebraic Datatypes, Extensible Kind Systems, and the generation, propagation, and discharging of Static Propositions. These three new features are backward compatible with existing features, and combine to enable a new programming paradigm for functional programmers. This paradigm makes it possible to state and enforce interesting properties of programs using the type system, and it does this in manner that leaves intact the functional programming style, known and loved by functional programmers everywhere.