Skip to content

Interface Design Notes

neilconway edited this page Feb 10, 2011 · 7 revisions

Defects of the current design of interfaces and modules:

  • Cannot import a given module twice
  • Interface names aren't scoped (#49)
  • Need to explicitly include Anise for the "declare" decorator (#59)
    • Easiest fix is to have a root BudModule/BudProtocol/etc. module that includes Anise and defines "declare"
  • "state" blocks in an interface need to explicitly call "super"
    • Possible fix: replace "def state" with a "state { ... }"; state is a method defined by BudModule
  • No clear distinction between importing a module for use as a client vs. importing an interface to provide an implementation of it
  • Should temporal properties be exposed as part of an interface's API?
  • Constraints on interfaces?

Clone this wiki locally