1. Presently, NJML. previously, Poly ML. 2. none at present. 3. five 4. Computer Science Department, University of Ottawa 5. It's free and runs on several hardware platforms. Other considerations that are also very important, but I haven't had a chance to evaluate are (a) number of bugs in the implementation, (b) speed and memory efficiency. 6. I haven't had enough opportunity to compare. The only things I've noticed so far that are bad about NJML are (a) the most cryptic error messages of any ML I've ever used (several), and (b) no big numbers. I have heard rumours that NJML is slow (garbage collection, in particular) and buggy, but these may be unfounded (I'm not too confident in the reliability of these rumours) or they may pertain to early versions.jA 7. If it hasn't been done already, to Macintosh and IBM PC. (but see answer 9) 8. nothing so far, just student projects 9. There are numerous enhancements to ML that I would very much like to see. These are more important than porting ML to another machine. They fall into two categories, enhamcements for educational use, and enhancements for production use (there is some overlap). I have been lobbying to have ML used as our primary language of instruction: Chris Reade was very successful with it at Brunel University. Here I run up against several very practical objections: (1) no textbook. It seems that Larry Paulson will be filling this void. Chris Reade's book is excellent, but not specifically about ML: it worked OK for him, but the people here are not convinced! (2) poor error messages. I cannot disagree: no ML compiler scores well on this measure. (3) no programming environment. At present we use Pascal, and students find the Turbo environment extremely powerful and useful. (4) extremely primitve input/output. In trying to make practical use of ML, I have come up several times against several barriers. Some of these may be problems particular to me, but some I think are of general concern: (1) no way to link with programs written in other languages. (2) no built-in data structure with CONSTANT TIME access (e.g. as one gets with arrays or hash tables). This means it is impossible to write efficient programs that handle lots of data. Even to get LOG-time access, one has to write his own package for, say, balanced trees. The one attempt at arrays in ML that I know of was rather ill-conceived. (3) a way of calling the ML compiler from within an ML program. This would be an extension of "use", if you like, so that one could pass it the text of a program. This can be faked, sort of, by writing the text to a file and the "using" the file, but this is a hack.