todo for fixing recursion detection
caching for rule results instead of left recursion checks
note about broken left recursion detection