racket-algebraic icon indicating copy to clipboard operation
racket-algebraic copied to clipboard

design the developer API

Open dedbox opened this issue 5 years ago • 2 comments

The next release brings three major updates:

  1. a completed tutorial series
  2. tighter integration with match and syntax-parse
  3. the initial developer API

Most of the work will be for number 3.

We need more information to make any sort of meaningful decision. What must it provide to be useful? Are there any examples that clearly demonstrates its utility? Does it have any unique or surprising qualities? What does any of this have to do with language-oriented programming?

dedbox avatar Apr 09 '19 20:04 dedbox

Some initial thoughts.

At this stage, the existing syntax classes are low hanging fruit, but not necessarily that valuable to other developers. They're only much use for operating on algebraic functions or macros. The design just needs some polish: better names, more refined classes, miscellaneous tweaks.

A more substantial use case might require access to the information Algebraic Racket uses to generate definitions and hooks into the stages of a computation for checking types and whatnot. A simple coverage check (e.g. "you forgot a case for SomeProduct") would be useful. A more sophisticated exhaustivity check would be even better.

dedbox avatar Apr 09 '19 21:04 dedbox

The syntax classes are also useful for macro writers that want to ensure an argument is a sum or product identifier.

dedbox avatar Apr 10 '19 06:04 dedbox