Removed some dead code.
Warn the user about unsupported classes.
Try to be more accurate when reporting rule errors.

Systematically uses error instead of assert and passes a callLevel around.
First attempt at handling items.
Typos.