Polymorphic type inference and abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
IEEE Transactions on Software Engineering
Type checking with open type functions
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Most complex software projects are compiled using a build tool (e.g. make), which runs commands in an order satisfying user-defined dependencies. Unfortunately, most build tools require all dependencies to be specified before the build starts. This restriction makes many dependency patterns difficult to express, especially those involving files generated at build time. We show how to eliminate this restriction, allowing additional dependencies to be specified while building. We have implemented our ideas in the Haskell library Shake, and have used Shake to write a complex build system which compiles millions of lines of code.