further delinting

This commit is contained in:
Felix Dilke 2026-02-11 18:11:00 +00:00
parent d17b33567d
commit 7364f393bd
4 changed files with 10 additions and 23 deletions

View File

@ -1,17 +1,9 @@
module Datalog.DigestedQuery where
import Data.Void
import Data.Text (Text)
import qualified Data.Text as T
import Text.Megaparsec
import Text.Megaparsec.Char
import qualified Text.Megaparsec.Char.Lexer as L
import Control.Monad (void)
import Data.Functor (($>))
import Datalog.DatalogDB (Relation, Constant, DatalogDBException (..))
import Datalog.DatalogDB (Constant, DatalogDBException (..))
import Datalog.DatalogParser
import Control.Exception (throw)
import GHC.TypeError (ErrorMessage(Text))
import Data.List (nub, elemIndex)
data DigestedQuery = DigestedQuery {
@ -42,22 +34,22 @@ digestQuerySub variables literals =
DigestedQuery {
allBoundVariables = allBoundVariables,
numSoughtVariables =
if (null variables) then (length allBoundVariables) else (length variables),
length $ if null variables then allBoundVariables else variables,
conditions = extractCondition <$> literals
} where
allBoundVariables = nub $ variables ++ extractedVariables
extractedVariables :: [Text] =
nub $ concatMap extractVariablesSub literals
extractVariablesSub :: Literal -> [Text]
extractVariablesSub literal =
concatMap extractVariablesSubSub (arguments literal)
extractVariablesSub lit =
concatMap extractVariablesSubSub (arguments lit)
extractVariablesSubSub :: Term -> [Text]
extractVariablesSubSub (Var name) = [name]
extractVariablesSubSub _ = []
extractCondition :: Literal -> DigestedQueryCondition
extractCondition literal = DigestedQueryCondition {
__relation = predName literal,
_entries = extractEntry <$> (arguments literal)
extractCondition lit = DigestedQueryCondition {
__relation = predName lit,
_entries = extractEntry <$> arguments lit
}
extractEntry :: Term -> DigestedQueryEntry
extractEntry (Var varName) = case elemIndex varName allBoundVariables of

View File

@ -6,7 +6,6 @@
{-# LANGUAGE ImportQualifiedPost #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE DatatypeContexts #-}
module Datalog.NaiveQE where
import Datalog.QueryEngine
@ -22,10 +21,8 @@ import Control.Monad(guard)
import Data.Set (Set)
import Data.Set qualified as Set
import Data.Functor ((<&>))
import Data.List (nub)
import qualified Data.List.NonEmpty as List
data (DatalogDB db) => NaiveQE db = NaiveQE
data NaiveQE db = NaiveQE
{
db :: db,
herbrand :: Map Text Relation
@ -76,7 +73,7 @@ computeHerbrand db =
else newFacts
where
(facts, wasChanged) = newFacts
latestRelation = facts Map.! (_name relation)
latestRelation = facts Map.! _name relation
knownTuples :: Set [Constant] = _tuples latestRelation
extraTuples = do
varmap <- allMaps headVars (Set.toList $ allConstants db)

View File

@ -2,7 +2,6 @@
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# LANGUAGE DatatypeContexts #-}
module Datalog.Rules where
@ -61,7 +60,7 @@ addRule (ruleHead, body) db =
, bodyElements = toRuleBodyElement <$> _bodyConstraints context'
}
data (DatalogDB db) => RuleContext db = RuleContext
data RuleContext db = RuleContext
{ __relation :: Relation
, _variableNames :: [Text]
, _headEntries :: [RuleElement]

View File

@ -2,7 +2,6 @@
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# LANGUAGE DatatypeContexts #-}
module Utility.Utility where