Q&A (part 1: shameless promotion) Q: Do I have to learn some icky language to do this? A: Yes. It's really not that icky. Q: Aw, couldn't we just have done this in m4 or a Perl script? A: Not without losing a lot of convenience and safety. Q: Does Ocaml have: a debugger, a profiler, lex and yacc? arrays, for loops, printf, and fast I/O? generics, modules, and typesafety? hashtables, objects, and garbage collection? map, fold, lambda, cons, and quote? an emacs mode and a free, portable compiler? A: Yup. Q: Why am I still coding in C/C++/Java/Lisp? A: Beats me.