Implemented proper cycle checking (with error message!) and added a method to clear the compiler's caches.