[Main website]

dok/paradigm/reduce-combinatorial-explosion-of-features

A PL with many features it is elegant if it let you to compose them. But then the semantic become too much complex.

In Dok, we start with a simple PL and then new DSL and features can be added, but they had not to compose:

  • whenever possible one use already present features
  • whenever possible a new feature is implemented expanding to normal Dok code
  • composition of different feautures is not supported by default and it is discouraged, because it can increase too much the complexity of the language
  • composability is obtained stratifying functionalities by higher level to low level and/or compiling a feature to a lower level strata

An example can be dok/paper/programming-with-implicit-values, where many features of Koka can be supported by Dok using normal Dok functionalities.