From 593da2abb5a4f2042fd33b5322991cf5026c6143 Mon Sep 17 00:00:00 2001 From: Felix Dilke Date: Tue, 3 Feb 2026 18:29:38 +0000 Subject: [PATCH] herbrand 2 --- haskell-experiments/src/Datalog/NaiveQE.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/haskell-experiments/src/Datalog/NaiveQE.hs b/haskell-experiments/src/Datalog/NaiveQE.hs index 6d1f1e8..b3e8802 100644 --- a/haskell-experiments/src/Datalog/NaiveQE.hs +++ b/haskell-experiments/src/Datalog/NaiveQE.hs @@ -52,7 +52,11 @@ computeHerbrand db = if changed then Just newFacts else Nothing where (newFacts, changed) = foldr amalgamateRelation (facts, False) allRelationNames amalgamateRelation :: Text -> NewFacts -> NewFacts - amalgamateRelation relationName newFacts = newFacts + amalgamateRelation relationName newFacts = + maybe newFacts (amalgamateRelationSub newFacts) $ lookupRelation db relationName + amalgamateRelationSub :: NewFacts -> Relation -> NewFacts + amalgamateRelationSub newFacts relation = + newFacts computeHerbrandSub :: Map Text Relation -> Map Text Relation computeHerbrandSub facts = maybe facts computeHerbrandSub (updateFacts facts)