diff --git a/LambdaHack.cabal b/LambdaHack.cabal
--- a/LambdaHack.cabal
+++ b/LambdaHack.cabal
@@ -6,7 +6,7 @@
 -- PVP summary:+-+------- breaking API changes
 --             | | +----- minor or non-breaking API additions
 --             | | | +--- code changes with no API change
-version:       0.9.4.0
+version:       0.9.4.1
 synopsis:      A game engine library for tactical squad ASCII roguelike dungeon crawlers
 description:   LambdaHack is a Haskell game engine library for ASCII roguelike
                games of arbitrary theme, size and complexity, with optional
@@ -42,6 +42,10 @@
                when developing the library --- library users are free
                to access any modules, since the library authors are in
                no position to guess their particular needs.
+               .
+               This is a workaround .cabal file, flattened to eliminated
+               internal libraries until generating haddocks for them
+               is fixed. The original .cabal file is stored in the github repo.
 homepage:      https://lambdahack.github.io
 bug-reports:   http://github.com/LambdaHack/LambdaHack/issues
 license:       BSD-3-Clause
@@ -161,9 +165,12 @@
   if !flag(supportNodeJS)
     ghcjs-options:    -DGHCJS_BROWSER
 
-library definition
+library
   import: options
-  hs-source-dirs:     definition-src
+  hs-source-dirs:     definition-src,
+                      engine-src,
+                      GameDefinition/game-src,
+                      GameDefinition
   exposed-modules:    Game.LambdaHack.Core.Dice
                       Game.LambdaHack.Core.Frequency
                       Game.LambdaHack.Core.Prelude
@@ -179,30 +186,7 @@
                       Game.LambdaHack.Content.PlaceKind
                       Game.LambdaHack.Content.RuleKind
                       Game.LambdaHack.Content.TileKind
-  build-depends:
-                      ,assert-failure
-                      ,base
-                      ,base-compat
-                      ,binary
-                      ,containers
-                      ,deepseq
-                      ,enummapset
-                      ,ghc-prim
-                      ,hashable
-                      ,keys
-                      ,miniutter
-                      ,random
-                      ,time
-                      ,text
-                      ,transformers
-                      ,unordered-containers
-                      ,vector
-                      ,vector-binary-instances
-
-library
-  import: options
-  hs-source-dirs:     engine-src
-  exposed-modules:    Game.LambdaHack.Atomic
+                      Game.LambdaHack.Atomic
                       Game.LambdaHack.Atomic.CmdAtomic
                       Game.LambdaHack.Atomic.HandleAtomicWrite
                       Game.LambdaHack.Atomic.MonadStateWrite
@@ -310,25 +294,26 @@
                       Game.LambdaHack.Server.ServerOptions
                       Game.LambdaHack.Server.StartM
                       Game.LambdaHack.Server.State
-  reexported-modules: ,Game.LambdaHack.Core.Dice
-                      ,Game.LambdaHack.Core.Frequency
-                      ,Game.LambdaHack.Core.Prelude
-                      ,Game.LambdaHack.Core.Random
-                      ,Game.LambdaHack.Definition.Ability
-                      ,Game.LambdaHack.Definition.Color
-                      ,Game.LambdaHack.Definition.ContentData
-                      ,Game.LambdaHack.Definition.Defs
-                      ,Game.LambdaHack.Definition.Flavour
-                      ,Game.LambdaHack.Content.CaveKind
-                      ,Game.LambdaHack.Content.ItemKind
-                      ,Game.LambdaHack.Content.ModeKind
-                      ,Game.LambdaHack.Content.PlaceKind
-                      ,Game.LambdaHack.Content.RuleKind
-                      ,Game.LambdaHack.Content.TileKind
+  exposed-modules:    Content.CaveKind
+                      Content.ItemKind
+                      Content.ItemKindEmbed
+                      Content.ItemKindActor
+                      Content.ItemKindOrgan
+                      Content.ItemKindBlast
+                      Content.ItemKindTemporary
+                      Content.ModeKind
+                      Content.ModeKindPlayer
+                      Content.PlaceKind
+                      Content.RuleKind
+                      Content.TileKind
+                      TieKnot
+                      Client.UI.Content.Input
+                      Client.UI.Content.Screen
+                      Implementation.MonadClientImplementation
+                      Implementation.MonadServerImplementation
   other-modules:      Paths_LambdaHack
   autogen-modules:    Paths_LambdaHack
-  build-depends:      definition,
-                      assert-failure >= 0.1.2 && < 0.2,
+  build-depends:      assert-failure >= 0.1.2 && < 0.2,
                       async      >= 2,
                       base       >= 4.10 && < 99,
                       base-compat >= 0.8.0,
@@ -354,7 +339,9 @@
                       transformers >= 0.4,
                       unordered-containers >= 0.2.3,
                       vector     >= 0.11,
-                      vector-binary-instances >= 0.2.3.1
+                      vector-binary-instances >= 0.2.3.1,
+                      template-haskell >= 2.6,
+                      ghc-compact
 
   if impl(ghcjs) || flag(jsaddle) {
     exposed-modules:    Game.LambdaHack.Client.UI.Frontend.Dom
@@ -385,56 +372,10 @@
     build-depends:    zlib >= 0.5.3.1
   }
 
-library this-game-content
-  import: options
-  hs-source-dirs:     GameDefinition
-  exposed-modules:    Content.CaveKind
-                      Content.ItemKind
-                      Content.ItemKindEmbed
-                      Content.ItemKindActor
-                      Content.ItemKindOrgan
-                      Content.ItemKindBlast
-                      Content.ItemKindTemporary
-                      Content.ModeKind
-                      Content.ModeKindPlayer
-                      Content.PlaceKind
-                      Content.RuleKind
-                      Content.TileKind
-  other-modules:      Paths_LambdaHack
-  autogen-modules:    Paths_LambdaHack
-  build-depends:      ,definition
-                      ,base
-                      ,filepath
-                      ,template-haskell
-                      ,text
-
-library this-game-src
-  import: options
-  hs-source-dirs:     GameDefinition/game-src
-  exposed-modules:    TieKnot
-  other-modules:      Client.UI.Content.Input
-                      Client.UI.Content.Screen
-                      Implementation.MonadClientImplementation
-                      Implementation.MonadServerImplementation
-  build-depends:      ,LambdaHack
-                      ,this-game-content
-                      ,async
-                      ,base
-                      ,enummapset
-                      ,filepath
-                      ,ghc-compact
-                      ,optparse-applicative
-                      ,primitive
-                      ,random
-                      ,template-haskell >= 2.6
-                      ,text
-                      ,transformers
-
 executable LambdaHack
   import: options, exe-options
   main-is:            GameDefinition/Main.hs
   build-depends:      ,LambdaHack
-                      ,this-game-src
                       ,async
                       ,base
                       ,filepath
@@ -445,7 +386,6 @@
   type:               exitcode-stdio-1.0
   main-is:            test/test.hs
   build-depends:      ,LambdaHack
-                      ,this-game-src
                       ,async
                       ,base
                       ,filepath
