diff --git a/haskell-experiments/src/Datalog/NaiveQE.hs b/haskell-experiments/src/Datalog/NaiveQE.hs index aeaff9d..deb0ebc 100644 --- a/haskell-experiments/src/Datalog/NaiveQE.hs +++ b/haskell-experiments/src/Datalog/NaiveQE.hs @@ -14,19 +14,22 @@ module Datalog.NaiveQE where import Datalog.QueryEngine import Data.Text +import Data.Map (Map) +import Data.Map qualified as Map import Datalog.DatalogDB import Datalog.DatalogParser import Control.Exception -data NaiveQE = NaiveQE +data (DatalogDB db) => NaiveQE db = NaiveQE { - + db :: db, + herbrand :: Map Text Relation } deriving (Show, Eq) instance QueryEngine NaiveQE where - queryEngine :: (DatalogDB db) => db -> NaiveQE + queryEngine :: (DatalogDB db) => db -> NaiveQE db queryEngine db = NaiveQE { } - query :: NaiveQE -> Text -> Text + query :: (DatalogDB db) => NaiveQE db -> Text -> Text query qe queryText = case parseDatalog queryText of Right (Query texts literals) -> "#NYI" diff --git a/haskell-experiments/src/Datalog/QueryEngine.hs b/haskell-experiments/src/Datalog/QueryEngine.hs index 10080d4..d3cc0dd 100644 --- a/haskell-experiments/src/Datalog/QueryEngine.hs +++ b/haskell-experiments/src/Datalog/QueryEngine.hs @@ -10,7 +10,7 @@ import Datalog.DatalogDB import Data.Text class QueryEngine qe where - queryEngine :: (DatalogDB db) => db -> qe - query :: qe -> Text -> Text + queryEngine :: (DatalogDB db) => db -> qe db + query :: (DatalogDB db) => qe db -> Text -> Text