defclass B | x y | { }; defclass X :: B | a b | { defun :* new(t) { | a | set self.a t; set a 100; set self.b (* t 2); set self.c (fun(b) { ##ERROR: syntax error - unknown class-level variable name printf "xxxx [%d]\n" b; }); return self; }; defun print() { self.c (+ self.a self.b); printf "a=%d b=%d\n" self.a self.b; } }; --- defclass X { defun :* xxx() { return X; } defun :* qqq() { return "hello" } defun String:length() { ##ERROR: syntax error - function name not valid return (str.length self) } } --- defclass X { defun :* xxx() { return X; } defun :* qqq() { return "hello" } } ## this will trigger a runtime error as J isn't a class name defun J:ccc() { ##ERROR: exception not handled return 999 }