21 lines
670 B
Haskell
21 lines
670 B
Haskell
|
|
{-# HLINT ignore "Redundant flip" #-}
|
||
|
|
{-# LANGUAGE ImportQualifiedPost #-}
|
||
|
|
{-# LANGUAGE ScopedTypeVariables #-}
|
||
|
|
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
|
||
|
|
|
||
|
|
module Utility.Utility where
|
||
|
|
|
||
|
|
import Control.Exception.Base
|
||
|
|
import Data.List
|
||
|
|
import Data.Maybe
|
||
|
|
import Data.Set qualified as Set
|
||
|
|
import Data.Text (Text)
|
||
|
|
import Datalog.DatalogParser (Head (HeadSingle), Literal (..), Statement (..), Term (..), parseDatalog)
|
||
|
|
import Datalog.DatalogDB
|
||
|
|
|
||
|
|
import qualified Data.Map as Map
|
||
|
|
|
||
|
|
-- All functions from domain to codomain
|
||
|
|
allMaps :: Ord a => [a] -> [b] -> [Map.Map a b]
|
||
|
|
allMaps [] _ = [Map.empty]
|
||
|
|
allMaps (x:xs) cod = [ Map.insert x y m | y <- cod, m <- allMaps xs cod ]
|