Looking at the source code, it looks like the rules are stored in the form of a eresye_tree_list
in the process state. You could fetch the entire "rete" and extract the tree with something like:
[_, _, Tree, _, _] = eresye:get_rete(engine).
Then, you could use the functions from the eresye_tree_list
module to traverse the Tree
and to convert it into a list. It probably makes sense to implement this as part of the eresye
module itself.