I have to second the motion to read and understand Reppy's fine book. However, be aware that CML was based on an architecture of spaghetti threads, where new tasks can be spawn with little or no cost, and the GC was responsible for reclaiming dead threads. That is not the same as OCaml's architecture, and so OCaml can implement about 90% of CML but that last 10% might kill your dreams. CML likes to spawn potential handlers, of which only one will get the go ahead. The others are expected to die, after possibly cleaning up state. In this regard, CML is more akin to Erlang. Dr. David McClain Chief Technical Officer Refined Audiometrics Laboratory 4391 N. Camino Ferreo Tucson, AZ 85750 email: dbm@refined-audiometrics.com phone: 1.520.390.3995 web: http://refined-audiometrics.com