@petr I guess it isn’t really documented that well - but this relates http://www.clara-rules.org/docs/fact_type_customization/
but is more specific than the general case you probably care about.
In general though, the type matching dispatch for rules is done via clojure.core/type
but you can customize that dispatch via :fact-type-fn
and :ancestors-fn
if you have “hierarchical relationship”
my gist I shared mentions this stuff briefly and references the source doc
I'm potentially going to be using clara for a situation where end users will be writing their own rules. I'm concerned that the rules will get really complex with non-developers writing them. Are there any techniques to automatically find candidates for new rules that would simplify multiple other rules (like abstracting common clauses out)? One idea I had when I noticed clara converts expressions to disjunctive normal form was to use that along with karnaugh maps to simplify expressions. Has anyone heard of something like that being done before? Is this a crazy idea?