Hi all: I'm wondering why these derive
statements are not commutative?
(-> (make-hierarchy)
(derive :b :c)
(derive :a :b)
(derive :a :c))
Execution error (Error) at (<cljs repl>:1).
:a already has :c as ancestor
(-> (make-hierarchy)
(derive :a :c)
(derive :b :c)
(derive :a :b))
{:parents {:a #{:c :b}, :b #{:c}},
:ancestors {:a #{:c :b}, :b #{:c}},
:descendants {:c #{:b :a}, :b #{:a}}}
Each of the two lattices should be isomorphic, but one set of statements produces an ancestor error. What is the purpose of this error?
Thanks!