Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proof lengths for equational completion
Information and Computation - special issue: symposium on theoretical aspects of computer software TACS '94
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Shostak's Congruence Closure as Completion
RTA '97 Proceedings of the 8th International Conference on Rewriting Techniques and Applications
A Completion-Based Method for Mixed Universal and Rigid E-Unification
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Abstract Congruence Closure and Specializations
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Combining programming with theorem proving
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A constraint-based approach to guarded algebraic data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
System F with type equality coercions
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
Understanding functional dependencies via constraint handling rules
Journal of Functional Programming
Type-level Computation Using Narrowing in Ωmega
Electronic Notes in Theoretical Computer Science (ENTCS)
Foundations for structured programming with GADTs
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A framework for extended algebraic data types
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Proof-producing congruence closure
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Language and program design for functional dependencies
Proceedings of the first ACM SIGPLAN symposium on Haskell
A comparison of c++ concepts and haskell type classes
Proceedings of the ACM SIGPLAN workshop on Generic programming
A foundation for flow-based program matching: using temporal logic and model checking
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 3rd workshop on Programming languages meets program verification
Generic Libraries in C++ with Concepts from High-Level Domain Descriptions in Haskell
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Generic programming with fixed points for mutually recursive datatypes
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Complete and decidable type inference for GADTs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Monadic constraint programming
Journal of Functional Programming
Ur: statically-typed metaprogramming with type-level record computation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
A tutorial on parallel and concurrent programming in Haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Generic record combinators with static type checking
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Scrap your zippers: a generic zipper for heterogeneous types
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Generic selections of subexpressions
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
A generic deriving mechanism for Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Experience report: using hackage to inform language design
Proceedings of the third ACM Haskell symposium on Haskell
Regular, shape-polymorphic, parallel arrays in Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Instance chains: type class programming without overlapping instances
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Type classes as objects and implicits
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Morphing: Structurally shaping a class by reflecting on others
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generic programming with c++ concepts and haskell type classes: A comparison
Journal of Functional Programming
A lightweight approach to datatype-generic rewriting
Journal of Functional Programming
Accelerating Haskell array codes with multicore GPUs
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Generative type abstraction and type-level computation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Non-monadic models of mutable references
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
Explicitly recursive grammar combinators: a better model for shallow parser DSLs
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Algebraic Specialization of Generic Functions for Recursive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
On the bright side of type classes: instance arguments in Agda
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Functional modelling of musical harmony: an experience report
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Embedding polymorphic dynamic typing
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Generic programming for indexed datatypes
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
Haskell type constraints unleashed
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Tag-Free combinators for binding-time polymorphic program generation
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
The implicit calculus: a new foundation for generic programming
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
A pattern for almost homomorphic functions
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
Shake before building: replacing make with haskell
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Constructing customized interpreters from reusable evaluators using GAME
SC'12 Proceedings of the 11th international conference on Software Composition
Just do it while compiling!: fast extensible records in haskell
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Interactive programming with dependent types
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Closed type families with overlapping equations
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Programming languages for high-assurance autonomous vehicles: extended abstract
Proceedings of the ACM SIGPLAN 2014 Workshop on Programming Languages meets Program Verification
Hi-index | 0.00 |
We report on an extension of Haskell with open type-level functions and equality constraints that unifies earlier work on GADTs, functional dependencies, and associated types. The contribution of the paper is that we identify and characterise the key technical challenge of entailment checking; and we give a novel, decidable, sound, and complete algorithm to solve it, together with some practically-important variants. Our system is implemented in GHC, and is already in active use.