Hello, fellow Chuckers! I keep finding myself returning to this issue of trying to determine the class of an object instance at runtime. We talked about it here: https://lists.cs.princeton.edu/pipermail/chuck-users/2008-September/003242.h... I recently pulled from CVS and started fooling around and discovered a remarkably simple hack. There's a method in Object, toString(), which returns a string containing the class of the object as well as the reference ID. Like this (supposing a class called "Test"): "Test:11ceff0" There's also a stub in chuck_lang.cpp for a method getType(), which isn't implemented (yet). So, I copied the implementation of toString(), minus the printing of the reference ID, and placed it where the implementation of getType() should be. Now all objects (not UGens yet, although that would be sweet) respond to getType(). Example: class Test { 5 => int i; fun void sayHi() { <<< "hi" >>>; } } Test test; test @=> Object o; // Object still knows it's a Test! <<< o.toString() >>>; <<< o.getType() >>>; // Object can't sayHi() //o.sayHi(); // but this is now possible if( o.getType() == "Test" ) { (o $ Test).sayHi(); } The above code will print this: "Test:11cf160" : (string) "Test" : (string) "hi" : (string) This makes me very happy and opens up many doors, although I have no idea what getType() was originally intended to do--I assume a similar purpose. I'm sure that this will work as a mod to the current release as well, although I made my changes in the CVS version (I'm excited for FileIO). This ought to make implementing things like ArrayList a lot easier. ;-) I consider this a feature request (for this or something like it). I think this would be super helpful for UGens and primitives also. Primitives, however, don't support the dot notation... Oh well. I'll take what I can get. -Mike -- http://michaelclemow.com http://semiotech.org