From HaskellWiki
Jump to: navigation, search

This is outdated information. The DDC project has moved to http://discus-lang.org


On the development wiki

Related systems

The Disciple type system is a combination and extension of several existing systems.

For region typing:

Note that DDC uses regions to track mutability of objects, not to manage allocation.

  • A Region Inference Algorithm, Mads Tofte and Lars Birkedal, ACM Transactions on Programming Languages and Systems, Vol 20, No 5, July 1998

For effect typing:

This is where DDC gets is namesake.

  • The Type and Effect Discipline, Jean-Pierre Talpin and Pierre Jouvelot, Seventh Annual IEEE Symposium on Logic in Computer Science, Santa Cruz, California, 1992

For closure typing:

Closure typing was originally intended for O'Caml, but was not fully implemented as it was thought to complicate the interface files too much. In Haskell and Disciple you don't have to write your own interface files, so this isn't a problem.

  • Polymorphic type inference and assignment. Xavier Leroy and Pierre Weis, Proc 18th Symp. Principles of Programming Languages, 1991.

For the region/effect/closure class system:

The DDC core language uses witnesses to mutablity and constancy of regions, purity of effects and emptiness of closures. These witnesses are managed in much the same way as the type equality witnesses in System-Fc.

  • System F with Type Equality Coercions, Martin Sulzmann, Manuel Chakravarty, Simon Peyton-Jones, International Conference on Functional Programming, 2006.

Talks about Disciple: