-Implement the input_builder functions;
-notice that the parser has been modified in a way such that existential variables are expressed as unsafe variables in rule heads;
-implement a safety check which takes into account the presence of (unsafe) existential variables;
-add a 'type' to each atom;
-implement a strategy to rename the variable of a given rule;
-implement a cache for renamings;
-implement a strategy (which relies on wasp) to check whether an isomorphism between two rules exists;
-implement a strategy to check whether two atom sets are unifiable, possibly returning their MGU;
-implement a cache for such MGUs;
-implement the sticky-join check (see 'Query answering under non-guarded rules in Datalog+/-').