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
}