[metapost] ANN: METAppeal 0.0.0 (really!)

METAppeal is a MetaPost library in its very early stage of development (as you
may guess from the version number). I have decided to release the code to get
feedback and stimulate discussions.
First of all, let me say what it provides right now:
- a simple unit testing framework for MetaPost;
- basic facilities for defining and declaring your own “data types”;
- basic facilities to implement parametrised code blocks;
- a few very simple data structures (records, memory pools, arrays, stacks,
queues, lists, trees);
- a “metappealing” version of John Hobby's boxes package.
Therefore, it is not a library for end users (yet), but it may be interesting
for library developers or anyone who has a good knowledge of MetaPost. To be
clear, there is nearly nothing directly related to drawing at this time.
The code is available for download at
http://users.dimi.uniud.it/~nicola.vitacolonna/home/content/metappeal
Motivation:
To my knowledge, MetaPost is the only language supporting these three features:
(1) it is a “real” (graphical) programming language;
(2) it is strictly related to TeX (think of ConTeXt);
(3) it has a declarative mechanism for solving equations.
For comparison, PSTricks or Tikz have (2), and Asymptote has (1) and (2). (3)
may be actually seen as the defining feature of MetaPost (and the one I like
most). Other languages, however, have a well-developed set of graphical
components. There are also a lot of MetaPost extensions, of course, but each one
with its own (sometimes obscure) syntax, some with special purposes (e.g.,
GrafBase and MetaFun), and many of them barely documented. So, METAppeal is an
(ambitious) idea that was born out of the wish for a more organized, coherent,
integrated, graphical library of MetaPost extensions. So far, this is still a
wish, but at least I hope you'll find some of the current code interesting.
Nicola