diff --git a/dhscanner-kbgen.cabal b/dhscanner-kbgen.cabal
--- a/dhscanner-kbgen.cabal
+++ b/dhscanner-kbgen.cabal
@@ -33,7 +33,7 @@
         * explain in plain English your query's purpose
         * et voilà !
 
-version:            1.0.28
+version:            1.0.29
 license:            GPL-3.0-only
 license-file:       LICENSE
 author:             OrenGitHub
diff --git a/src/Kbgen.hs b/src/Kbgen.hs
--- a/src/Kbgen.hs
+++ b/src/Kbgen.hs
@@ -245,7 +245,7 @@
 -- This is how the fact will look inside the Prolog file
 --
 -- @
--- kb_func_def( Func, Name, DefinedInFile ).
+-- kb_func_def( Func, Name, DefinedInFile, DefinedInDir ).
 -- @
 --
 -- __When should I use this fact__ ( motivation: [CVE-2024-29028](https://nvd.nist.gov/vuln/detail/CVE-2024-29028) )
@@ -824,7 +824,8 @@
 -- * often, a single bitcode instruction will yield /more/ than one fact
 --
 data Fact
-   = ClassDefCtor ClassDef
+   = FuncDefCtor FuncDef 
+   | ClassDefCtor ClassDef
    | ParamNameCtor ParamName
    | ArgiForCallCtor ArgiForCall
    | ConstStringCtor ConstString
@@ -854,8 +855,9 @@
 -- @
 --
 prologify :: Fact -> String
-prologify (ParamNameCtor content) = prologify_ParamName content
+prologify (FuncDefCtor content) = prologify_FuncDef content
 prologify (ClassDefCtor content) = prologify_ClassDef content
+prologify (ParamNameCtor content) = prologify_ParamName content
 prologify (ArgiForCallCtor content) = prologifyArgiForCall content
 prologify (ConstStringCtor content) = prologify_ConstString content
 prologify (DataflowEdgeCtor content) = prologify_DataflowEdge content
@@ -896,6 +898,12 @@
 
 prologify_ClassDef :: ClassDef -> String
 prologify_ClassDef (ClassDef (Class loc) (Token.ClassName (Token.Named name _)) (ClassDefinedInFile f)) = prologify_ClassDef' loc name f
+
+prologify_FuncDef' :: Location -> String -> FilePath -> FilePath -> String
+prologify_FuncDef' l name f d = printf "kb_func_def( %s, \'%s\', \'%s\', \'%s\' )." (locationify l) name f d
+
+prologify_FuncDef :: FuncDef -> String
+prologify_FuncDef (FuncDef (Func loc) (Token.FuncName (Token.Named name _)) (FuncDefinedInFile f) (FuncDefinedInDir d)) = prologify_FuncDef' loc name f d
 
 unquote :: String -> String
 unquote = filter (/= '\'')
