packages feed

Cabal revisions of LambdaHack-0.2.14

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-name:          LambdaHack-version:       0.2.14-synopsis:      A roguelike game engine in early development-description:   This is an alpha release of LambdaHack,-               a game engine library for roguelike games-               of arbitrary theme, size and complexity,-               packaged together with a small example dungeon crawler.-               .-               <<GameDefinition/screenshot.png>>-               .-               When completed, the engine will let you specify content-               to be procedurally generated, define the AI behaviour-               on top of the generic content-independent rules-               and compile a ready-to-play game binary, using either-               the supplied or a custom-made main loop.-               Several frontends are available (GTK is the default)-               and many other generic engine components are easily overridden,-               but the fundamental source of flexibility lies-               in the strict and type-safe separation of code and content-               and of clients (human and AI-controlled) and server.-               Please see the changelog file for recent improvements-               and the issue tracker for short-term plans. Long term vision-               revolves around procedural content generation and includes-               in-game content creation, auto-balancing and persistent-               content modification based on player behaviour.-               .-               A larger game that depends on the LambdaHack library-               is Allure of the Stars, available from-               <http://hackage.haskell.org/package/Allure>.-               .-               Note: All modules in this library are kept visible,-               to let games override and reuse them.-               OTOH, to reflect that some modules are implementation details-               relative to others, the source code adheres to the following-               convention. If a module has the same name as a directory,-               the module is the exclusive interface to the directory.-               No references to the modules in the directory are allowed-               except from the interface module. This policy is only binding-               inside the library --- users are free to do whatever they-               please, since the library authors are in no position to guess-               their particular needs.-homepage:      http://github.com/LambdaHack/LambdaHack-bug-reports:   http://github.com/LambdaHack/LambdaHack/issues-license:       BSD3-license-file:  LICENSE-tested-with:   GHC == 7.6.3, GHC == 7.8-data-files:    GameDefinition/config.ui.default,-               GameDefinition/scores-extra-source-files: GameDefinition/PLAYING.md, GameDefinition/MainMenu.ascii,-                    README.md, LICENSE, CREDITS, CHANGELOG.md, Makefile-extra-doc-files: GameDefinition/screenshot.png-author:        Andres Loeh, Mikolaj Konarski-maintainer:    Mikolaj Konarski <mikolaj.konarski@funktory.com>-category:      Game Engine, Game-build-type:    Simple-cabal-version: >= 1.10--source-repository head-  type:               git-  location:           git://github.com/LambdaHack/LambdaHack.git--flag vty-  description:        switch to the vty frontend-  default:            False--flag curses-  description:        switch to the curses frontend (not fully supported)-  default:            False--library-  exposed-modules:    Game.LambdaHack.Atomic-                      Game.LambdaHack.Atomic.CmdAtomic,-                      Game.LambdaHack.Atomic.BroadcastAtomicWrite,-                      Game.LambdaHack.Atomic.HandleAtomicWrite,-                      Game.LambdaHack.Atomic.MonadAtomic,-                      Game.LambdaHack.Atomic.MonadStateWrite,-                      Game.LambdaHack.Atomic.PosAtomicRead,-                      Game.LambdaHack.Client,-                      Game.LambdaHack.Client.AI-                      Game.LambdaHack.Client.AI.ConditionClient,-                      Game.LambdaHack.Client.AI.HandleAbilityClient,-                      Game.LambdaHack.Client.AI.PickActorClient-                      Game.LambdaHack.Client.AI.PickTargetClient-                      Game.LambdaHack.Client.AI.Preferences-                      Game.LambdaHack.Client.AI.Strategy,-                      Game.LambdaHack.Client.Bfs,-                      Game.LambdaHack.Client.BfsClient,-                      Game.LambdaHack.Client.CommonClient,-                      Game.LambdaHack.Client.HandleAtomicClient,-                      Game.LambdaHack.Client.HandleResponseClient,-                      Game.LambdaHack.Client.ItemSlot,-                      Game.LambdaHack.Client.Key,-                      Game.LambdaHack.Client.LoopClient,-                      Game.LambdaHack.Client.MonadClient,-                      Game.LambdaHack.Client.ProtocolClient,-                      Game.LambdaHack.Client.State,-                      Game.LambdaHack.Client.UI,-                      Game.LambdaHack.Client.UI.Animation,-                      Game.LambdaHack.Client.UI.Config,-                      Game.LambdaHack.Client.UI.Content.KeyKind-                      Game.LambdaHack.Client.UI.DrawClient,-                      Game.LambdaHack.Client.UI.DisplayAtomicClient,-                      Game.LambdaHack.Client.UI.Frontend,-                      Game.LambdaHack.Client.UI.Frontend.Chosen,-                      Game.LambdaHack.Client.UI.Frontend.Std,-                      Game.LambdaHack.Client.UI.HandleHumanGlobalClient,-                      Game.LambdaHack.Client.UI.HandleHumanLocalClient,-                      Game.LambdaHack.Client.UI.HandleHumanClient,-                      Game.LambdaHack.Client.UI.HumanCmd,-                      Game.LambdaHack.Client.UI.InventoryClient,-                      Game.LambdaHack.Client.UI.KeyBindings,-                      Game.LambdaHack.Client.UI.MonadClientUI,-                      Game.LambdaHack.Client.UI.MsgClient,-                      Game.LambdaHack.Client.UI.RunClient,-                      Game.LambdaHack.Client.UI.StartupFrontendClient-                      Game.LambdaHack.Client.UI.WidgetClient,-                      Game.LambdaHack.Common.Ability,-                      Game.LambdaHack.Common.Actor,-                      Game.LambdaHack.Common.ActorState,-                      Game.LambdaHack.Common.ClientOptions,-                      Game.LambdaHack.Common.Color,-                      Game.LambdaHack.Common.ContentDef,-                      Game.LambdaHack.Common.Dice,-                      Game.LambdaHack.Common.Effect,-                      Game.LambdaHack.Common.EffectDescription,-                      Game.LambdaHack.Common.Faction,-                      Game.LambdaHack.Common.Feature,-                      Game.LambdaHack.Common.File,-                      Game.LambdaHack.Common.Flavour,-                      Game.LambdaHack.Common.Frequency,-                      Game.LambdaHack.Common.HighScore,-                      Game.LambdaHack.Common.Item,-                      Game.LambdaHack.Common.ItemDescription,-                      Game.LambdaHack.Common.ItemStrongest,-                      Game.LambdaHack.Common.Kind,-                      Game.LambdaHack.Common.Level,-                      Game.LambdaHack.Common.LQueue,-                      Game.LambdaHack.Common.Misc,-                      Game.LambdaHack.Common.MonadStateRead,-                      Game.LambdaHack.Common.Msg,-                      Game.LambdaHack.Common.Perception,-                      Game.LambdaHack.Common.PointArray,-                      Game.LambdaHack.Common.Point,-                      Game.LambdaHack.Common.Random,-                      Game.LambdaHack.Common.Save,-                      Game.LambdaHack.Common.Request,-                      Game.LambdaHack.Common.Response,-                      Game.LambdaHack.Common.State,-                      Game.LambdaHack.Common.Thread,-                      Game.LambdaHack.Common.Tile,-                      Game.LambdaHack.Common.Time,-                      Game.LambdaHack.Common.Vector,-                      Game.LambdaHack.Content.CaveKind,-                      Game.LambdaHack.Content.FactionKind,-                      Game.LambdaHack.Content.ItemKind,-                      Game.LambdaHack.Content.ModeKind,-                      Game.LambdaHack.Content.PlaceKind,-                      Game.LambdaHack.Content.RuleKind,-                      Game.LambdaHack.Content.TileKind,-                      Game.LambdaHack.SampleImplementation.SampleMonadClient,-                      Game.LambdaHack.SampleImplementation.SampleMonadServer,-                      Game.LambdaHack.Server,-                      Game.LambdaHack.Server.Commandline,-                      Game.LambdaHack.Server.CommonServer,-                      Game.LambdaHack.Server.DebugServer,-                      Game.LambdaHack.Server.DungeonGen,-                      Game.LambdaHack.Server.DungeonGen.Area,-                      Game.LambdaHack.Server.DungeonGen.AreaRnd,-                      Game.LambdaHack.Server.DungeonGen.Cave,-                      Game.LambdaHack.Server.DungeonGen.Place,-                      Game.LambdaHack.Server.EndServer,-                      Game.LambdaHack.Server.Fov,-                      Game.LambdaHack.Server.Fov.Common,-                      Game.LambdaHack.Server.Fov.Digital,-                      Game.LambdaHack.Server.Fov.Permissive,-                      Game.LambdaHack.Server.Fov.Shadow,-                      Game.LambdaHack.Server.HandleEffectServer,-                      Game.LambdaHack.Server.HandleRequestServer,-                      Game.LambdaHack.Server.ItemRev,-                      Game.LambdaHack.Server.ItemServer,-                      Game.LambdaHack.Server.LoopServer,-                      Game.LambdaHack.Server.MonadServer,-                      Game.LambdaHack.Server.PeriodicServer,-                      Game.LambdaHack.Server.ProtocolServer,-                      Game.LambdaHack.Server.StartServer,-                      Game.LambdaHack.Server.State-  other-modules:      Paths_LambdaHack-  build-depends:      array      >= 0.3.0.3 && < 1,-                      assert-failure >= 0.1 && < 1,-                      async      >= 2       && < 3,-                      base       >= 4       && < 5,-                      binary     >= 0.7     && < 1,-                      bytestring >= 0.9.2   && < 1,-                      containers >= 0.5     && < 1,-                      deepseq    >= 1.3     && < 2,-                      directory  >= 1.1.0.1 && < 2,-                      enummapset-th >= 0.6.0.0 && < 1,-                      filepath   >= 1.2.0.1 && < 2,-                      ghc-prim   >= 0.2,-                      hashable   >= 1.1.2.5 && < 2,-                      hsini      >= 0.2     && < 2,-                      keys       >= 3       && < 4,-                      miniutter  >= 0.4.1   && < 2,-                      mtl        >= 2.0.1   && < 3,-                      old-time   >= 1.0.0.7 && < 2,-                      pretty-show >= 1.6    && < 2,-                      random     >= 1.0.1   && < 2,-                      stm        >= 2.4     && < 3,-                      text       >= 0.11.2.3 && < 2,-                      transformers >= 0.3   && < 1,-                      unordered-containers >= 0.2.3 && < 1,-                      vector     >= 0.10    && < 1,-                      vector-binary-instances >= 0.2 && < 1,-                      zlib       >= 0.5.3.1 && < 1--  default-language:   Haskell2010-  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings-                      BangPatterns, RecordWildCards, NamedFieldPuns-  other-extensions:   CPP, TemplateHaskell, MultiParamTypeClasses, RankNTypes,-                      TypeFamilies, FlexibleContexts, FlexibleInstances,-                      DeriveFunctor, FunctionalDependencies,-                      GeneralizedNewtypeDeriving, TupleSections,-                      DeriveFoldable, DeriveTraversable,-                      ExistentialQuantification, GADTs, StandaloneDeriving,-                      DataKinds, KindSignatures---, DeriveGeneric-  ghc-options:        -Wall -fwarn-orphans -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-unrecognised-pragmas-  ghc-options:        -fno-warn-auto-orphans -fno-warn-implicit-prelude-  ghc-options:        -fno-ignore-asserts -funbox-strict-fields-  ghc-prof-options:   -fprof-auto-calls--  if flag(curses) {-    other-modules:    Game.LambdaHack.Client.UI.Frontend.Curses-    build-depends:    hscurses >= 1.4.1 && < 2-    cpp-options:      -DCURSES-  } else { if flag(vty) {-    other-modules:    Game.LambdaHack.Client.UI.Frontend.Vty-    build-depends:    vty >= 4.7.0.6 && < 5-    cpp-options:      -DVTY-  } else {-    other-modules:    Game.LambdaHack.Client.UI.Frontend.Gtk-    build-depends:    gtk >= 0.12.1 && < 0.13-  } }--executable LambdaHack-  hs-source-dirs:     GameDefinition-  main-is:            Main.hs-  other-modules:      Client.UI.Content.KeyKind,-                      Content.CaveKind,-                      Content.FactionKind,-                      Content.ItemKind,-                      Content.ItemKindActor,-                      Content.ItemKindOrgan,-                      Content.ItemKindShrapnel,-                      Content.ModeKind,-                      Content.PlaceKind,-                      Content.RuleKind,-                      Content.TileKind,-                      TieKnot,-                      Paths_LambdaHack-  build-depends:      LambdaHack,-                      template-haskell >= 2.6 && < 3,--                      array      >= 0.3.0.3 && < 1,-                      assert-failure >= 0.1 && < 1,-                      async      >= 2       && < 3,-                      base       >= 4       && < 5,-                      binary     >= 0.7     && < 1,-                      bytestring >= 0.9.2   && < 1,-                      containers >= 0.5     && < 1,-                      deepseq    >= 1.3     && < 2,-                      directory  >= 1.1.0.1 && < 2,-                      enummapset-th >= 0.6.0.0 && < 1,-                      filepath   >= 1.2.0.1 && < 2,-                      ghc-prim   >= 0.2,-                      hashable   >= 1.1.2.5 && < 2,-                      hsini      >= 0.2     && < 2,-                      keys       >= 3       && < 4,-                      miniutter  >= 0.4.1   && < 2,-                      mtl        >= 2.0.1   && < 3,-                      old-time   >= 1.0.0.7 && < 2,-                      pretty-show >= 1.6    && < 2,-                      random     >= 1.0.1   && < 2,-                      stm        >= 2.4     && < 3,-                      text       >= 0.11.2.3 && < 2,-                      transformers >= 0.3   && < 1,-                      unordered-containers >= 0.2.3 && < 1,-                      vector     >= 0.10    && < 1,-                      vector-binary-instances >= 0.2 && < 1,-                      zlib       >= 0.5.3.1 && < 1--  default-language:   Haskell2010-  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings-                      BangPatterns, RecordWildCards, NamedFieldPuns-  other-extensions:   TemplateHaskell-  ghc-options:        -Wall -fwarn-orphans -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-unrecognised-pragmas-  ghc-options:        -fno-warn-auto-orphans -fno-warn-implicit-prelude-  ghc-options:        -fno-ignore-asserts -funbox-strict-fields-  ghc-options:        -threaded -with-rtsopts=-C0.005 -rtsopts--- ghc-options:       -with-rtsopts=-N  -- eats all cores--test-suite test-  type:               exitcode-stdio-1.0-  hs-source-dirs:     GameDefinition, test-  main-is:            test.hs-  build-depends:      LambdaHack,-                      template-haskell >= 2.6 && < 3,--                      array      >= 0.3.0.3 && < 1,-                      assert-failure >= 0.1 && < 1,-                      async      >= 2       && < 3,-                      base       >= 4       && < 5,-                      binary     >= 0.7     && < 1,-                      bytestring >= 0.9.2   && < 1,-                      containers >= 0.5     && < 1,-                      deepseq    >= 1.3     && < 2,-                      directory  >= 1.1.0.1 && < 2,-                      enummapset-th >= 0.6.0.0 && < 1,-                      filepath   >= 1.2.0.1 && < 2,-                      ghc-prim   >= 0.2,-                      hashable   >= 1.1.2.5 && < 2,-                      hsini      >= 0.2     && < 2,-                      keys       >= 3       && < 4,-                      miniutter  >= 0.4.1   && < 2,-                      mtl        >= 2.0.1   && < 3,-                      old-time   >= 1.0.0.7 && < 2,-                      pretty-show >= 1.6    && < 2,-                      random     >= 1.0.1   && < 2,-                      stm        >= 2.4     && < 3,-                      text       >= 0.11.2.3 && < 2,-                      transformers >= 0.3   && < 1,-                      unordered-containers >= 0.2.3 && < 1,-                      vector     >= 0.10    && < 1,-                      vector-binary-instances >= 0.2 && < 1,-                      zlib       >= 0.5.3.1 && < 1--  default-language:   Haskell2010-  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings-                      BangPatterns, RecordWildCards, NamedFieldPuns-  other-extensions:   TemplateHaskell-  ghc-options:        -Wall -fwarn-orphans -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-unrecognised-pragmas-  ghc-options:        -fno-warn-auto-orphans -fno-warn-implicit-prelude-  ghc-options:        -fno-ignore-asserts -funbox-strict-fields-  ghc-options:        -threaded -with-rtsopts=-C0.005 -rtsopts+name:          LambdaHack
+version:       0.2.14
+x-revision: 1
+synopsis:      A roguelike game engine in early development
+description:   This is an alpha release of LambdaHack,
+               a game engine library for roguelike games
+               of arbitrary theme, size and complexity,
+               packaged together with a small example dungeon crawler.
+               .
+               <<https://raw.githubusercontent.com/LambdaHack/media/master/screenshot/skirmish1.png>>
+               .
+               When completed, the engine will let you specify content
+               to be procedurally generated, define the AI behaviour
+               on top of the generic content-independent rules
+               and compile a ready-to-play game binary, using either
+               the supplied or a custom-made main loop.
+               Several frontends are available (GTK is the default)
+               and many other generic engine components are easily overridden,
+               but the fundamental source of flexibility lies
+               in the strict and type-safe separation of code and content
+               and of clients (human and AI-controlled) and server.
+               Please see the changelog file for recent improvements
+               and the issue tracker for short-term plans. Long term vision
+               revolves around procedural content generation and includes
+               in-game content creation, auto-balancing and persistent
+               content modification based on player behaviour.
+               .
+               A larger game that depends on the LambdaHack library
+               is Allure of the Stars, available from
+               <http://hackage.haskell.org/package/Allure>.
+               .
+               Note: All modules in this library are kept visible,
+               to let games override and reuse them.
+               OTOH, to reflect that some modules are implementation details
+               relative to others, the source code adheres to the following
+               convention. If a module has the same name as a directory,
+               the module is the exclusive interface to the directory.
+               No references to the modules in the directory are allowed
+               except from the interface module. This policy is only binding
+               inside the library --- users are free to do whatever they
+               please, since the library authors are in no position to guess
+               their particular needs.
+homepage:      http://github.com/LambdaHack/LambdaHack
+bug-reports:   http://github.com/LambdaHack/LambdaHack/issues
+license:       BSD3
+license-file:  LICENSE
+tested-with:   GHC == 7.6.3, GHC == 7.8
+data-files:    GameDefinition/config.ui.default,
+               GameDefinition/scores
+extra-source-files: GameDefinition/PLAYING.md, GameDefinition/MainMenu.ascii,
+                    README.md, LICENSE, CREDITS, CHANGELOG.md, Makefile
+extra-doc-files: GameDefinition/screenshot.png
+author:        Andres Loeh, Mikolaj Konarski
+maintainer:    Mikolaj Konarski <mikolaj.konarski@funktory.com>
+category:      Game Engine, Game
+build-type:    Simple
+cabal-version: >= 1.10
+
+source-repository head
+  type:               git
+  location:           git://github.com/LambdaHack/LambdaHack.git
+
+flag vty
+  description:        switch to the vty frontend
+  default:            False
+
+flag curses
+  description:        switch to the curses frontend (not fully supported)
+  default:            False
+
+library
+  exposed-modules:    Game.LambdaHack.Atomic
+                      Game.LambdaHack.Atomic.CmdAtomic,
+                      Game.LambdaHack.Atomic.BroadcastAtomicWrite,
+                      Game.LambdaHack.Atomic.HandleAtomicWrite,
+                      Game.LambdaHack.Atomic.MonadAtomic,
+                      Game.LambdaHack.Atomic.MonadStateWrite,
+                      Game.LambdaHack.Atomic.PosAtomicRead,
+                      Game.LambdaHack.Client,
+                      Game.LambdaHack.Client.AI
+                      Game.LambdaHack.Client.AI.ConditionClient,
+                      Game.LambdaHack.Client.AI.HandleAbilityClient,
+                      Game.LambdaHack.Client.AI.PickActorClient
+                      Game.LambdaHack.Client.AI.PickTargetClient
+                      Game.LambdaHack.Client.AI.Preferences
+                      Game.LambdaHack.Client.AI.Strategy,
+                      Game.LambdaHack.Client.Bfs,
+                      Game.LambdaHack.Client.BfsClient,
+                      Game.LambdaHack.Client.CommonClient,
+                      Game.LambdaHack.Client.HandleAtomicClient,
+                      Game.LambdaHack.Client.HandleResponseClient,
+                      Game.LambdaHack.Client.ItemSlot,
+                      Game.LambdaHack.Client.Key,
+                      Game.LambdaHack.Client.LoopClient,
+                      Game.LambdaHack.Client.MonadClient,
+                      Game.LambdaHack.Client.ProtocolClient,
+                      Game.LambdaHack.Client.State,
+                      Game.LambdaHack.Client.UI,
+                      Game.LambdaHack.Client.UI.Animation,
+                      Game.LambdaHack.Client.UI.Config,
+                      Game.LambdaHack.Client.UI.Content.KeyKind
+                      Game.LambdaHack.Client.UI.DrawClient,
+                      Game.LambdaHack.Client.UI.DisplayAtomicClient,
+                      Game.LambdaHack.Client.UI.Frontend,
+                      Game.LambdaHack.Client.UI.Frontend.Chosen,
+                      Game.LambdaHack.Client.UI.Frontend.Std,
+                      Game.LambdaHack.Client.UI.HandleHumanGlobalClient,
+                      Game.LambdaHack.Client.UI.HandleHumanLocalClient,
+                      Game.LambdaHack.Client.UI.HandleHumanClient,
+                      Game.LambdaHack.Client.UI.HumanCmd,
+                      Game.LambdaHack.Client.UI.InventoryClient,
+                      Game.LambdaHack.Client.UI.KeyBindings,
+                      Game.LambdaHack.Client.UI.MonadClientUI,
+                      Game.LambdaHack.Client.UI.MsgClient,
+                      Game.LambdaHack.Client.UI.RunClient,
+                      Game.LambdaHack.Client.UI.StartupFrontendClient
+                      Game.LambdaHack.Client.UI.WidgetClient,
+                      Game.LambdaHack.Common.Ability,
+                      Game.LambdaHack.Common.Actor,
+                      Game.LambdaHack.Common.ActorState,
+                      Game.LambdaHack.Common.ClientOptions,
+                      Game.LambdaHack.Common.Color,
+                      Game.LambdaHack.Common.ContentDef,
+                      Game.LambdaHack.Common.Dice,
+                      Game.LambdaHack.Common.Effect,
+                      Game.LambdaHack.Common.EffectDescription,
+                      Game.LambdaHack.Common.Faction,
+                      Game.LambdaHack.Common.Feature,
+                      Game.LambdaHack.Common.File,
+                      Game.LambdaHack.Common.Flavour,
+                      Game.LambdaHack.Common.Frequency,
+                      Game.LambdaHack.Common.HighScore,
+                      Game.LambdaHack.Common.Item,
+                      Game.LambdaHack.Common.ItemDescription,
+                      Game.LambdaHack.Common.ItemStrongest,
+                      Game.LambdaHack.Common.Kind,
+                      Game.LambdaHack.Common.Level,
+                      Game.LambdaHack.Common.LQueue,
+                      Game.LambdaHack.Common.Misc,
+                      Game.LambdaHack.Common.MonadStateRead,
+                      Game.LambdaHack.Common.Msg,
+                      Game.LambdaHack.Common.Perception,
+                      Game.LambdaHack.Common.PointArray,
+                      Game.LambdaHack.Common.Point,
+                      Game.LambdaHack.Common.Random,
+                      Game.LambdaHack.Common.Save,
+                      Game.LambdaHack.Common.Request,
+                      Game.LambdaHack.Common.Response,
+                      Game.LambdaHack.Common.State,
+                      Game.LambdaHack.Common.Thread,
+                      Game.LambdaHack.Common.Tile,
+                      Game.LambdaHack.Common.Time,
+                      Game.LambdaHack.Common.Vector,
+                      Game.LambdaHack.Content.CaveKind,
+                      Game.LambdaHack.Content.FactionKind,
+                      Game.LambdaHack.Content.ItemKind,
+                      Game.LambdaHack.Content.ModeKind,
+                      Game.LambdaHack.Content.PlaceKind,
+                      Game.LambdaHack.Content.RuleKind,
+                      Game.LambdaHack.Content.TileKind,
+                      Game.LambdaHack.SampleImplementation.SampleMonadClient,
+                      Game.LambdaHack.SampleImplementation.SampleMonadServer,
+                      Game.LambdaHack.Server,
+                      Game.LambdaHack.Server.Commandline,
+                      Game.LambdaHack.Server.CommonServer,
+                      Game.LambdaHack.Server.DebugServer,
+                      Game.LambdaHack.Server.DungeonGen,
+                      Game.LambdaHack.Server.DungeonGen.Area,
+                      Game.LambdaHack.Server.DungeonGen.AreaRnd,
+                      Game.LambdaHack.Server.DungeonGen.Cave,
+                      Game.LambdaHack.Server.DungeonGen.Place,
+                      Game.LambdaHack.Server.EndServer,
+                      Game.LambdaHack.Server.Fov,
+                      Game.LambdaHack.Server.Fov.Common,
+                      Game.LambdaHack.Server.Fov.Digital,
+                      Game.LambdaHack.Server.Fov.Permissive,
+                      Game.LambdaHack.Server.Fov.Shadow,
+                      Game.LambdaHack.Server.HandleEffectServer,
+                      Game.LambdaHack.Server.HandleRequestServer,
+                      Game.LambdaHack.Server.ItemRev,
+                      Game.LambdaHack.Server.ItemServer,
+                      Game.LambdaHack.Server.LoopServer,
+                      Game.LambdaHack.Server.MonadServer,
+                      Game.LambdaHack.Server.PeriodicServer,
+                      Game.LambdaHack.Server.ProtocolServer,
+                      Game.LambdaHack.Server.StartServer,
+                      Game.LambdaHack.Server.State
+  other-modules:      Paths_LambdaHack
+  build-depends:      array      >= 0.3.0.3 && < 1,
+                      assert-failure >= 0.1 && < 1,
+                      async      >= 2       && < 3,
+                      base       >= 4       && < 5,
+                      binary     >= 0.7     && < 1,
+                      bytestring >= 0.9.2   && < 1,
+                      containers >= 0.5     && < 1,
+                      deepseq    >= 1.3     && < 2,
+                      directory  >= 1.1.0.1 && < 2,
+                      enummapset-th >= 0.6.0.0 && < 1,
+                      filepath   >= 1.2.0.1 && < 2,
+                      ghc-prim   >= 0.2,
+                      hashable   >= 1.1.2.5 && < 2,
+                      hsini      >= 0.2     && < 2,
+                      keys       >= 3       && < 4,
+                      miniutter  >= 0.4.1   && < 2,
+                      mtl        >= 2.0.1   && < 3,
+                      old-time   >= 1.0.0.7 && < 2,
+                      pretty-show >= 1.6    && < 2,
+                      random     >= 1.0.1   && < 2,
+                      stm        >= 2.4     && < 3,
+                      text       >= 0.11.2.3 && < 2,
+                      transformers >= 0.3   && < 1,
+                      unordered-containers >= 0.2.3 && < 1,
+                      vector     >= 0.10    && < 1,
+                      vector-binary-instances >= 0.2 && < 1,
+                      zlib       >= 0.5.3.1 && < 1
+
+  default-language:   Haskell2010
+  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings
+                      BangPatterns, RecordWildCards, NamedFieldPuns
+  other-extensions:   CPP, TemplateHaskell, MultiParamTypeClasses, RankNTypes,
+                      TypeFamilies, FlexibleContexts, FlexibleInstances,
+                      DeriveFunctor, FunctionalDependencies,
+                      GeneralizedNewtypeDeriving, TupleSections,
+                      DeriveFoldable, DeriveTraversable,
+                      ExistentialQuantification, GADTs, StandaloneDeriving,
+                      DataKinds, KindSignatures
+--, DeriveGeneric
+  ghc-options:        -Wall -fwarn-orphans -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-unrecognised-pragmas
+  ghc-options:        -fno-warn-auto-orphans -fno-warn-implicit-prelude
+  ghc-options:        -fno-ignore-asserts -funbox-strict-fields
+  ghc-prof-options:   -fprof-auto-calls
+
+  if flag(curses) {
+    other-modules:    Game.LambdaHack.Client.UI.Frontend.Curses
+    build-depends:    hscurses >= 1.4.1 && < 2
+    cpp-options:      -DCURSES
+  } else { if flag(vty) {
+    other-modules:    Game.LambdaHack.Client.UI.Frontend.Vty
+    build-depends:    vty >= 4.7.0.6 && < 5
+    cpp-options:      -DVTY
+  } else {
+    other-modules:    Game.LambdaHack.Client.UI.Frontend.Gtk
+    build-depends:    gtk >= 0.12.1 && < 0.13
+  } }
+
+executable LambdaHack
+  hs-source-dirs:     GameDefinition
+  main-is:            Main.hs
+  other-modules:      Client.UI.Content.KeyKind,
+                      Content.CaveKind,
+                      Content.FactionKind,
+                      Content.ItemKind,
+                      Content.ItemKindActor,
+                      Content.ItemKindOrgan,
+                      Content.ItemKindShrapnel,
+                      Content.ModeKind,
+                      Content.PlaceKind,
+                      Content.RuleKind,
+                      Content.TileKind,
+                      TieKnot,
+                      Paths_LambdaHack
+  build-depends:      LambdaHack,
+                      template-haskell >= 2.6 && < 3,
+
+                      array      >= 0.3.0.3 && < 1,
+                      assert-failure >= 0.1 && < 1,
+                      async      >= 2       && < 3,
+                      base       >= 4       && < 5,
+                      binary     >= 0.7     && < 1,
+                      bytestring >= 0.9.2   && < 1,
+                      containers >= 0.5     && < 1,
+                      deepseq    >= 1.3     && < 2,
+                      directory  >= 1.1.0.1 && < 2,
+                      enummapset-th >= 0.6.0.0 && < 1,
+                      filepath   >= 1.2.0.1 && < 2,
+                      ghc-prim   >= 0.2,
+                      hashable   >= 1.1.2.5 && < 2,
+                      hsini      >= 0.2     && < 2,
+                      keys       >= 3       && < 4,
+                      miniutter  >= 0.4.1   && < 2,
+                      mtl        >= 2.0.1   && < 3,
+                      old-time   >= 1.0.0.7 && < 2,
+                      pretty-show >= 1.6    && < 2,
+                      random     >= 1.0.1   && < 2,
+                      stm        >= 2.4     && < 3,
+                      text       >= 0.11.2.3 && < 2,
+                      transformers >= 0.3   && < 1,
+                      unordered-containers >= 0.2.3 && < 1,
+                      vector     >= 0.10    && < 1,
+                      vector-binary-instances >= 0.2 && < 1,
+                      zlib       >= 0.5.3.1 && < 1
+
+  default-language:   Haskell2010
+  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings
+                      BangPatterns, RecordWildCards, NamedFieldPuns
+  other-extensions:   TemplateHaskell
+  ghc-options:        -Wall -fwarn-orphans -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-unrecognised-pragmas
+  ghc-options:        -fno-warn-auto-orphans -fno-warn-implicit-prelude
+  ghc-options:        -fno-ignore-asserts -funbox-strict-fields
+  ghc-options:        -threaded -with-rtsopts=-C0.005 -rtsopts
+-- ghc-options:       -with-rtsopts=-N  -- eats all cores
+
+test-suite test
+  type:               exitcode-stdio-1.0
+  hs-source-dirs:     GameDefinition, test
+  main-is:            test.hs
+  build-depends:      LambdaHack,
+                      template-haskell >= 2.6 && < 3,
+
+                      array      >= 0.3.0.3 && < 1,
+                      assert-failure >= 0.1 && < 1,
+                      async      >= 2       && < 3,
+                      base       >= 4       && < 5,
+                      binary     >= 0.7     && < 1,
+                      bytestring >= 0.9.2   && < 1,
+                      containers >= 0.5     && < 1,
+                      deepseq    >= 1.3     && < 2,
+                      directory  >= 1.1.0.1 && < 2,
+                      enummapset-th >= 0.6.0.0 && < 1,
+                      filepath   >= 1.2.0.1 && < 2,
+                      ghc-prim   >= 0.2,
+                      hashable   >= 1.1.2.5 && < 2,
+                      hsini      >= 0.2     && < 2,
+                      keys       >= 3       && < 4,
+                      miniutter  >= 0.4.1   && < 2,
+                      mtl        >= 2.0.1   && < 3,
+                      old-time   >= 1.0.0.7 && < 2,
+                      pretty-show >= 1.6    && < 2,
+                      random     >= 1.0.1   && < 2,
+                      stm        >= 2.4     && < 3,
+                      text       >= 0.11.2.3 && < 2,
+                      transformers >= 0.3   && < 1,
+                      unordered-containers >= 0.2.3 && < 1,
+                      vector     >= 0.10    && < 1,
+                      vector-binary-instances >= 0.2 && < 1,
+                      zlib       >= 0.5.3.1 && < 1
+
+  default-language:   Haskell2010
+  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings
+                      BangPatterns, RecordWildCards, NamedFieldPuns
+  other-extensions:   TemplateHaskell
+  ghc-options:        -Wall -fwarn-orphans -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -fwarn-monomorphism-restriction -fwarn-unrecognised-pragmas
+  ghc-options:        -fno-warn-auto-orphans -fno-warn-implicit-prelude
+  ghc-options:        -fno-ignore-asserts -funbox-strict-fields
+  ghc-options:        -threaded -with-rtsopts=-C0.005 -rtsopts