There are a number of temporary variables (asserted facts) used in the LE parser, and I don't see their initialisation; this needs some attention because in a server multithreaded environment it does not suffice to use thread_local: the same thread can be reused by different client sessions