Details
-
Type:
Defect
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
Description
The second nom/hash throws an exception, because the nom/hash constraint is ran before the predc one.
(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(predc y nom? `nom?)
(nom/hash y x)
(== y 'foo))))
()))
(is (= (run* [q]
(nom/fresh [x]
(fresh [y]
(nom/hash y x)
(predc y nom? `nom?)
(== y 'foo))))
()))
Perhaps, we can generalize the notion of hash.
Hmm but why throw in nom/hash like that instead of just failing?